// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
//=================================================================================
// class : BasicGUI_CircleDlg()
-// purpose : Constructs a BasicGUI_CircleDlg which is a child of 'parent', with the
+// purpose : Constructs a BasicGUI_CircleDlg which is a child of 'parent', with the
// name 'name' and widget flags set to 'f'.
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
GroupPntVecR = new DlgRef_2Sel1Spin(this, "GroupPntVecR");
GroupPntVecR->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
-
+
GroupPntVecR->TextLabel1->setText(tr("GEOM_CENTER_POINT"));
GroupPntVecR->TextLabel2->setText(tr("GEOM_VECTOR"));
GroupPntVecR->TextLabel3->setText(tr("GEOM_RADIUS"));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
+
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect(GroupPntVecR->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPntVecR->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
- connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPntVecR->SpinBox_DX, SLOT(SetStep(double)));
-
- connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
- SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+ connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)),
+ GroupPntVecR->SpinBox_DX, SLOT(SetStep(double)));
+
+ connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
+ this, SLOT(SelectionIntoArgument())) ;
initName( tr( "GEOM_CIRCLE" ) );
//=================================================================================
void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
{
- disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0 );
+ LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+
+ disconnect(aSelMgr, 0, this, 0);
myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
- switch ( constructorId )
+ switch (constructorId)
{
case 0:
{
- Group3Pnts->hide();
- GroupCenter2Pnts->hide();
- resize(0, 0);
- GroupPntVecR->show();
-
- myEditCurrentArgument = GroupPntVecR->LineEdit1;
- GroupPntVecR->LineEdit1->setText("");
- GroupPntVecR->LineEdit2->setText("");
- break;
+ Group3Pnts->hide();
+ GroupCenter2Pnts->hide();
+ resize(0, 0);
+ GroupPntVecR->show();
+
+ myEditCurrentArgument = GroupPntVecR->LineEdit1;
+ GroupPntVecR->LineEdit1->setText("");
+ GroupPntVecR->LineEdit2->setText("");
+ break;
}
- case 1:
- {
- GroupPntVecR->hide();
- GroupCenter2Pnts->hide();
- resize( 0, 0 );
- Group3Pnts->show();
-
- myEditCurrentArgument = Group3Pnts->LineEdit1;
- Group3Pnts->LineEdit1->setText("");
- Group3Pnts->LineEdit2->setText("");
- Group3Pnts->LineEdit3->setText("");
- break;
+ case 1:
+ {
+ GroupPntVecR->hide();
+ GroupCenter2Pnts->hide();
+ resize(0, 0);
+ Group3Pnts->show();
+
+ myEditCurrentArgument = Group3Pnts->LineEdit1;
+ Group3Pnts->LineEdit1->setText("");
+ Group3Pnts->LineEdit2->setText("");
+ Group3Pnts->LineEdit3->setText("");
+ break;
}
- case 2:
+ case 2:
{
- GroupPntVecR->hide();
- Group3Pnts->hide();
+ GroupPntVecR->hide();
+ Group3Pnts->hide();
resize( 0, 0 );
GroupCenter2Pnts->show();
- myEditCurrentArgument = GroupCenter2Pnts->LineEdit1;
- GroupCenter2Pnts->LineEdit1->setText("");
+ myEditCurrentArgument = GroupCenter2Pnts->LineEdit1;
+ GroupCenter2Pnts->LineEdit1->setText("");
GroupCenter2Pnts->LineEdit2->setText("");
GroupCenter2Pnts->LineEdit3->setText("");
break;
}
}
-
+
myEditCurrentArgument->setFocus();
- // globalSelection( GEOM_POINT );
- GEOM::GEOM_Object_var anObj;
- localSelection( anObj, TopAbs_VERTEX );
- connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
- SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+ globalSelection(); // close local contexts, if any
+ localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX);
+ connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
}
//=================================================================================
return false;
initName();
- ConstructorsClicked( getConstructorId() );
+ ConstructorsClicked(getConstructorId());
return true;
}
void BasicGUI_CircleDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
-
- if ( IObjectCount() != 1 )
+
+ LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+ SALOME_ListIO aList;
+ aSelMgr->selectedObjects(aList);
+
+ if (aList.Extent() != 1)
{
- if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit1 ) myPoint4 = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit2 ) myPoint5 = GEOM::GEOM_Object::_nil();
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit3 ) myPoint6 = GEOM::GEOM_Object::_nil();
+ if (myEditCurrentArgument == GroupPntVecR->LineEdit1) myPoint = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) myDir = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit3) myPoint3 = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit1) myPoint4 = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit2) myPoint5 = GEOM::GEOM_Object::_nil();
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit3) myPoint6 = GEOM::GEOM_Object::_nil();
return;
}
// nbSel == 1
+ Handle(SALOME_InteractiveObject) anIO = aList.First();
+
Standard_Boolean aRes = Standard_False;
- Handle(SALOME_InteractiveObject) anIO = firstIObject();
- GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
- if ( !CORBA::is_nil( aSelectedObject ) && aRes )
- {
- myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+ GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes);
+ if (!CORBA::is_nil(aSelectedObject) && aRes)
+ {
+ QString aName = GEOMBase::GetName(aSelectedObject);
+
// If selected Vertex or Edge on the some Shape Get selection Subshape
TopoDS_Shape aShape;
- if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
+ if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull())
+ {
+ TColStd_IndexedMapOfInteger aMap;
+ aSelMgr->GetIndexes(anIO, aMap);
+ if (aMap.Extent() == 1)
{
- LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
- TColStd_IndexedMapOfInteger aMap;
- aSelMgr->GetIndexes( anIO, aMap );
- if ( aMap.Extent() == 1 )
- {
- GEOM::GEOM_IShapesOperations_var aShapesOp =
- getGeomEngine()->GetIShapesOperations( getStudyId() );
- int anIndex = aMap( 1 );
- TopTools_IndexedMapOfShape aShapes;
- TopExp::MapShapes( aShape, aShapes );
- aShape = aShapes.FindKey( anIndex );
- aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
- aSelMgr->clearSelected();
- }
+ GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId());
+ int anIndex = aMap(1);
+ TopTools_IndexedMapOfShape aShapes;
+ TopExp::MapShapes(aShape, aShapes);
+ aShape = aShapes.FindKey(anIndex);
+ aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
+ aSelMgr->clearSelected(); // ???
+
+ aName += QString("_subshape_%1").arg(anIndex);
}
- if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) myPoint = aSelectedObject;
- else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) myDir = aSelectedObject;
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject;
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject;
- else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject;
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit1 ) myPoint4 = aSelectedObject;
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit2 ) myPoint5 = aSelectedObject;
- else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit3 ) myPoint6 = aSelectedObject;
+ }
+ myEditCurrentArgument->setText(aName);
+
+ if (myEditCurrentArgument == GroupPntVecR->LineEdit1) myPoint = aSelectedObject;
+ else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) myDir = aSelectedObject;
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit1) myPoint1 = aSelectedObject;
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit2) myPoint2 = aSelectedObject;
+ else if (myEditCurrentArgument == Group3Pnts->LineEdit3) myPoint3 = aSelectedObject;
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit1) myPoint4 = aSelectedObject;
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit2) myPoint5 = aSelectedObject;
+ else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit3) myPoint6 = aSelectedObject;
}
+
displayPreview();
}
else if ( send == GroupCenter2Pnts->PushButton1 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit1;
else if ( send == GroupCenter2Pnts->PushButton2 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit2;
else if ( send == GroupCenter2Pnts->PushButton3 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit3;
-
+
myEditCurrentArgument->setFocus();
-
- if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 )
- {
- GEOM::GEOM_Object_var anObj;
- localSelection( anObj, TopAbs_EDGE );
- }
+
+ if (myEditCurrentArgument == GroupPntVecR->LineEdit2) {
+ globalSelection(); // close local contexts, if any
+ localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE);
+ }
else {
- GEOM::GEOM_Object_var anObj;
- localSelection( anObj, TopAbs_EDGE );
+ globalSelection(); // close local contexts, if any
+ localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX);
}
SelectionIntoArgument();
}
{
GEOMBase_Skeleton::ActivateThisDialog();
globalSelection( GEOM_POINT );
- connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
- SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-
- // myGeomGUI->SetState( 0 );
+ connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
+ this, SLOT(SelectionIntoArgument()));
ConstructorsClicked( getConstructorId() );
}
//=================================================================================
double BasicGUI_CircleDlg::getRadius() const
{
- switch ( getConstructorId() )
- {
- case 0 :
- return GroupPntVecR->SpinBox_DX->GetValue();
- }
+ switch (getConstructorId())
+ {
+ case 0:
+ return GroupPntVecR->SpinBox_DX->GetValue();
+ }
+ return 0.;
}
//=================================================================================
bool BasicGUI_CircleDlg::execute( ObjectList& objects )
{
bool res = false;
-
+
GEOM::GEOM_Object_var anObj;
-
- switch ( getConstructorId() )
+
+ switch (getConstructorId())
{
- cout << "constructior ID = " << getConstructorId() << endl;
- case 0 :
- anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCirclePntVecR( myPoint, myDir, getRadius() );
+ case 0:
+ anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->
+ MakeCirclePntVecR(myPoint, myDir, getRadius());
res = true;
break;
- case 1 :
- anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCircleThreePnt( myPoint1, myPoint2, myPoint3 );
+ case 1:
+ anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->
+ MakeCircleThreePnt(myPoint1, myPoint2, myPoint3);
res = true;
break;
- case 2 :
- anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCircleCenter2Pnt( myPoint4, myPoint5, myPoint6 );
+ case 2:
+ anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->
+ MakeCircleCenter2Pnt(myPoint4, myPoint5, myPoint6);
res = true;
break;
}
-
- if ( !anObj->_is_nil() )
- objects.push_back( anObj._retn() );
- else cout << "Execute Object is NULL!" << endl;
-
+
+ if (!anObj->_is_nil())
+ objects.push_back(anObj._retn());
+ else {
+ MESSAGE("Execute Object is NULL!");
+ }
+
return res;
}
{
GEOMBase_Skeleton::closeEvent( e );
}
-