X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_GroupOpDlg.cxx;h=52f6d0fc4a98fdbe69a36018b059508a3046733b;hp=04a03263ad03f5c6b449f021ea6043c79390e320;hb=104ff7b2818ce4d0f8a38d840abd3e5c70190668;hpb=c38c10811a065cf5b13e8807ed71864d92ca7d80 diff --git a/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx index 04a03263a..52f6d0fc4 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupOpDlg.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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -29,14 +29,21 @@ #include "SMESHGUI.h" #include "SMESHGUI_Utils.h" +#include "SMESHGUI_VTKUtils.h" #include "SMESH_TypeFilter.hxx" #include "SUIT_ResourceMgr.h" #include "SUIT_Desktop.h" +#include "SUIT_Session.h" +#include "SUIT_MessageBox.h" -#include "SalomeApp_SelectionMgr.h" +#include "LightApp_Application.h" + +#include "LightApp_SelectionMgr.h" #include "SVTK_Selection.h" +#include "SVTK_ViewWindow.h" +#include "SVTK_Selector.h" #include "SALOME_ListIO.hxx" // QT Includes @@ -61,17 +68,28 @@ // name : SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg // Purpose : Constructor //======================================================================= -SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg (QWidget* theParent, - SalomeApp_SelectionMgr* theSelection, - const int theMode) - : QDialog(theParent, "SMESHGUI_GroupOpDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg( SMESHGUI* theModule, const int theMode ) + : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_GroupOpDlg", false, + WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ), + mySMESHGUI( theModule ), + mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ) { myMode = theMode; - if (myMode == UNION) setCaption(tr("UNION_OF_TWO_GROUPS")); - else if (myMode == INTERSECT) setCaption(tr("INTERSECTION_OF_TWO_GROUPS")); - else setCaption(tr("CUT_OF_TWO_GROUPS")); + if (myMode == UNION) { + setCaption(tr("UNION_OF_TWO_GROUPS")); + myHelpFileName = "/files/using_operations_on_groups.htm#Union"; + } + else if (myMode == INTERSECT) { + setCaption(tr("INTERSECTION_OF_TWO_GROUPS")); + myHelpFileName = "/files/using_operations_on_groups.htm#Intersection"; + } + else { + setCaption(tr("CUT_OF_TWO_GROUPS")); + myHelpFileName = "/files/using_operations_on_groups.htm#Cut"; + } + + mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector(); QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING); @@ -83,7 +101,7 @@ SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg (QWidget* theParent, aDlgLay->setStretchFactor(aMainFrame, 1); - Init(theSelection); + Init(); } //======================================================================= @@ -115,7 +133,7 @@ QFrame* SMESHGUI_GroupOpDlg::createMainFrame (QWidget* theParent) myEdit1->setReadOnly(true); myEdit2->setReadOnly(true); - QPixmap aPix (SMESHGUI::resourceMgr()->loadPixmap("SMESH", tr("ICON_SELECT"))); + QPixmap aPix (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT"))); myBtn1->setPixmap(aPix); myBtn2->setPixmap(aPix); @@ -134,6 +152,7 @@ QFrame* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent) myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame); myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame); myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame); + myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame); QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -143,11 +162,13 @@ QFrame* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent) aLay->addWidget(myApplyBtn); aLay->addItem(aSpacer); aLay->addWidget(myCloseBtn); + aLay->addWidget(myHelpBtn); // connect signals and slots connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); + connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); return aFrame; } @@ -164,11 +185,9 @@ SMESHGUI_GroupOpDlg::~SMESHGUI_GroupOpDlg() // name : SMESHGUI_GroupOpDlg::Init // Purpose : Init dialog fields, connect signals and slots, show dialog //======================================================================= -void SMESHGUI_GroupOpDlg::Init (SalomeApp_SelectionMgr* theSelection) +void SMESHGUI_GroupOpDlg::Init() { - mySelectionMgr = theSelection; - SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI(); - aSMESHGUI->SetActiveDialogBox((QDialog*)this); + mySMESHGUI->SetActiveDialogBox((QDialog*)this); myFocusWg = myEdit1; myGroup1 = SMESH::SMESH_GroupBase::_nil(); @@ -176,23 +195,17 @@ void SMESHGUI_GroupOpDlg::Init (SalomeApp_SelectionMgr* theSelection) // selection and SMESHGUI connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); - connect(aSMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); - connect(aSMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnClose())); + connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); + connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnClose())); connect(myBtn1, SIGNAL(clicked()), this, SLOT(onFocusChanged())); connect(myBtn2, SIGNAL(clicked()), this, SLOT(onFocusChanged())); - int x, y; - aSMESHGUI->DefineDlgPosition(this, x, y); - this->move(x, y); this->show(); // set selection mode -#ifdef NEW_GUI - mySelectionMgr->setSelectionModes(ActorSelection, true); -#else - mySelectionMgr->setSelectionModes(ActorSelection); -#endif + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(ActorSelection); mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP)); return; @@ -247,7 +260,7 @@ bool SMESHGUI_GroupOpDlg::isValid() //======================================================================= bool SMESHGUI_GroupOpDlg::onApply() { - if (!isValid() || SMESHGUI::GetSMESHGUI()->isActiveStudyLocked()) + if (!isValid() || mySMESHGUI->isActiveStudyLocked()) return false; SMESH::SMESH_Mesh_ptr aMesh = myGroup1->GetMesh(); @@ -259,7 +272,7 @@ bool SMESHGUI_GroupOpDlg::onApply() else aNewGrp = aMesh->CutGroups(myGroup1, myGroup2, aName.latin1()); if (!aNewGrp->_is_nil()) { - SMESHGUI::GetSMESHGUI()->updateObjBrowser(true); + mySMESHGUI->updateObjBrowser(true); reset(); return true; } else { @@ -285,14 +298,32 @@ void SMESHGUI_GroupOpDlg::onOk() //======================================================================= void SMESHGUI_GroupOpDlg::onClose() { - mySelectionMgr->setSelectionModes(ActorSelection); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(ActorSelection); disconnect(mySelectionMgr, 0, this, 0); - disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0); - SMESHGUI::GetSMESHGUI()->ResetState(); + disconnect(mySMESHGUI, 0, this, 0); + mySMESHGUI->ResetState(); mySelectionMgr->clearFilters(); reject(); } +//================================================================================= +// function : onHelp() +// purpose : +//================================================================================= +void SMESHGUI_GroupOpDlg::onHelp() +{ + LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); + if (app) + app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName); + else { + SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), + QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName), + QObject::tr("BUT_OK")); + } +} + //======================================================================= // name : SMESHGUI_GroupOpDlg::onSelectionDone // Purpose : SLOT called when selection changed @@ -342,13 +373,10 @@ void SMESHGUI_GroupOpDlg::onDeactivate() //======================================================================= void SMESHGUI_GroupOpDlg::enterEvent (QEvent*) { - SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog(); + mySMESHGUI->EmitSignalDeactivateDialog(); setEnabled(true); -#ifdef NEW_GUI - mySelectionMgr->setSelectionModes(ActorSelection, true); -#else - mySelectionMgr->setSelectionModes(ActorSelection); -#endif + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(ActorSelection); mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP)); } @@ -384,3 +412,20 @@ void SMESHGUI_GroupOpDlg::reset() myFocusWg = myEdit1; myNameEdit->setFocus(); } + +//================================================================================= +// function : keyPressEvent() +// purpose : +//================================================================================= +void SMESHGUI_GroupOpDlg::keyPressEvent( QKeyEvent* e ) +{ + QDialog::keyPressEvent( e ); + if ( e->isAccepted() ) + return; + + if ( e->key() == Key_F1 ) + { + e->accept(); + onHelp(); + } +}