Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_RenumberingDlg.cxx
index b1cdd6b5951b73d7903a0086d85822e4f0b5216a..26a2614ac5d8db345584b2455a3c4ddee7c92750 100644 (file)
@@ -1,6 +1,6 @@
-//  SMESH SMESHGUI : GUI for SMESH component
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 //  This library is free software; you can redistribute it and/or
 //  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
 //
+// SMESH SMESHGUI : GUI for SMESH component
+// File   : SMESHGUI_RenumberingDlg.cxx
+// Author : Michael ZORIN, Open CASCADE S.A.S.
+// SMESH includes
 //
-//
-//  File   : SMESHGUI_RenumberingDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
 #include "SMESHGUI_RenumberingDlg.h"
 
 #include "SMESHGUI.h"
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_VTKUtils.h"
 
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-#include "SUIT_MessageBox.h"
-
-#include "LightApp_Application.h"
-
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
+#include <SMESH_Actor.h>
+#include <SMESH_TypeFilter.hxx>
+
+// SALOME GUI includes
+#include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_MessageBox.h>
+#include <SUIT_OverrideCursor.h>
+
+#include <LightApp_Application.h>
+#include <LightApp_SelectionMgr.h>
+
+#include <SALOME_ListIO.hxx>
+
+// Qt includes
+#include <QApplication>
+#include <QGroupBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QRadioButton>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QKeyEvent>
+#include <QButtonGroup>
+
+// IDL includes
+#include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_MeshEditor)
 
+#define SPACING 6
+#define MARGIN  11
+
 //=================================================================================
 // class    : SMESHGUI_RenumberingDlg()
 // purpose  :
 //=================================================================================
-SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const char* name,
-                                                 const int unit, bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
+SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const int unit)
+  : QDialog( SMESH::GetDesktop( theModule ) ),
+    mySMESHGUI( theModule ),
+    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
 {
   myUnit = unit;
 
-  if (!name)
-    setName("SMESHGUI_RenumberingDlg");
-  resize(303, 185);
+  setModal(false);
+  setAttribute(Qt::WA_DeleteOnClose, true);
+  setWindowTitle(unit == 0 ? 
+                tr("SMESH_RENUMBERING_NODES_TITLE") : 
+                tr("SMESH_RENUMBERING_ELEMENTS_TITLE"));
+  setSizeGripEnabled(true);
 
-  QPixmap image0;
-  QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_SELECT")));
+  SUIT_ResourceMgr* resMgr = SMESH::GetResourceMgr( mySMESHGUI );
+  QPixmap image0(resMgr->loadPixmap("SMESH", unit == 0 ? 
+                                   tr("ICON_DLG_RENUMBERING_NODES") : 
+                                   tr("ICON_DLG_RENUMBERING_ELEMENTS")));
+  QPixmap image1(resMgr->loadPixmap("SMESH",tr("ICON_SELECT")));
 
-  if (unit == 0) {
-    image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_DLG_RENUMBERING_NODES")));
-    setCaption(tr("SMESH_RENUMBERING_NODES_TITLE" ));
-  }
-  else if (unit == 1) {
-    image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_DLG_RENUMBERING_ELEMENTS")));
-    setCaption(tr("SMESH_RENUMBERING_ELEMENTS_TITLE" ));
-  }
+  QVBoxLayout* SMESHGUI_RenumberingDlgLayout = new QVBoxLayout(this);
+  SMESHGUI_RenumberingDlgLayout->setSpacing(SPACING);
+  SMESHGUI_RenumberingDlgLayout->setMargin(MARGIN);
 
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_RenumberingDlgLayout = new QGridLayout(this);
-  SMESHGUI_RenumberingDlgLayout->setSpacing(6);
-  SMESHGUI_RenumberingDlgLayout->setMargin(11);
+  /***************************************************************/
+  GroupConstructors = new QGroupBox(unit == 0 ? 
+                                   tr("SMESH_NODES") :
+                                   tr("SMESH_ELEMENTS"), 
+                                   this);
+  myHelpFileName = unit == 0 ? 
+    "renumbering_nodes_and_elements_page.html#renumbering_nodes_anchor" :
+    "renumbering_nodes_and_elements_page.html#renumbering_elements_anchor";
+
+  QButtonGroup* ButtonGroup = new QButtonGroup(this);
+  QHBoxLayout* GroupConstructorsLayout = new QHBoxLayout(GroupConstructors);
+  GroupConstructorsLayout->setSpacing(SPACING);
+  GroupConstructorsLayout->setMargin(MARGIN);
+
+  Constructor1 = new QRadioButton(GroupConstructors);
+  Constructor1->setIcon(image0);
+  Constructor1->setChecked(true);
+
+  GroupConstructorsLayout->addWidget(Constructor1);
+  ButtonGroup->addButton(Constructor1, 0);
 
   /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  if (unit == 0) {
-    GroupConstructors->setTitle(tr("SMESH_NODES" ));
-    myHelpFileName = "renumbering_nodes_and_elements_page.html#renumbering_nodes_anchor";
-  }
-  else if (unit == 1) {
-    GroupConstructors->setTitle(tr("SMESH_ELEMENTS" ));
-    myHelpFileName = "renumbering_nodes_and_elements_page.html#renumbering_elements_anchor";
-  }
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton(GroupConstructors, "Constructor1");
-  Constructor1->setText(tr("" ));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  Constructor1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth()));
-  Constructor1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupConstructors, 0, 0);
+  GroupMesh = new QGroupBox(tr("SMESH_RENUMBERING"), this);
+  QHBoxLayout* GroupMeshLayout = new QHBoxLayout(GroupMesh);
+  GroupMeshLayout->setMargin(MARGIN);
+  GroupMeshLayout->setSpacing(SPACING);
+
+  TextLabelMesh = new QLabel(tr("SMESH_MESH"), GroupMesh);
+  SelectButton = new QPushButton(GroupMesh);
+  SelectButton->setIcon(image1);
+  LineEditMesh = new QLineEdit(GroupMesh);
+  LineEditMesh->setReadOnly(true);
+
+  GroupMeshLayout->addWidget(TextLabelMesh);
+  GroupMeshLayout->addWidget(SelectButton);
+  GroupMeshLayout->addWidget(LineEditMesh);
 
   /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
