]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx
Salome HOME
Update translation files for the Reverse Faces dialog.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MakeNodeAtPointDlg.cxx
index 36aa22bb4fd43313f5691ae0b36bf9a369969db6..090a385cc5c541d2e276feb924cf91c1bb96c3bf 100644 (file)
@@ -1,23 +1,23 @@
-//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 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
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// 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_MakeNodeAtPointDlg.cxx
@@ -47,6 +47,7 @@
 #include <SALOME_ListIO.hxx>
 #include <SUIT_Desktop.h>
 #include <SVTK_ViewModel.h>
+#include <SVTK_ViewWindow.h>
 #include <SalomeApp_Tools.h>
 #include <SalomeApp_TypeFilter.h>
 #include <SUIT_ResourceMgr.h>
@@ -159,6 +160,9 @@ QWidget* SMESHGUI_MakeNodeAtPointDlg::createMainFrame (QWidget* theParent)
   aCoordGrpLayout->addWidget(myY);
   aCoordGrpLayout->addWidget(aZLabel);
   aCoordGrpLayout->addWidget(myZ);
+  aCoordGrpLayout->setStretchFactor(myX, 1);
+  aCoordGrpLayout->setStretchFactor(myY, 1);
+  aCoordGrpLayout->setStretchFactor(myZ, 1);
 
   // node ID
 
@@ -225,6 +229,9 @@ QWidget* SMESHGUI_MakeNodeAtPointDlg::createMainFrame (QWidget* theParent)
   aCoordLayout->addWidget(myDY,           1, 3);
   aCoordLayout->addWidget(aDZLabel,       1, 4);
   aCoordLayout->addWidget(myDZ,           1, 5);
+  aCoordLayout->setColumnStretch(1, 1);
+  aCoordLayout->setColumnStretch(3, 1);
+  aCoordLayout->setColumnStretch(5, 1);
 
   myAutoSearchChkBox = new QCheckBox( tr("AUTO_SEARCH"), myNodeToMoveGrp);
   myPreviewChkBox = new QCheckBox( tr("PREVIEW"), myNodeToMoveGrp);
@@ -318,6 +325,10 @@ SMESHGUI_MakeNodeAtPointOp::SMESHGUI_MakeNodeAtPointOp()
   connect(myDlg->myId,SIGNAL (textChanged(const QString&)),SLOT(redisplayPreview()));
   connect(myDlg->myPreviewChkBox,   SIGNAL (toggled(bool)),SLOT(redisplayPreview()));
   connect(myDlg->myAutoSearchChkBox,SIGNAL (toggled(bool)),SLOT(redisplayPreview()));
+
+  // IPAL22913: TC6.5.0: selected in "Move node" dialog box node is not highlighted
+  // note: this slot seems to be lost together with removed obsolete SMESHGUI_MoveNodesDlg class
+  connect(myDlg->myId,SIGNAL (textChanged(const QString&)),SLOT(onTextChange(const QString&)));
 }
 
 //=======================================================================
@@ -368,7 +379,6 @@ void SMESHGUI_MakeNodeAtPointOp::startOperation()
   onSelectionDone(); // init myMeshActor
 
   if ( myMeshActor ) {
-//     myMeshOldDisplayMode = myMeshActor->GetRepresentation();
 //     myMeshActor->SetRepresentation( VTK_WIREFRAME );
     myMeshActor->SetPointRepresentation(true);
     SMESH::RepaintCurrentView();
@@ -387,7 +397,6 @@ void SMESHGUI_MakeNodeAtPointOp::stopOperation()
   myNoPreview = true;
   mySimulation->SetVisibility(false);
   if ( myMeshActor ) {
-//     myMeshActor->SetRepresentation( myMeshOldDisplayMode );
     myMeshActor->SetPointRepresentation(false);
     SMESH::RepaintCurrentView();
     myMeshActor = 0;
@@ -423,6 +432,10 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
     return false;
   }
 
+  QStringList aParameters;
+  aParameters << myDlg->myX->text();
+  aParameters << myDlg->myY->text();
+  aParameters << myDlg->myZ->text();
 
   try {
     SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(myMeshActor->getIO());
@@ -435,6 +448,8 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
     if (aMeshEditor->_is_nil())
       return true;
 
+    aMesh->SetParameters( aParameters.join(":").toLatin1().constData() );
+
     bool ok;
     int anId = myDlg->myId->text().toInt( &ok );
     if( !ok || anId < 1 )
@@ -449,12 +464,6 @@ bool SMESHGUI_MakeNodeAtPointOp::onApply()
 
     if (aResult)
     {
-      QStringList aParameters;
-      aParameters << myDlg->myX->text();
-      aParameters << myDlg->myY->text();
-      aParameters << myDlg->myZ->text();
-      aMesh->SetParameters( aParameters.join(":").toLatin1().constData() );
-
       myDlg->myCurrentX->SetValue(0);
       myDlg->myCurrentY->SetValue(0);
       myDlg->myCurrentZ->SetValue(0);
@@ -711,6 +720,35 @@ void SMESHGUI_MakeNodeAtPointOp::redisplayPreview()
   myNoPreview = false;
 }
 
+//================================================================================
+/*!
+ * \brief SLOT called when the node id is manually changed
+ */
+//================================================================================
+
+void SMESHGUI_MakeNodeAtPointOp::onTextChange( const QString& theText )
+{
+  if( myMeshActor )
+  {
+    if( SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh() )
+    {
+      Handle(SALOME_InteractiveObject) anIO = myMeshActor->getIO();
+      SALOME_ListIO aList;
+      aList.Append( anIO );
+      selectionMgr()->setSelectedObjects( aList, false );
+
+      if( const SMDS_MeshNode* aNode = aMesh->FindNode( theText.toInt() ) )
+      {
+        TColStd_MapOfInteger aListInd;
+        aListInd.Add( aNode->GetID() );
+        selector()->AddOrRemoveIndex( anIO, aListInd, false );
+        if( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( SMESHGUI::GetSMESHGUI() ) )
+          aViewWindow->highlight( anIO, true, true );
+      }
+    }
+  }
+}
+
 //================================================================================
 /*!
  * \brief Activate Node selection