Salome HOME
Fix for Bug IPAL9624 ( 3.0.0(current2807): SMESH: name of submesh and group ).
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MultiEditDlg.cxx
index f1d9400615dfe7b59ddc690addfe87e30b4f009d..71a953d18c15ba02042468ef68525f0f5d0aee58 100755 (executable)
@@ -111,7 +111,6 @@ SMESHGUI_MultiEditDlg
          WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose),
     mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
     mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-    myViewWindow(SMESH::GetViewWindow(theModule)),
     mySMESHGUI(theModule)
 {
   myFilterDlg = 0;
@@ -141,7 +140,7 @@ QFrame* SMESHGUI_MultiEditDlg::createMainFrame (QWidget* theParent, const bool t
   aMainGrp->setFrameStyle(QFrame::NoFrame);
   aMainGrp->setInsideMargin(0);
 
-  QPixmap aPix (SMESHGUI::resourceMgr()->loadPixmap("SMESH", tr("ICON_SELECT")));
+  QPixmap aPix (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
 
   // "Selected cells" group
   mySelGrp = new QGroupBox(1, Qt::Horizontal,  aMainGrp);
@@ -372,7 +371,8 @@ SMESH::long_array_var SMESHGUI_MultiEditDlg::getIds()
 //=======================================================================
 void SMESHGUI_MultiEditDlg::onClose()
 {
-  myViewWindow->SetSelectionMode(ActorSelection);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode(ActorSelection);
   disconnect(mySelectionMgr, 0, this, 0);
   disconnect(mySMESHGUI, 0, this, 0);
   mySMESHGUI->ResetState();
@@ -404,7 +404,9 @@ void SMESHGUI_MultiEditDlg::onSelectionDone()
     QLineEdit* aNameEdit = mySubmeshChk->isChecked() ? mySubmesh : myGroup;
     if (nbSel == 1) {
       Handle(SALOME_InteractiveObject) anIO = aList.First();
-      anIO.IsNull() ? aNameEdit->clear() : aNameEdit->setText(anIO->getName());
+      QString aName = "";
+      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
+      anIO.IsNull() ? aNameEdit->clear() : aNameEdit->setText(aName);
 
       if (mySubmeshChk->isChecked()) {
         SMESH::SMESH_subMesh_var aSubMesh =
@@ -762,7 +764,8 @@ void SMESHGUI_MultiEditDlg::onListSelectionChanged()
   }
 
   mySelector->AddOrRemoveIndex(anActor->getIO(),anIndexes,false);
-  myViewWindow->highlight(anActor->getIO(),true,true);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->highlight(anActor->getIO(),true,true);
 }
 
 //=======================================================================
@@ -833,19 +836,23 @@ void SMESHGUI_MultiEditDlg::setSelectionMode()
   mySelectionMgr->clearFilters();
 
   if (mySubmeshChk->isChecked()) {
-    myViewWindow->SetSelectionMode(ActorSelection);
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode(ActorSelection);
     mySelectionMgr->installFilter(new SMESH_TypeFilter(SUBMESH));
   }
   else if (myGroupChk->isChecked()) {
-    myViewWindow->SetSelectionMode(ActorSelection);
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode(ActorSelection);
     mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP));
   }
 
   if (entityType()) {
-    myViewWindow->SetSelectionMode(VolumeSelection);
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode(VolumeSelection);
     SMESH::SetFilter(new SMESHGUI_VolumesFilter());
   } else {
-    myViewWindow->SetSelectionMode(FaceSelection);
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode(FaceSelection);
     if (myFilterType == SMESHGUI_TriaFilter)
       SMESH::SetFilter(new SMESHGUI_TriangleFilter());
     else if (myFilterType == SMESHGUI_QuadFilter)