From 915a957add7dda91c53747afad6ab09274bf842e Mon Sep 17 00:00:00 2001 From: jfa Date: Fri, 24 Aug 2007 06:19:25 +0000 Subject: [PATCH] NPAL16758: EDF547: SelectSubShape bug in Explode dialog. --- src/EntityGUI/EntityGUI_SubShapeDlg.cxx | 47 ++++++++++++++----------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/src/EntityGUI/EntityGUI_SubShapeDlg.cxx b/src/EntityGUI/EntityGUI_SubShapeDlg.cxx index cb6483921..1ef7da5c7 100644 --- a/src/EntityGUI/EntityGUI_SubShapeDlg.cxx +++ b/src/EntityGUI/EntityGUI_SubShapeDlg.cxx @@ -116,7 +116,7 @@ void EntityGUI_SubShapeDlg::Init() GroupPoints->ComboBox1->insertItem("Vertex"); GroupPoints->ComboBox1->insertItem("Shape"); - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() + if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() != OCCViewer_Viewer::Type()) GroupPoints->CheckButton1->setEnabled(false); @@ -132,8 +132,8 @@ void EntityGUI_SubShapeDlg::Init() connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged())); connect(GroupPoints->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(SubShapeToggled())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect(myGeomGUI->getApp()->selectionMgr(), + SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); updateButtonState(); @@ -159,7 +159,7 @@ void EntityGUI_SubShapeDlg::ClickOnOk() bool EntityGUI_SubShapeDlg::ClickOnApply() { SUIT_Session::session()->activeApplication()->putInfo(tr("")); - + /* Explode all sub shapes */ if( isAllSubShapes() ) { /* More than 30 subshapes : ask confirmation */ @@ -175,7 +175,12 @@ bool EntityGUI_SubShapeDlg::ClickOnApply() } } - return onAccept(); + bool isOk = onAccept(); + + // restore selection, corresponding to current selection mode + SubShapeToggled(); + + return isOk; } @@ -298,7 +303,7 @@ void EntityGUI_SubShapeDlg::SetEditCurrentArgument() { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; - + GroupPoints->CheckButton1->setChecked( FALSE ); SubShapeToggled(); SelectionIntoArgument(); @@ -310,7 +315,7 @@ void EntityGUI_SubShapeDlg::SetEditCurrentArgument() // purpose : //================================================================================= void EntityGUI_SubShapeDlg::LineEditReturnPressed() -{ +{ QLineEdit* send = (QLineEdit*)sender(); if(send == GroupPoints->LineEdit1) SetEditCurrentArgument(); @@ -340,8 +345,8 @@ void EntityGUI_SubShapeDlg::DeactivateActiveDialog() void EntityGUI_SubShapeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect(myGeomGUI->getApp()->selectionMgr(), + SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); SubShapeToggled(); updateButtonState(); } @@ -383,9 +388,9 @@ void EntityGUI_SubShapeDlg::ResetStateOfDialog() GroupPoints->ComboBox1->insertItem("Edge"); GroupPoints->ComboBox1->insertItem("Vertex"); GroupPoints->ComboBox1->insertItem("Shape"); - + myWithShape = true; - + GroupPoints->ComboBox1->setCurrentItem( 8 - count + SelectedShapeType ); ComboTextChanged(); @@ -409,13 +414,13 @@ void EntityGUI_SubShapeDlg::SubShapeToggled() //================================================================================= // function : ComboTextChanged() -// purpose : +// purpose : //================================================================================= void EntityGUI_SubShapeDlg::ComboTextChanged() { /* Select sub shapes mode not checked */ updateButtonState(); - SubShapeToggled(); + SubShapeToggled(); } @@ -526,10 +531,10 @@ bool EntityGUI_SubShapeDlg::isValid( QString& msg ) Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); - + if ( aResult && !anObj->_is_nil() ) { TColStd_IndexedMapOfInteger aMapIndex; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); + myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); isOk = aMapIndex.Extent() > 0; if ( !isOk ) msg += tr( "NO_SUBSHAPES_SELECTED" ); @@ -547,11 +552,11 @@ bool EntityGUI_SubShapeDlg::execute( ObjectList& objects ) { GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow( getOperation() )->MakeExplode( myObject, shapeType(), true ); - + if ( !aList->length() ) return false; - - // Throw away sub-shapes not selected by user if not in preview mode + + // Throw away sub-shapes not selected by user if not in preview mode // and manual selection is active if ( !isAllSubShapes() ) { @@ -562,9 +567,9 @@ bool EntityGUI_SubShapeDlg::execute( ObjectList& objects ) if ( aResult && !anObj->_is_nil() ) { TColStd_IndexedMapOfInteger aMapIndex; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); + myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); - GEOM::GEOM_ILocalOperations_var aLocOp = + GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() ); for ( int i = 0, n = aList->length(); i < n; i++ ) @@ -576,7 +581,7 @@ bool EntityGUI_SubShapeDlg::execute( ObjectList& objects ) else for ( int i = 0, n = aList->length(); i < n; i++ ) objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) ); - + return objects.size(); } -- 2.39.2