X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_TranslationDlg.cxx;h=eebadb3b42efe99f026dc0da0d9c6f9465ea1d32;hb=9e091cbbbc0faebf3fe66f61cdc07883276e7ada;hp=fdda6415c025c0fa8837325cd8cd3559bd681ed9;hpb=1335ea88437f94da949b901919146911db3aebcb;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx b/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx index fdda6415c..eebadb3b4 100644 --- a/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx @@ -75,6 +75,7 @@ // IDL Headers #include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SMESH_Group) +#include CORBA_SERVER_HEADER(SMESH_MeshEditor) using namespace std; @@ -200,18 +201,21 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha GroupArgumentsLayout->addWidget(SelectButton1, 2, 1); TextLabel1_1 = new QLabel(GroupArguments, "TextLabel1_1"); + TextLabel1_1->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); GroupArgumentsLayout->addWidget(TextLabel1_1, 2, 2); SpinBox1_1 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_1"); GroupArgumentsLayout->addWidget(SpinBox1_1, 2, 3); TextLabel1_2 = new QLabel(GroupArguments, "TextLabel1_2"); + TextLabel1_2->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); GroupArgumentsLayout->addWidget(TextLabel1_2, 2, 4); SpinBox1_2 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_2"); GroupArgumentsLayout->addWidget(SpinBox1_2, 2, 5); TextLabel1_3 = new QLabel(GroupArguments, "TextLabel1_3"); + TextLabel1_3->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); GroupArgumentsLayout->addWidget(TextLabel1_3, 2, 6); SpinBox1_3 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_3"); @@ -228,6 +232,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha GroupArgumentsLayout->addWidget(SelectButton2, 3, 1); TextLabel2_1 = new QLabel(GroupArguments, "TextLabel2_1"); + TextLabel2_1->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); TextLabel2_1->setText(tr("SMESH_X" )); GroupArgumentsLayout->addWidget(TextLabel2_1, 3, 2); @@ -235,6 +240,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha GroupArgumentsLayout->addWidget(SpinBox2_1, 3, 3); TextLabel2_2 = new QLabel(GroupArguments, "TextLabel2_2"); + TextLabel2_2->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); TextLabel2_2->setText(tr("SMESH_Y" )); GroupArgumentsLayout->addWidget(TextLabel2_2, 3, 4); @@ -242,6 +248,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha GroupArgumentsLayout->addWidget(SpinBox2_2, 3, 5); TextLabel2_3 = new QLabel(GroupArguments, "TextLabel2_3"); + TextLabel2_3->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs ); TextLabel2_3->setText(tr("SMESH_Z")); GroupArgumentsLayout->addWidget(TextLabel2_3, 3, 6); @@ -253,16 +260,20 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha CheckBoxCopy->setText(tr("SMESH_CREATE_COPY")); GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2); + // CheckBox for groups generation + MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments); + MakeGroupsCheck->setChecked(false); + GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 5, 5, 0, 2); SMESHGUI_TranslationDlgLayout->addWidget(GroupArguments, 1, 0); /* Initialisations */ - SpinBox1_1->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); - SpinBox1_2->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); - SpinBox1_3->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); - SpinBox2_1->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); - SpinBox2_2->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); - SpinBox2_3->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3); + SpinBox1_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox1_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox1_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox2_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox2_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox2_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); GroupArguments->show(); RadioButton1->setChecked(TRUE); @@ -282,7 +293,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR); - myHelpFileName = "/files/translation.htm"; + myHelpFileName = "translation_page.html"; Init(); @@ -303,6 +314,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); + connect(CheckBoxCopy, SIGNAL(toggled(bool)), SLOT(onCopyChecked(bool))); this->show(); /* displays Dialog */ @@ -349,6 +361,8 @@ void SMESHGUI_TranslationDlg::Init (bool ResetControls) CheckBoxCopy->setChecked(false); CheckBoxMesh->setChecked(false); + MakeGroupsCheck->setChecked(false); + MakeGroupsCheck->setEnabled(false); onSelectMesh(false); } } @@ -450,12 +464,18 @@ void SMESHGUI_TranslationDlg::ClickOnApply() try { SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); QApplication::setOverrideCursor(Qt::waitCursor); - aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy); + if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ) + SMESH::ListOfGroups_var groups = + aMeshEditor->TranslateMakeGroups(anElementsId.inout(), aVector); + else + aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy); QApplication::restoreOverrideCursor(); } catch (...) { } SMESH::UpdateView(); + if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ) + mySMESHGUI->updateObjBrowser(true); // new groups may appear Init(false); ConstructorsClicked(GetConstructorId()); SelectionIntoArgument(); @@ -498,9 +518,15 @@ void SMESHGUI_TranslationDlg::ClickOnHelp() if (app) app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName); else { + QString platform; +#ifdef WIN32 + platform = "winapplication"; +#else + platform = "application"; +#endif SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName), + arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), QObject::tr("BUT_OK")); } } @@ -606,6 +632,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument() if (myEditCurrentArgument == (QWidget*)LineEditElements) { myElementsId = ""; + // MakeGroups is available if there are groups and "Copy" + if ( myMesh->NbGroups() == 0 ) { + MakeGroupsCheck->setChecked(false); + MakeGroupsCheck->setEnabled(false); + } + else if (CheckBoxCopy->isChecked() ) { + MakeGroupsCheck->setEnabled(true); + } + if (CheckBoxMesh->isChecked()) { SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString ); @@ -658,7 +693,7 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument() myNbOkElements = true; } else { - aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString); + aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString); if (aNbUnits != 1) return; @@ -839,6 +874,19 @@ void SMESHGUI_TranslationDlg::onSelectMesh (bool toSelectMesh) SelectionIntoArgument(); } +//======================================================================= +//function : onCopyChecked +//purpose : slot called when Copy checkBox is checked +//======================================================================= + +void SMESHGUI_TranslationDlg::onCopyChecked(bool isOn) +{ + // enable "MakeGroupsCheck" + if ( !myMesh->_is_nil() && myMesh->NbGroups() == 0) + isOn = false; + MakeGroupsCheck->setEnabled(isOn); +} + //================================================================================= // function : GetConstructorId() // purpose :