Salome HOME
Debug
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MakeNodeAtPointDlg.cxx
index ac654fdd6bb4e5cf5d1bc76f65ab8bd91a25a9c3..d9ed467f174fb78f704893c8fce2cfabef1acd2c 100644 (file)
@@ -46,6 +46,7 @@
 #include <SALOME_ListIO.hxx>
 #include <SUIT_Desktop.h>
 #include <SVTK_ViewModel.h>
+#include <SalomeApp_Notebook.h>
 #include <SalomeApp_Tools.h>
 #include <SalomeApp_TypeFilter.h>
 #include <SUIT_ResourceMgr.h>
@@ -208,7 +209,7 @@ QWidget* SMESHGUI_MakeNodeAtPointDlg::createMainFrame (QWidget* theParent)
   connect(myAutoSearchChkBox, SIGNAL (toggled(bool)), this, SLOT(ButtonToggled(bool)));
 
   myMoveRBtn->setChecked(true);
-  myIdBtn->setDown(true);
+  myIdBtn->setChecked(true);
   myAutoSearchChkBox->setChecked(true);
 
   return aFrame;
@@ -228,11 +229,11 @@ void SMESHGUI_MakeNodeAtPointDlg::ButtonToggled (bool on)
     if ( aSender == myCoordBtn ) // button to set coord by node selection
     {
       if ( myIdBtn->isEnabled() )
-        myIdBtn->setDown( !on );
+        myIdBtn->setChecked( !on );
     }
     else if ( aSender == myIdBtn ) // button to select a node to move
     {
-      myCoordBtn->setDown( !on );
+      myCoordBtn->setChecked( !on );
     }
     else if ( aSender == myMoveRBtn ) // move node method
     {
@@ -241,7 +242,7 @@ void SMESHGUI_MakeNodeAtPointDlg::ButtonToggled (bool on)
     else if ( aSender == myCreateRBtn ) // create node method
     {
       myNodeToMoveGrp->setEnabled( false );
-      myCoordBtn->setDown( true ); 
+      myCoordBtn->setChecked( true ); 
     }
   }      
   if ( aSender == myAutoSearchChkBox ) // automatic node search
@@ -249,9 +250,9 @@ void SMESHGUI_MakeNodeAtPointDlg::ButtonToggled (bool on)
     if ( on ) {
       myId->setText("");
       myId->setReadOnly ( true );
-      myIdBtn->setDown( false );
+      myIdBtn->setChecked( false );
       myIdBtn->setEnabled( false );
-      myCoordBtn->setDown( true );
+      myCoordBtn->setChecked( true );
     }
     else {
       myId->setReadOnly ( false );
@@ -267,6 +268,7 @@ void SMESHGUI_MakeNodeAtPointDlg::ButtonToggled (bool on)
 //================================================================================
 
 SMESHGUI_MakeNodeAtPointOp::SMESHGUI_MakeNodeAtPointOp()
+  : SMESHGUI_Helper( getSMESHGUI() )
 {
   mySimulation = 0;
   myDlg = new SMESHGUI_MakeNodeAtPointDlg;
@@ -367,7 +369,7 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
 
   if ( !myMeshActor ) {
     SUIT_MessageBox::warning( dlg(), tr( "SMESH_WRN_WARNING" ),
-                             tr("INVALID_MESH") );
+                              tr("INVALID_MESH") );
     dlg()->show();
     return false;
   }
@@ -375,8 +377,7 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
   QString msg;
   if ( !isValid( msg ) ) { // node id is invalid
     if( !msg.isEmpty() )
-      SUIT_MessageBox::warning( dlg(), tr( "SMESH_WRN_WARNING" ),
-                               tr("INVALID_ID") );
+      SUIT_MessageBox::warning( dlg(), tr( "SMESH_WRN_WARNING" ), msg );
     dlg()->show();
     return false;
   }
@@ -386,7 +387,7 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
     SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(myMeshActor->getIO());
     if (aMesh->_is_nil()) {
       SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                                  tr("SMESHG_NO_MESH") );
+                                   tr("SMESHG_NO_MESH") );
       return true;
     }
     SMESH::SMESH_MeshEditor_var aMeshEditor = aMesh->GetMeshEditor();
