// function : ClickOnApply()
// purpose :
//=================================================================================
-void SMESHGUI_TranslationDlg::ClickOnApply()
+bool SMESHGUI_TranslationDlg::ClickOnApply()
{
if (mySMESHGUI->isActiveStudyLocked())
- return;
+ return false;
+
+ if( !isValid() )
+ return false;
if (myNbOkElements) {
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
aVector.PS.z = SpinBox1_3->GetValue();
}
+ QStringList aParameters;
+ aParameters << SpinBox1_1->text();
+ aParameters << SpinBox1_2->text();
+ aParameters << SpinBox1_3->text();
+
int actionButton = ActionGroup->checkedId();
bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
try {
switch ( actionButton ) {
case MOVE_ELEMS_BUTTON:
aMeshEditor->Translate(anElementsId, aVector, false);
+ if( !myMesh->_is_nil())
+ myMesh->SetParameters(SMESHGUI::JoinObjectParameters(aParameters));
break;
case COPY_ELEMS_BUTTON:
if ( makeGroups )
aMeshEditor->TranslateMakeGroups(anElementsId, aVector);
else
aMeshEditor->Translate(anElementsId, aVector, true);
+ if( !myMesh->_is_nil())
+ myMesh->SetParameters(SMESHGUI::JoinObjectParameters(aParameters));
break;
case MAKE_MESH_BUTTON:
SMESH::SMESH_Mesh_var mesh =
aMeshEditor->TranslateMakeMesh(anElementsId, aVector, makeGroups,
LineEditNewMesh->text().toLatin1().data());
+ if( !mesh->_is_nil())
+ mesh->SetParameters(SMESHGUI::JoinObjectParameters(aParameters));
}
} catch (...) {
}
ConstructorsClicked(GetConstructorId());
SelectionIntoArgument();
}
+
+ return true;
}
//=================================================================================
//=================================================================================
void SMESHGUI_TranslationDlg::ClickOnOk()
{
- ClickOnApply();
- ClickOnCancel();
+ if( ClickOnApply() )
+ ClickOnCancel();
}
//=================================================================================
ClickOnHelp();
}
}
+
+//=================================================================================
+// function : isValid
+// purpose :
+//=================================================================================
+bool SMESHGUI_TranslationDlg::isValid()
+{
+ bool ok = true;
+ QString msg;
+
+ ok = SpinBox1_1->isValid( msg, true ) && ok;
+ ok = SpinBox1_2->isValid( msg, true ) && ok;
+ ok = SpinBox1_3->isValid( msg, true ) && ok;
+ if (GetConstructorId() == 0) {
+ ok = SpinBox2_1->isValid( msg, true ) && ok;
+ ok = SpinBox2_2->isValid( msg, true ) && ok;
+ ok = SpinBox2_3->isValid( msg, true ) && ok;
+ }
+
+ if( !ok ) {
+ QString str( tr( "SMESH_INCORRECT_INPUT" ) );
+ if ( !msg.isEmpty() )
+ str += "\n" + msg;
+ SUIT_MessageBox::critical( this, tr( "SMESH_ERROR" ), str );
+ return false;
+ }
+ return true;
+}
+