X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGroupGUI%2FGroupGUI.cxx;h=e335605c6325fae08ffae8f37b88280921088392;hb=4cf6ece050adcf0ae832f44b82cdeb65ec923245;hp=5bfaf9fcadba7af09d0be1ab8cbf86a00f1189c6;hpb=6fa64130e586f57e807bfb298c52f10bfb2c0b2d;p=modules%2Fgeom.git diff --git a/src/GroupGUI/GroupGUI.cxx b/src/GroupGUI/GroupGUI.cxx index 5bfaf9fca..e335605c6 100644 --- a/src/GroupGUI/GroupGUI.cxx +++ b/src/GroupGUI/GroupGUI.cxx @@ -17,7 +17,7 @@ // 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.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -38,20 +38,6 @@ #include "SalomeApp_Study.h" #include "LightApp_SelectionMgr.h" -GroupGUI* GroupGUI::myGUIObject = 0; - -//======================================================================= -// function : GetGroupGUI() -// purpose : Get the only GroupGUI object [ static ] -//======================================================================= -GroupGUI* GroupGUI::GetGroupGUI(GeometryGUI* parent) -{ - if ( myGUIObject == 0 ) - myGUIObject = new GroupGUI(parent); - - return myGUIObject; -} - //======================================================================= // function : GroupGUI() // purpose : Constructor @@ -61,7 +47,6 @@ GroupGUI::GroupGUI(GeometryGUI* parent) { } - //======================================================================= // function : ~GroupGUI() // purpose : Destructor @@ -77,14 +62,17 @@ GroupGUI::~GroupGUI() //======================================================================= bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { + SalomeApp_Application* app = getGeometryGUI()->getApp(); + if ( !app ) return false; + getGeometryGUI()->EmitSignalDeactivateDialog(); - + QDialog* aDlg = NULL; - SalomeApp_Study* appStudy = dynamic_cast( SUIT_Session::session()->activeApplication()->activeStudy() ); + SalomeApp_Study* appStudy = dynamic_cast(app->activeStudy()); if ( !appStudy ) return false; _PTR(Study) aStudy = appStudy->studyDS(); - + if ( aStudy->GetProperties()->IsLocked() ) { SUIT_MessageBox::warn1 ( parent, QObject::tr("WRN_WARNING"), @@ -95,45 +83,39 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) switch ( theCommandID ) { case 800: - case 8001: - aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::CreateGroup, parent, ""); + case 8001: // CREATE GROUP + aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent); break; - case 801: + case 801: // EDIT GROUP { SALOME_ListIO aList; aList.Clear(); - - SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - if ( app ) { - LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if ( aSelMgr ) - aSelMgr->selectedObjects( aList ); - } - if ( aList.Extent() == 1 ) { + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); + if (aSelMgr) + aSelMgr->selectedObjects(aList); + + if (aList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject( aList.First(), aResult ); - if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) { - aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::EditGroup, parent, "" ); + if (aResult && !CORBA::is_nil(anObj) && anObj->GetType() == GEOM_GROUP) { + aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent); break; } } - SUIT_MessageBox::warn1 ( parent, - tr("WRN_WARNING"), - tr("NO_GROUP"), - tr("BUT_OK") ); + SUIT_MessageBox::warn1(parent, tr("WRN_WARNING"), tr("NO_GROUP"), tr("BUT_OK") ); break; } default: - SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); break; } - - if ( aDlg != NULL ) + + if (aDlg != NULL) aDlg->show(); - + return true; } @@ -147,6 +129,6 @@ extern "C" #endif GEOMGUI* GetLibGUI(GeometryGUI* p) { - return GroupGUI::GetGroupGUI(p); + return new GroupGUI(p); } }