-  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
-  buttonHelp->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupButtons, 2, 0);
+  GroupButtons = new QGroupBox(this);
+  QHBoxLayout* GroupButtonsLayout = new QHBoxLayout(GroupButtons);
+  GroupButtonsLayout->setSpacing(SPACING);
+  GroupButtonsLayout->setMargin(MARGIN);
+
+  buttonOk = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), GroupButtons);
+  buttonOk->setAutoDefault(true);
+  buttonOk->setDefault(true);
+  buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons);
+  buttonApply->setAutoDefault(true);
+  buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
+  buttonCancel->setAutoDefault(true);
+  buttonHelp = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons);
+  buttonHelp->setAutoDefault(true);
+
+  GroupButtonsLayout->addWidget(buttonOk);
+  GroupButtonsLayout->addSpacing(10);
+  GroupButtonsLayout->addWidget(buttonApply);
+  GroupButtonsLayout->addSpacing(10);
+  GroupButtonsLayout->addStretch();
+  GroupButtonsLayout->addWidget(buttonCancel);
+  GroupButtonsLayout->addWidget(buttonHelp);
 
   /***************************************************************/
-  GroupMesh = new QGroupBox(this, "GroupMesh");
-  GroupMesh->setTitle(tr("SMESH_RENUMBERING" ));
-  GroupMesh->setMinimumSize(QSize(0, 0));
-  GroupMesh->setFrameShape(QGroupBox::Box);
-  GroupMesh->setFrameShadow(QGroupBox::Sunken);
-  GroupMesh->setColumnLayout(0, Qt::Vertical);
-  GroupMesh->layout()->setSpacing(0);
-  GroupMesh->layout()->setMargin(0);
-  GroupMeshLayout = new QGridLayout(GroupMesh->layout());
-  GroupMeshLayout->setAlignment(Qt::AlignTop);
-  GroupMeshLayout->setSpacing(6);
-  GroupMeshLayout->setMargin(11);
-  TextLabelMesh = new QLabel(GroupMesh, "TextLabelMesh");
-  TextLabelMesh->setText(tr("SMESH_MESH"));
-  TextLabelMesh->setMinimumSize(QSize(50, 0));
-  TextLabelMesh->setFrameShape(QLabel::NoFrame);
-  TextLabelMesh->setFrameShadow(QLabel::Plain);
-  GroupMeshLayout->addWidget(TextLabelMesh, 0, 0);
-  SelectButton = new QPushButton(GroupMesh, "SelectButton");
-  SelectButton->setText(tr("" ));
-  SelectButton->setPixmap(image1);
-  SelectButton->setToggleButton(FALSE);
-  GroupMeshLayout->addWidget(SelectButton, 0, 1);
-  LineEditMesh = new QLineEdit(GroupMesh, "LineEditMesh");
-  LineEditMesh->setReadOnly(true);
-  GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupMesh, 1, 0);
+  SMESHGUI_RenumberingDlgLayout->addWidget(GroupConstructors);
+  SMESHGUI_RenumberingDlgLayout->addWidget(GroupMesh);
+  SMESHGUI_RenumberingDlgLayout->addWidget(GroupButtons);
 
   Init(); /* Initialisations */
 }
@@ -194,7 +167,6 @@ SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const cha
 //=================================================================================
 SMESHGUI_RenumberingDlg::~SMESHGUI_RenumberingDlg()
 {
-  // no need to delete child widgets, Qt does it all for us
 }
 
 //=================================================================================
