Salome HOME
0022876: EDF 8425 SMESH: Get the normal of a face in the GUI
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MultiEditDlg.cxx
index a8682ee9581883b6bc93908dce1068e46ed4343f..0f0346684667b719ee37678b58df9b5ecf86e210 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  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
@@ -6,7 +6,7 @@
 // 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.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -53,7 +53,6 @@
 #include <LightApp_SelectionMgr.h>
 #include <LightApp_Application.h>
 #include <SALOME_ListIO.hxx>
-#include <SALOME_ListIteratorOfListIO.hxx>
 #include <SalomeApp_Tools.h>
 
 #include <SVTK_Selector.h>
@@ -739,7 +738,7 @@ void SMESHGUI_MultiEditDlg::updateButtons()
   bool isListBoxNonEmpty = myListBox->count() > 0;
   bool isToAll = myToAllChk->isChecked();
   myFilterBtn->setEnabled(!isToAll);
-  myRemoveBtn->setEnabled(isListBoxNonEmpty && !isToAll);
+  myRemoveBtn->setEnabled(myListBox->selectedItems().count() && !isToAll);
   mySortBtn->setEnabled(isListBoxNonEmpty &&!isToAll);
 
   const SALOME_ListIO& aList = mySelector->StoredIObjects();
@@ -859,6 +858,8 @@ void SMESHGUI_MultiEditDlg::onListSelectionChanged()
   mySelector->AddOrRemoveIndex(anActor->getIO(),anIndexes,false);
   if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
     aViewWindow->highlight(anActor->getIO(),true,true);
+
+  myRemoveBtn->setEnabled( anIndexes.Extent() );
 }
 
 //=======================================================================
@@ -1635,16 +1636,18 @@ bool SMESHGUI_SplitVolumesDlg::process (SMESH::SMESH_MeshEditor_ptr theEditor,
       aParameters << myDirSpin[2]->text();
       myMesh->SetParameters( aParameters.join(":").toLatin1().constData() );
 
-      SMESH::AxisStruct_var axis = new SMESH::AxisStruct;
-      axis->x  = myPointSpin[0]->GetValue();
-      axis->y  = myPointSpin[1]->GetValue();
-      axis->z  = myPointSpin[2]->GetValue();
-      axis->vx = myDirSpin[0]->GetValue();
-      axis->vy = myDirSpin[1]->GetValue();
-      axis->vz = myDirSpin[2]->GetValue();
-
-      theEditor->SplitHexahedraIntoPrisms( obj,  myGroupChoice->checkedId()+1,
-                                           axis, myAllDomainsChk->isChecked() );
+      SMESH::PointStruct_var point = new SMESH::PointStruct;
+      point->x  = myPointSpin[0]->GetValue();
+      point->y  = myPointSpin[1]->GetValue();
+      point->z  = myPointSpin[2]->GetValue();
+      SMESH::DirStruct_var norm = new SMESH::DirStruct;
+      norm->PS.x = myDirSpin[0]->GetValue();
+      norm->PS.y = myDirSpin[1]->GetValue();
+      norm->PS.z = myDirSpin[2]->GetValue();
+
+      theEditor->SplitHexahedraIntoPrisms( obj, point, norm,
+                                           myGroupChoice->checkedId()+1,
+                                           myAllDomainsChk->isChecked() );
     }
     else
     {
@@ -1698,6 +1701,9 @@ void SMESHGUI_SplitVolumesDlg::on3d2dChanged(int isPrism)
   }
   SMESHGUI_MultiEditDlg::on3d2dChanged( !myEntityType );
   myEntityType = 1; // == VOLUME
+  myChoiceWidget->hide();
+  myChoiceWidget->show();
+  resize(minimumSizeHint());
   onSelectionDone();
 }