X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGroupGUI%2FGroupGUI.cxx;h=e335605c6325fae08ffae8f37b88280921088392;hb=4cf6ece050adcf0ae832f44b82cdeb65ec923245;hp=6252e88bd3231068399245b57c1949cc6fdc15e9;hpb=d3dd282390888d7dc091ba2c2ffe7923bd7458e6;p=modules%2Fgeom.git diff --git a/src/GroupGUI/GroupGUI.cxx b/src/GroupGUI/GroupGUI.cxx index 6252e88bd..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 // // // @@ -31,34 +31,22 @@ #include "GEOMImpl_Types.hxx" -#include "SALOMEGUI_QtCatchCorbaException.hxx" -#include "QAD_Desktop.h" -#include "QAD_MessageBox.h" - -GroupGUI* GroupGUI::myGUIObject = 0; - -//======================================================================= -// function : GetGroupGUI() -// purpose : Get the only GroupGUI object [ static ] -//======================================================================= -GroupGUI* GroupGUI::GetGroupGUI() -{ - if ( myGUIObject == 0 ) - myGUIObject = new GroupGUI(); - - return myGUIObject; -} +#include "SUIT_Session.h" +#include "SUIT_Desktop.h" +#include "SUIT_MessageBox.h" +#include "SalomeApp_Application.h" +#include "SalomeApp_Study.h" +#include "LightApp_SelectionMgr.h" //======================================================================= // function : GroupGUI() // purpose : Constructor //======================================================================= -GroupGUI::GroupGUI() -: GEOMGUI() +GroupGUI::GroupGUI(GeometryGUI* parent) +: GEOMGUI(parent) { } - //======================================================================= // function : ~GroupGUI() // purpose : Destructor @@ -72,53 +60,62 @@ GroupGUI::~GroupGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool GroupGUI::OnGUIEvent( int theCommandID, QAD_Desktop* parent ) +bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { - GeometryGUI::GetGeomGUI()->EmitSignalDeactivateDialog(); - - SALOME_Selection* Sel = SALOME_Selection::Selection( - QAD_Application::getDesktop()->getActiveStudy()->getSelection() ); + SalomeApp_Application* app = getGeometryGUI()->getApp(); + if ( !app ) return false; + + getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - if ( QAD_Application::getDesktop()->getActiveStudy()->isLocked() ) { - QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); + 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"), + QObject::tr("WRN_STUDY_LOCKED"), + QObject::tr("BUT_OK") ); return false; } switch ( theCommandID ) { case 800: - aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::CreateGroup, parent, "", Sel ); + case 8001: // CREATE GROUP + aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent); break; - case 801: + case 801: // EDIT GROUP { - if ( Sel->IObjectCount() == 1 ) { + SALOME_ListIO aList; + aList.Clear(); + + 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( Sel->firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject( aList.First(), aResult ); - if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) { - aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::EditGroup, parent, "", Sel ); + if (aResult && !CORBA::is_nil(anObj) && anObj->GetType() == GEOM_GROUP) { + aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent); break; } } - QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), - tr("WRN_WARNING"), - tr("NO_GROUP"), - tr("BUT_OK") ); + SUIT_MessageBox::warn1(parent, tr("WRN_WARNING"), tr("NO_GROUP"), tr("BUT_OK") ); break; } default: - parent->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; } @@ -127,8 +124,11 @@ bool GroupGUI::OnGUIEvent( int theCommandID, QAD_Desktop* parent ) //===================================================================================== extern "C" { - GEOMGUI* GetLibGUI() +#ifdef WNT + __declspec( dllexport ) +#endif + GEOMGUI* GetLibGUI(GeometryGUI* p) { - return GroupGUI::GetGroupGUI(); + return new GroupGUI(p); } }