X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_RenumberingDlg.cxx;h=67a1a422025a4070d494973583214bacca978d44;hp=4e4f75a830978b9ebe534cd98de7ef7c5feb69eb;hb=3a401076892f2f372c58a07199e36486a6c5c9af;hpb=c63ee099ad2b149bd70136839c973e8910137bc5 diff --git a/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx b/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx index 4e4f75a83..67a1a4220 100644 --- a/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx @@ -1,6 +1,6 @@ -// SMESH SMESHGUI : GUI for SMESH component +// Copyright (C) 2007-2010 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 @@ -17,171 +17,147 @@ // 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 // -// -// -// File : SMESHGUI_RenumberingDlg.cxx -// Author : Nicolas REJNERI -// Module : SMESH -// $Header$ +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_RenumberingDlg.cxx +// Author : Michael ZORIN, Open CASCADE S.A.S. +// SMESH includes +// #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 +#include -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SUIT_MessageBox.h" +// SALOME GUI includes +#include +#include +#include +#include +#include -#include "LightApp_Application.h" +#include +#include -#include "SALOME_ListIO.hxx" +#include -#include "utilities.h" +// Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -// QT Includes -#include -#include -#include -#include -#include -#include -#include -#include -#include +// IDL includes +#include +#include CORBA_SERVER_HEADER(SMESH_MeshEditor) -using namespace std; +#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 = "/files/renumbering_nodes_and_elements.htm#renumber_nodes"; - } - else if (unit == 1) { - GroupConstructors->setTitle(tr("SMESH_ELEMENTS" )); - myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_elements"; - } - 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 */ } @@ -192,7 +168,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 } //================================================================================= @@ -201,9 +176,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(); @@ -211,11 +185,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())); @@ -223,8 +196,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(); @@ -233,14 +204,6 @@ void SMESHGUI_RenumberingDlg::Init() SelectionIntoArgument(); } -//================================================================================= -// function : ConstructorsClicked() -// purpose : Radio button management -//================================================================================= -void SMESHGUI_RenumberingDlg::ConstructorsClicked (int) -{ -} - //================================================================================= // function : ClickOnApply() // purpose : @@ -250,41 +213,38 @@ 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(); + SMESHGUI::Modified(); + } } //================================================================================= @@ -320,10 +280,17 @@ void SMESHGUI_RenumberingDlg::ClickOnHelp() 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")); + QString platform; +#ifdef WIN32 + platform = "winapplication"; +#else + platform = "application"; +#endif + SUIT_MessageBox::warning(this, tr("WRN_WARNING"), + tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", + platform)). + arg(myHelpFileName)); } } @@ -351,7 +318,7 @@ void SMESHGUI_RenumberingDlg::SelectionIntoArgument() Handle(SALOME_InteractiveObject) IO = aList.First(); myMesh = SMESH::IObjectToInterface(IO); if (myMesh->_is_nil()) - aString = ""; + aString = ""; } } @@ -373,12 +340,12 @@ void SMESHGUI_RenumberingDlg::SetEditCurrentArgument() { case 0: /* default constructor */ { - if(send == SelectButton) { - LineEditMesh->setFocus(); - myEditCurrentArgument = LineEditMesh; - } - SelectionIntoArgument(); - break; + if(send == SelectButton) { + LineEditMesh->setFocus(); + myEditCurrentArgument = LineEditMesh; + } + SelectionIntoArgument(); + break; } } } @@ -432,7 +399,7 @@ void SMESHGUI_RenumberingDlg::enterEvent(QEvent* e) void SMESHGUI_RenumberingDlg::closeEvent(QCloseEvent* e) { /* same than click on cancel button */ - this->ClickOnCancel(); + ClickOnCancel(); } //======================================================================= @@ -444,3 +411,19 @@ void SMESHGUI_RenumberingDlg::hideEvent (QHideEvent * e) if (!isMinimized()) ClickOnCancel(); } + +//================================================================================= +// function : keyPressEvent() +// purpose : +//================================================================================= +void SMESHGUI_RenumberingDlg::keyPressEvent( QKeyEvent* e ) +{ + QDialog::keyPressEvent( e ); + if ( e->isAccepted() ) + return; + + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } +}