]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Remove functionality by popup menu and the keyboard button "Delete".
authornds <nds@opencascade.com>
Thu, 21 Nov 2013 06:58:52 +0000 (06:58 +0000)
committernds <nds@opencascade.com>
Thu, 21 Nov 2013 06:58:52 +0000 (06:58 +0000)
src/HYDROCurveCreator/CurveCreator_Widget.cxx
src/HYDROCurveCreator/CurveCreator_Widget.h

index 73ffd42b2dc9aed542f1f06255f94e1388aa13bc..3cf3975e1ea1cb802678b31ea8431805548cf452 100644 (file)
@@ -294,7 +294,7 @@ void CurveCreator_Widget::onSelectionChanged()
   QList<ActionId> anEnabledAct;
   if( myCurve ){
     anEnabledAct << NEW_SECTION_ID << MODIFICATION_MODE_ID;
-    if ( getActionMode() == ModificationMode )
+    if ( removeEnabled() )
       anEnabledAct << REMOVE_ID;
     QList<int> aSelSections = mySectionView->getSelectedSections();
     QList< QPair< int, int > > aSelPoints = mySectionView->getSelectedPoints();
@@ -309,7 +309,6 @@ void CurveCreator_Widget::onSelectionChanged()
       }*/
       if( aSelSections.size() == 1 ){
         anEnabledAct << ADDITION_MODE_ID << DETECTION_MODE_ID;
-        anEnabledAct << REMOVE_ID;
       }
       switch ( getActionMode() ) {
         case AdditionMode: {
@@ -828,6 +827,30 @@ QList< QPair< int, int > > CurveCreator_Widget::getSelectedPoints()
   return mySectionView->getSelectedPoints();
 }
 
+/**
+ * According to the widget state, performs the remove action
+ */
+void CurveCreator_Widget::removeSelected()
+{
+  onRemove();
+}
+
+/**
+ * Checks whether there are some selection to be removed
+ */
+bool CurveCreator_Widget::removeEnabled()
+{
+  bool isEnabled = getActionMode() == ModificationMode;
+  if ( !isEnabled ) {
+    QList<int> aSelSections = mySectionView->getSelectedSections();
+    CurveCreator_TreeView::SelectionType aSelType = mySectionView->getSelectionType();
+    isEnabled = aSelType == CurveCreator_TreeView::ST_SECTIONS &&
+                aSelSections.size() == 1;
+  }
+  return isEnabled;
+}
+
+
 //=================================================================================
 // function : GeometryGUI::onGetCoordsByClick()
 // purpose  : Manage mouse press events in Additon mode
index 03cfd0948a1ff4c188eab8a1b95b5a038ce82d3e..225e864d49a06aac4b0ff31b7f95b1492c5eb3f7 100644 (file)
@@ -65,6 +65,9 @@ public:
   QList<int> getSelectedSections();
   QList< QPair< int, int > > getSelectedPoints();
 
+  void  removeSelected();
+  bool  removeEnabled();
+
 signals:
   void selectionChanged();
   void subOperationStarted( QWidget* );