@@ -394,7 +395,7 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
       return true;
 
     int aResult = 0;
-    if ( myDlg->myCreateRBtn->isDown() )
+    if ( myDlg->myCreateRBtn->isChecked() )
     {
       aResult = aMeshEditor->AddNode(myDlg->myX->GetValue(),
                                      myDlg->myY->GetValue(),
@@ -410,11 +411,7 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
     }
     if (aResult)
     {
-      QStringList aParameters;
-      aParameters << myDlg->myX->text();
-      aParameters << myDlg->myY->text();
-      aParameters << myDlg->myZ->text();
-      aMesh->SetParameters( SMESHGUI::JoinObjectParameters(aParameters) );
+      getNotebook()->setParameters( aMesh, 3, myDlg->myX, myDlg->myY, myDlg->myZ );
 
       myDlg->myId->setText("");
 
@@ -442,9 +439,12 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
 
 bool SMESHGUI_MakeNodeAtPointOp::isValid( QString& msg )
 {
+  if( !checkParameters( !myNoPreview, 3, myDlg->myX, myDlg->myY, myDlg->myZ ) )
+    return false;
+
   bool ok = true;
   if ( myMeshActor &&
-       myDlg->myMoveRBtn->isDown() &&
+       myDlg->myMoveRBtn->isChecked() &&
        !myDlg->myAutoSearchChkBox->isChecked() )
   {
     ok = false;
@@ -455,11 +455,6 @@ bool SMESHGUI_MakeNodeAtPointOp::isValid( QString& msg )
     if( !ok )
       msg += tr("INVALID_ID") + "\n";
   }
-
-  ok = myDlg->myX->isValid( msg, !myNoPreview ) && ok;
-  ok = myDlg->myY->isValid( msg, !myNoPreview ) && ok;
-  ok = myDlg->myZ->isValid( msg, !myNoPreview ) && ok;
-
   return ok;
 }
 
@@ -482,7 +477,7 @@ void SMESHGUI_MakeNodeAtPointOp::onSelectionDone()
     SMESH_Actor* aMeshActor = SMESH::FindActorByEntry(anIO->getEntry());
 
     if (!aMeshActor) { // coord by geom
-      if ( myDlg->myCoordBtn->isDown() ) {
+      if ( myDlg->myCoordBtn->isChecked() ) {
         GEOM::GEOM_Object_var geom = SMESH::IObjectToInterface<GEOM::GEOM_Object>(anIO);
         if ( !geom->_is_nil() ) {
           TopoDS_Vertex aShape;
@@ -510,14 +505,14 @@ void SMESHGUI_MakeNodeAtPointOp::onSelectionDone()
       if (SMDS_Mesh* aMesh = aMeshActor->GetObject()->GetMesh()) {
         if (const SMDS_MeshNode* aNode = aMesh->FindNode(aString.toInt())) {
           myNoPreview = true;
-          if ( myDlg->myCoordBtn->isDown() ) { // set coord
+          if ( myDlg->myCoordBtn->isChecked() ) { // set coord
             myDlg->myX->SetValue(aNode->X());
             myDlg->myY->SetValue(aNode->Y());
             myDlg->myZ->SetValue(aNode->Z());
             myNoPreview = false;
             redisplayPreview();
           }
-          else if ( myDlg->myIdBtn->isDown() &&
+          else if ( myDlg->myIdBtn->isChecked() &&
                     myDlg->myIdBtn->isEnabled() ) { // set node to move
             myDlg->myId->setText(aString);
             myNoPreview = false;
@@ -545,7 +540,7 @@ void SMESHGUI_MakeNodeAtPointOp::redisplayPreview()
   SMESH::MeshPreviewStruct_var aMeshPreviewStruct;
 
   bool moveShown = false;
-  if ( myDlg->myMoveRBtn->isDown() && // Move method
+  if ( myDlg->myMoveRBtn->isChecked() && // Move method
        myMeshActor)
   {
     const bool autoSearch = myDlg->myAutoSearchChkBox->isChecked();