NPAL16160: EDF448: Hard selection. Unify dialogs behaviour.

This commit is contained in:
jfa 2007-06-06 08:11:49 +00:00
parent 28fd1da1df
commit 7741b10187
3 changed files with 173 additions and 186 deletions

View File

@ -33,14 +33,11 @@
#include "SalomeApp_Application.h" #include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h" #include "LightApp_SelectionMgr.h"
#include <BRepPrimAPI_MakePrism.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <gp_Lin.hxx>
#include "GEOMImpl_Types.hxx"
#include <qlabel.h> #include <qlabel.h>
#include <qcheckbox.h> #include <qcheckbox.h>
#include "GEOMImpl_Types.hxx"
#include "utilities.h" #include "utilities.h"
//================================================================================= //=================================================================================
@ -52,12 +49,13 @@
//================================================================================= //=================================================================================
GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWidget* parent, GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, WFlags fl) const char* name, bool modal, WFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{ {
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PRISM"))); SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); QPixmap image0(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PRISM_2P"))); QPixmap image1(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
QPixmap image2(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM_2P")));
setCaption(tr("GEOM_EXTRUSION_TITLE")); setCaption(tr("GEOM_EXTRUSION_TITLE"));
@ -65,9 +63,10 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
GroupConstructors->setTitle(tr("GEOM_EXTRUSION")); GroupConstructors->setTitle(tr("GEOM_EXTRUSION"));
RadioButton1->setPixmap(image0); RadioButton1->setPixmap(image0);
RadioButton2->setPixmap(image2); RadioButton2->setPixmap(image2);
//RadioButton2->close(TRUE);
RadioButton3->close(TRUE); RadioButton3->close(TRUE);
RadioButton1->setChecked(true);
GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints"); GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints");
GroupPoints->CheckButton1->hide(); GroupPoints->CheckButton1->hide();
GroupPoints->GroupBox1->setTitle(tr("GEOM_EXTRUSION_BSV")); GroupPoints->GroupBox1->setTitle(tr("GEOM_EXTRUSION_BSV"));
@ -95,7 +94,6 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
setHelpFileName("extrusion.htm"); setHelpFileName("extrusion.htm");
/* Initialisations */
Init(); Init();
} }
@ -106,7 +104,7 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid
//================================================================================= //=================================================================================
GenerationGUI_PrismDlg::~GenerationGUI_PrismDlg() GenerationGUI_PrismDlg::~GenerationGUI_PrismDlg()
{ {
/* no need to delete child widgets, Qt does it all for us */ // no need to delete child widgets, Qt does it all for us
} }
@ -125,7 +123,6 @@ void GenerationGUI_PrismDlg::Init()
GroupPoints2->LineEdit2->setReadOnly( true ); GroupPoints2->LineEdit2->setReadOnly( true );
GroupPoints2->LineEdit3->setReadOnly( true ); GroupPoints2->LineEdit3->setReadOnly( true );
//myOkBase = myOkVec = false;
myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false; myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
/* Get setting of step value from file configuration */ /* Get setting of step value from file configuration */
@ -167,8 +164,6 @@ void GenerationGUI_PrismDlg::Init()
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
initName(tr("GEOM_EXTRUSION")); initName(tr("GEOM_EXTRUSION"));
globalSelection( GEOM_ALLSHAPES );
ConstructorsClicked(0); ConstructorsClicked(0);
} }
@ -179,8 +174,9 @@ void GenerationGUI_PrismDlg::Init()
//================================================================================= //=================================================================================
void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId) void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
{ {
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0); erasePreview();
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
switch (constructorId) switch (constructorId)
{ {
case 0: case 0:
@ -190,10 +186,6 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
GroupPoints2->hide(); GroupPoints2->hide();
resize(0, 0); resize(0, 0);
GroupPoints->show(); GroupPoints->show();
//GroupPoints->LineEdit1->setFocus();
//myEditCurrentArgument = GroupPoints->LineEdit1;
//displayPreview();
myEditCurrentArgument = GroupPoints->LineEdit1; myEditCurrentArgument = GroupPoints->LineEdit1;
GroupPoints->LineEdit1->setText(""); GroupPoints->LineEdit1->setText("");
@ -208,10 +200,12 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
} }
case 1: case 1:
{ {
GroupPoints->hide(); globalSelection( GEOM_ALLSHAPES );
GroupPoints->hide();
resize(0, 0); resize(0, 0);
GroupPoints2->show(); GroupPoints2->show();
myEditCurrentArgument = GroupPoints2->LineEdit1; myEditCurrentArgument = GroupPoints2->LineEdit1;
GroupPoints2->LineEdit1->setText(""); GroupPoints2->LineEdit1->setText("");
GroupPoints2->LineEdit2->setText(""); GroupPoints2->LineEdit2->setText("");
@ -220,11 +214,14 @@ void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId)
myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false; myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
GroupPoints->LineEdit1->setText(""); GroupPoints->LineEdit1->setText("");
GroupPoints->LineEdit2->setText(""); GroupPoints->LineEdit2->setText("");
break; break;
} }
} }
displayPreview();
myEditCurrentArgument->setFocus();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
} }
@ -262,8 +259,8 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
erasePreview(); erasePreview();
myEditCurrentArgument->setText(""); myEditCurrentArgument->setText("");
if ( getConstructorId()==0 ) { if (getConstructorId() == 0)
{
if (IObjectCount() != 1) { if (IObjectCount() != 1) {
if (myEditCurrentArgument == GroupPoints->LineEdit1) if (myEditCurrentArgument == GroupPoints->LineEdit1)
myOkBase = false; myOkBase = false;
@ -288,13 +285,12 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
myVec = aSelectedObject; myVec = aSelectedObject;
myOkVec = true; myOkVec = true;
} }
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
displayPreview(); displayPreview();
} }
else // getConstructorId()==1 - extrusion using 2 points
else { // getConstructorId()==1 - extrusion using 2 points {
if (IObjectCount() != 1) { if (IObjectCount() != 1) {
if (myEditCurrentArgument == GroupPoints2->LineEdit1) if (myEditCurrentArgument == GroupPoints2->LineEdit1)
myOkBase = false; myOkBase = false;
@ -330,13 +326,31 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
myOkPnt2 = true; myOkPnt2 = true;
} }
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
displayPreview(); displayPreview();
} }
} }
//=================================================================================
// function : LineEditReturnPressed()
// purpose :
//=================================================================================
void GenerationGUI_PrismDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if (send == GroupPoints->LineEdit1 ||
send == GroupPoints->LineEdit2 ||
send == GroupPoints2->LineEdit1 ||
send == GroupPoints2->LineEdit2 ||
send == GroupPoints2->LineEdit3 )
{
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
}
//================================================================================= //=================================================================================
// function : SetEditCurrentArgument() // function : SetEditCurrentArgument()
// purpose : // purpose :
@ -344,64 +358,38 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
void GenerationGUI_PrismDlg::SetEditCurrentArgument() void GenerationGUI_PrismDlg::SetEditCurrentArgument()
{ {
QPushButton* send = (QPushButton*)sender(); QPushButton* send = (QPushButton*)sender();
globalSelection( GEOM_ALLSHAPES );
if(send == GroupPoints->PushButton1) { if (send == GroupPoints->PushButton1) {
GroupPoints->LineEdit1->setFocus(); GroupPoints->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit1; myEditCurrentArgument = GroupPoints->LineEdit1;
globalSelection( GEOM_ALLSHAPES );
} }
else if(send == GroupPoints->PushButton2) { else if (send == GroupPoints->PushButton2) {
GroupPoints->LineEdit2->setFocus(); GroupPoints->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit2; myEditCurrentArgument = GroupPoints->LineEdit2;
globalSelection( GEOM_LINE ); globalSelection( GEOM_LINE );
} }
else if(send == GroupPoints2->PushButton1) { else if (send == GroupPoints2->PushButton1) {
GroupPoints2->LineEdit1->setFocus(); GroupPoints2->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit1; myEditCurrentArgument = GroupPoints2->LineEdit1;
globalSelection( GEOM_ALLSHAPES );
} }
else if(send == GroupPoints2->PushButton2) { else if (send == GroupPoints2->PushButton2) {
GroupPoints2->LineEdit2->setFocus(); GroupPoints2->LineEdit2->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit2; myEditCurrentArgument = GroupPoints2->LineEdit2;
globalSelection( GEOM_POINT ); globalSelection( GEOM_POINT );
} }
else if(send == GroupPoints2->PushButton3) { else if (send == GroupPoints2->PushButton3) {
GroupPoints2->LineEdit3->setFocus(); GroupPoints2->LineEdit3->setFocus();
myEditCurrentArgument = GroupPoints2->LineEdit3; myEditCurrentArgument = GroupPoints2->LineEdit3;
globalSelection( GEOM_POINT ); globalSelection( GEOM_POINT );
} }
myEditCurrentArgument->setFocus();
SelectionIntoArgument(); SelectionIntoArgument();
} }
//=================================================================================
// function : LineEditReturnPressed()
// purpose :
//=================================================================================
void GenerationGUI_PrismDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if(send == GroupPoints->LineEdit1 ||
send == GroupPoints->LineEdit2 ||
send == GroupPoints2->LineEdit1 ||
send == GroupPoints2->LineEdit2 ||
send == GroupPoints2->LineEdit3 )
{
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
}
//=================================================================================
// function : enterEvent()
// purpose : when mouse enter onto the QWidget
//=================================================================================
void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
{
if ( !GroupConstructors->isEnabled() )
ActivateThisDialog();
}
//================================================================================= //=================================================================================
// function : ActivateThisDialog() // function : ActivateThisDialog()
// purpose : // purpose :
@ -409,16 +397,25 @@ void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
void GenerationGUI_PrismDlg::ActivateThisDialog() void GenerationGUI_PrismDlg::ActivateThisDialog()
{ {
GEOMBase_Skeleton::ActivateThisDialog(); GEOMBase_Skeleton::ActivateThisDialog();
globalSelection( GEOM_ALLSHAPES );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
//GroupPoints->LineEdit1->setFocus();
//myEditCurrentArgument = GroupPoints->LineEdit1;
//displayPreview();
ConstructorsClicked( getConstructorId() ); ConstructorsClicked( getConstructorId() );
} }
//=================================================================================
// function : enterEvent()
// purpose : when mouse enter onto the QWidget
//=================================================================================
void GenerationGUI_PrismDlg::enterEvent(QEvent * e)
{
if (!GroupConstructors->isEnabled())
ActivateThisDialog();
}
//================================================================================= //=================================================================================
// function : ValueChangedInSpinBox() // function : ValueChangedInSpinBox()
// purpose : // purpose :
@ -466,13 +463,13 @@ bool GenerationGUI_PrismDlg::execute( ObjectList& objects )
switch ( getConstructorId() ) switch ( getConstructorId() )
{ {
case 0 : case 0:
{ {
anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())->
MakePrismVecH(myBase, myVec, getHeight()); MakePrismVecH(myBase, myVec, getHeight());
break; break;
} }
case 1 : case 1:
{ {
anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())->
MakePrismTwoPnt(myBase, myPoint1, myPoint2); MakePrismTwoPnt(myBase, myPoint1, myPoint2);

View File

@ -33,8 +33,8 @@
#include "SalomeApp_Application.h" #include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h" #include "LightApp_SelectionMgr.h"
#include <qcheckbox.h>
#include <qlabel.h> #include <qlabel.h>
#include <qcheckbox.h>
#include "GEOMImpl_Types.hxx" #include "GEOMImpl_Types.hxx"
@ -51,8 +51,8 @@ using namespace std;
//================================================================================= //=================================================================================
TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg
(GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
{ {
SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr();
QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TRANSLATION_DXYZ"))); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TRANSLATION_DXYZ")));
@ -112,26 +112,26 @@ void TransformationGUI_TranslationDlg::Init()
GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit1->setReadOnly(true);
GroupPoints->LineEdit2->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true);
GroupPoints->LineEdit3->setReadOnly(true); GroupPoints->LineEdit3->setReadOnly(true);
myVector = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); myVector = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
// Activate Create a Copy mode // Activate Create a Copy mode
GroupPoints->CheckBox1->setChecked(true); GroupPoints->CheckBox1->setChecked(true);
CreateCopyModeChanged(true); CreateCopyModeChanged(true);
/* Get setting of step value from file configuration */ /* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
/* min, max, step and decimals for spin boxes & initial values */ /* min, max, step and decimals for spin boxes & initial values */
GroupPoints->SpinBox1->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3); GroupPoints->SpinBox1->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupPoints->SpinBox2->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3); GroupPoints->SpinBox2->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupPoints->SpinBox3->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3); GroupPoints->SpinBox3->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupPoints->SpinBox1->SetValue(0.0); GroupPoints->SpinBox1->SetValue(0.0);
GroupPoints->SpinBox2->SetValue(0.0); GroupPoints->SpinBox2->SetValue(0.0);
GroupPoints->SpinBox3->SetValue(0.0); GroupPoints->SpinBox3->SetValue(0.0);
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
@ -146,13 +146,13 @@ void TransformationGUI_TranslationDlg::Init()
connect(GroupPoints->SpinBox1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupPoints->SpinBox1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
connect(GroupPoints->SpinBox2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupPoints->SpinBox2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
connect(GroupPoints->SpinBox3, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupPoints->SpinBox3, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox1, SLOT(SetStep(double))); connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox1, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox2, SLOT(SetStep(double))); connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox2, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox3, SLOT(SetStep(double))); connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox3, SLOT(SetStep(double)));
connect(GroupPoints->CheckBox1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); connect(GroupPoints->CheckBox1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool)));
connect(myGeomGUI->getApp()->selectionMgr(), connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
@ -167,8 +167,9 @@ void TransformationGUI_TranslationDlg::Init()
//================================================================================= //=================================================================================
void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId) void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId)
{ {
erasePreview();
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
myEditCurrentArgument = GroupPoints->LineEdit1; myEditCurrentArgument = GroupPoints->LineEdit1;
globalSelection(); globalSelection();
@ -203,7 +204,7 @@ void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId)
break; break;
} }
} }
myEditCurrentArgument->setFocus(); myEditCurrentArgument->setFocus();
connect(myGeomGUI->getApp()->selectionMgr(), connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
@ -229,9 +230,8 @@ bool TransformationGUI_TranslationDlg::ClickOnApply()
{ {
if ( !onAccept(GroupPoints->CheckBox1->isChecked()) ) if ( !onAccept(GroupPoints->CheckBox1->isChecked()) )
return false; return false;
initName(); initName();
ConstructorsClicked( getConstructorId() );
return true; return true;
} }
@ -244,50 +244,49 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
{ {
myEditCurrentArgument->setText(""); myEditCurrentArgument->setText("");
QString aName; QString aName;
if(myEditCurrentArgument == GroupPoints->LineEdit1) if (myEditCurrentArgument == GroupPoints->LineEdit1)
{
int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName);
if (aNbSel < 1)
{ {
int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); myObjects.length(0);
return;
if(aNbSel < 1)
{
myObjects.length(0);
return;
}
GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects);
if (!myObjects.length())
return;
} }
GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects);
if (!myObjects.length())
return;
}
else else
{ {
if (IObjectCount() != 1) { if (IObjectCount() != 1) {
if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1)
myPoint1 = GEOM::GEOM_Object::_nil(); myPoint1 = GEOM::GEOM_Object::_nil();
else if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2)
myVector = GEOM::GEOM_Object::_nil(); myVector = GEOM::GEOM_Object::_nil();
else if(myEditCurrentArgument == GroupPoints->LineEdit3) else if (myEditCurrentArgument == GroupPoints->LineEdit3)
myPoint2 = GEOM::GEOM_Object::_nil(); myPoint2 = GEOM::GEOM_Object::_nil();
return; return;
}
Standard_Boolean testResult = Standard_False;;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult );
if (!testResult || CORBA::is_nil( aSelectedObject ))
return;
if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1)
myPoint1 = aSelectedObject;
else if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2)
myVector = aSelectedObject;
else if(myEditCurrentArgument == GroupPoints->LineEdit3)
myPoint2 = aSelectedObject;
aName = GEOMBase::GetName( aSelectedObject );
} }
Standard_Boolean testResult = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult);
if (!testResult || CORBA::is_nil( aSelectedObject ))
return;
if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1)
myPoint1 = aSelectedObject;
else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2)
myVector = aSelectedObject;
else if (myEditCurrentArgument == GroupPoints->LineEdit3)
myPoint2 = aSelectedObject;
aName = GEOMBase::GetName( aSelectedObject );
}
myEditCurrentArgument->setText( aName ); myEditCurrentArgument->setText( aName );
displayPreview(); displayPreview();
} }
@ -299,11 +298,11 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
void TransformationGUI_TranslationDlg::LineEditReturnPressed() void TransformationGUI_TranslationDlg::LineEditReturnPressed()
{ {
QLineEdit* send = (QLineEdit*)sender(); QLineEdit* send = (QLineEdit*)sender();
if(send == GroupPoints->LineEdit1) if (send == GroupPoints->LineEdit1)
{ {
myEditCurrentArgument = send; myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed(); GEOMBase_Skeleton::LineEditReturnPressed();
} }
} }
@ -314,24 +313,21 @@ void TransformationGUI_TranslationDlg::LineEditReturnPressed()
void TransformationGUI_TranslationDlg::SetEditCurrentArgument() void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
{ {
QPushButton* send = (QPushButton*)sender(); QPushButton* send = (QPushButton*)sender();
if(send == GroupPoints->PushButton1) if (send == GroupPoints->PushButton1) {
{ myEditCurrentArgument = GroupPoints->LineEdit1;
myEditCurrentArgument = GroupPoints->LineEdit1; globalSelection();
globalSelection(); }
} else if (send == GroupPoints->PushButton2) {
else if (send == GroupPoints->PushButton2) myEditCurrentArgument = GroupPoints->LineEdit2;
{ getConstructorId() == 1 ? globalSelection( GEOM_POINT ) :
myEditCurrentArgument = GroupPoints->LineEdit2; globalSelection( GEOM_LINE );
getConstructorId() == 1 ? globalSelection( GEOM_POINT ) : }
globalSelection( GEOM_LINE ); else if (send == GroupPoints->PushButton3) {
} myEditCurrentArgument = GroupPoints->LineEdit3;
else if (send == GroupPoints->PushButton3) globalSelection( GEOM_POINT );
{ }
myEditCurrentArgument = GroupPoints->LineEdit3;
globalSelection( GEOM_POINT );
}
myEditCurrentArgument->setFocus(); myEditCurrentArgument->setFocus();
SelectionIntoArgument(); SelectionIntoArgument();
} }
@ -344,6 +340,7 @@ void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
void TransformationGUI_TranslationDlg::ActivateThisDialog() void TransformationGUI_TranslationDlg::ActivateThisDialog()
{ {
GEOMBase_Skeleton::ActivateThisDialog(); GEOMBase_Skeleton::ActivateThisDialog();
connect(myGeomGUI->getApp()->selectionMgr(), connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
@ -357,7 +354,7 @@ void TransformationGUI_TranslationDlg::ActivateThisDialog()
//================================================================================= //=================================================================================
void TransformationGUI_TranslationDlg::enterEvent(QEvent* e) void TransformationGUI_TranslationDlg::enterEvent(QEvent* e)
{ {
if(!GroupConstructors->isEnabled()) if (!GroupConstructors->isEnabled())
ActivateThisDialog(); ActivateThisDialog();
} }
@ -378,7 +375,7 @@ void TransformationGUI_TranslationDlg::ValueChangedInSpinBox()
//================================================================================= //=================================================================================
GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation() GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation()
{ {
return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() ); return getGeomEngine()->GetITransformOperations( getStudyId() );
} }
@ -389,24 +386,24 @@ GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation()
bool TransformationGUI_TranslationDlg::isValid( QString& msg ) bool TransformationGUI_TranslationDlg::isValid( QString& msg )
{ {
int aConstructorId = getConstructorId(); int aConstructorId = getConstructorId();
switch (aConstructorId) switch (aConstructorId)
{ {
case 0: case 0:
{ {
return !(myObjects.length() == 0 ); return !(myObjects.length() == 0 );
break; break;
} }
case 1: case 1:
{ {
return !(myObjects.length() == 0 || myPoint1->_is_nil() || myPoint2->_is_nil() ); return !(myObjects.length() == 0 || myPoint1->_is_nil() || myPoint2->_is_nil() );
break; break;
} }
case 2: case 2:
{ {
return !(myObjects.length() == 0 || myVector->_is_nil()); return !(myObjects.length() == 0 || myVector->_is_nil());
break; break;
} }
default: return false; default: return false;
} }
} }
@ -419,12 +416,12 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
{ {
bool res = false; bool res = false;
bool toCreateCopy = IsPreview() || GroupPoints->CheckBox1->isChecked(); bool toCreateCopy = IsPreview() || GroupPoints->CheckBox1->isChecked();
GEOM::GEOM_Object_var anObj; GEOM::GEOM_Object_var anObj;
switch ( getConstructorId() ) switch ( getConstructorId() )
{ {
case 0 : case 0:
{ {
double dx = GroupPoints->SpinBox1->GetValue(); double dx = GroupPoints->SpinBox1->GetValue();
double dy = GroupPoints->SpinBox2->GetValue(); double dy = GroupPoints->SpinBox2->GetValue();
@ -433,33 +430,37 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
if (toCreateCopy) if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZCopy( myObjects[i], dx, dy, dz ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateDXDYDZCopy( myObjects[i], dx, dy, dz );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
else else
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZ( myObjects[i], dx, dy, dz ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateDXDYDZ( myObjects[i], dx, dy, dz );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
res = true; res = true;
break; break;
} }
case 1 : case 1:
{ {
if (toCreateCopy) if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
else else
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
@ -471,14 +472,16 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
if (toCreateCopy) if (toCreateCopy)
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateVectorCopy( myObjects[i], myVector ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateVectorCopy( myObjects[i], myVector );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
else else
for (int i = 0; i < myObjects.length(); i++) for (int i = 0; i < myObjects.length(); i++)
{ {
anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateVector( myObjects[i], myVector ); anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
TranslateVector( myObjects[i], myVector );
if ( !anObj->_is_nil() ) if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() ); objects.push_back( anObj._retn() );
} }
@ -486,22 +489,11 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
break; break;
} }
} }
return res; return res;
} }
//=================================================================================
// function : closeEvent
// purpose :
//=================================================================================
void TransformationGUI_TranslationDlg::closeEvent( QCloseEvent* e )
{
// myGeomGUI->SetState( -1 );
GEOMBase_Skeleton::closeEvent( e );
}
//================================================================================= //=================================================================================
// function : CreateCopyModeChanged() // function : CreateCopyModeChanged()
// purpose : // purpose :

View File

@ -51,9 +51,7 @@ protected:
virtual bool isValid( QString& ); virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects ); virtual bool execute( ObjectList& objects );
virtual void closeEvent( QCloseEvent* e ); private:
private :
void Init(); void Init();
void enterEvent(QEvent* e); void enterEvent(QEvent* e);
@ -69,8 +67,8 @@ private slots :
void LineEditReturnPressed(); void LineEditReturnPressed();
void SelectionIntoArgument(); void SelectionIntoArgument();
void SetEditCurrentArgument(); void SetEditCurrentArgument();
void ValueChangedInSpinBox();
void ConstructorsClicked(int constructorId); void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox();
void CreateCopyModeChanged(bool isCreateCopy); void CreateCopyModeChanged(bool isCreateCopy);
}; };