Salome HOME
IPAL22913: TC6.5.0: selected in "Move node" dialog box node is not highlighted
authorouv <ouv@opencascade.com>
Fri, 20 Apr 2012 12:58:07 +0000 (12:58 +0000)
committerouv <ouv@opencascade.com>
Fri, 20 Apr 2012 12:58:07 +0000 (12:58 +0000)
src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx
src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h

index f735a40baff13f04021f80c779621ede51eea473..8d36fe1b974f52a1e3bc42aaf4c863c055ef066d 100644 (file)
@@ -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>
@@ -324,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&)));
 }
 
 //=======================================================================
@@ -717,6 +722,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
index af89bc688b4ef1ae28cfaba74cb9678501b2dee0..11bf1189c2a02af8586436e4a6466f6ef3328bb7 100644 (file)
@@ -68,6 +68,7 @@ protected slots:
 private slots:
   void                           onSelectionDone();
   void                           redisplayPreview();
+  void                           onTextChange( const QString& );
 
 private:
   SMESHGUI_MakeNodeAtPointDlg*  myDlg;