@@ -203,9 +175,8 @@ SMESHGUI_RenumberingDlg::~SMESHGUI_RenumberingDlg()
 //=================================================================================
 void SMESHGUI_RenumberingDlg::Init()
 {
-  GroupMesh->show();
   myConstructorId = 0;
-  Constructor1->setChecked(TRUE);
+  Constructor1->setChecked(true);
   mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
   myMesh = SMESH::SMESH_Mesh::_nil();
@@ -213,11 +184,10 @@ void SMESHGUI_RenumberingDlg::Init()
   myMeshFilter = new SMESH_TypeFilter (MESH);
 
   /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
+  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
+  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp,   SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
 
   connect(SelectButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
   connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
@@ -225,8 +195,6 @@ void SMESHGUI_RenumberingDlg::Init()
   /* to close dialog if study change */
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
 
-  this->show(); /* displays Dialog */
-
   myEditCurrentArgument = LineEditMesh;
   LineEditMesh->setFocus();
   mySelectionMgr->clearFilters();
@@ -235,14 +203,6 @@ void SMESHGUI_RenumberingDlg::Init()
   SelectionIntoArgument();
 }
 
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ConstructorsClicked (int)
-{
-}
-
 //=================================================================================
 // function : ClickOnApply()
 // purpose  :
@@ -252,41 +212,37 @@ void SMESHGUI_RenumberingDlg::ClickOnApply()
   if (mySMESHGUI->isActiveStudyLocked())
     return;
 
-  if (!myMesh->_is_nil())
-    {
-      try
-       {
-         SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-         SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
-         bool isUnitsLabeled = false;
-
-         if (myUnit == 0 && anActor) {
-           isUnitsLabeled = anActor->GetPointsLabeled();
-           if (isUnitsLabeled)  anActor->SetPointsLabeled(false);
-         }
-         else if (myUnit == 1 && anActor) {
-           isUnitsLabeled = anActor->GetCellsLabeled();
-           if (isUnitsLabeled)  anActor->SetCellsLabeled(false);
-         }
-
-         QApplication::setOverrideCursor(Qt::waitCursor);
-         if (myUnit == 0) {
-           aMeshEditor->RenumberNodes();
-           if (isUnitsLabeled && anActor) anActor->SetPointsLabeled(true);
-         }
-         else if (myUnit == 1) {
-           aMeshEditor->RenumberElements();
-           if (isUnitsLabeled && anActor) anActor->SetCellsLabeled(true);
-         }
-         QApplication::restoreOverrideCursor();
-       }
-      catch(...)
-       {
-       }
-
-      //mySelectionMgr->clearSelected();
-      SMESH::UpdateView();
+  if (!myMesh->_is_nil()) {
+    try {
+      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
+      SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
+      bool isUnitsLabeled = false;
+      
+      if (myUnit == 0 && anActor) {
+       isUnitsLabeled = anActor->GetPointsLabeled();
+       if (isUnitsLabeled)  anActor->SetPointsLabeled(false);
+      }
+      else if (myUnit == 1 && anActor) {
+       isUnitsLabeled = anActor->GetCellsLabeled();
+       if (isUnitsLabeled)  anActor->SetCellsLabeled(false);
+      }
+      
+      SUIT_OverrideCursor aWaitCursor;
+      if (myUnit == 0) {
+       aMeshEditor->RenumberNodes();
+       if (isUnitsLabeled && anActor) anActor->SetPointsLabeled(true);
+      }
+      else if (myUnit == 1) {
+       aMeshEditor->RenumberElements();
+       if (isUnitsLabeled && anActor) anActor->SetCellsLabeled(true);
+      }
     }
+    catch(...) {
+    }
+    
+    //mySelectionMgr->clearSelected();
+    SMESH::UpdateView();
+  }
 }
 
 //=================================================================================
@@ -322,16 +278,17 @@ void SMESHGUI_RenumberingDlg::ClickOnHelp()
   if (app) 
     app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
   else {
-               QString platform;
+    QString platform;
 #ifdef WIN32
-               platform = "winapplication";
+    platform = "winapplication";
 #else
-               platform = "application";
+    platform = "application";
 #endif
-    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
-                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
-                          arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName),
-                          QObject::tr("BUT_OK"));
+    SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
+                            tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                            arg(app->resourceMgr()->stringValue("ExternalBrowser", 
+                                                                platform)).
+                            arg(myHelpFileName));
   }
 }
 
@@ -440,7 +397,7 @@ void SMESHGUI_RenumberingDlg::enterEvent(QEvent* e)
 void SMESHGUI_RenumberingDlg::closeEvent(QCloseEvent* e)
 {
   /* same than click on cancel button */
-  this->ClickOnCancel();
+  ClickOnCancel();
 }
 
 //=======================================================================
@@ -463,9 +420,8 @@ void SMESHGUI_RenumberingDlg::keyPressEvent( QKeyEvent* e )
   if ( e->isAccepted() )
     return;
 
-  if ( e->key() == Key_F1 )
-    {
-      e->accept();
-      ClickOnHelp();
-    }
+  if ( e->key() == Qt::Key_F1 ) {
+    e->accept();
+    ClickOnHelp();
+  }
 }