]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Refs #288 - the profile section selected and addition mode is activated
authornds <nds@opencascade.com>
Wed, 25 Dec 2013 15:42:59 +0000 (15:42 +0000)
committernds <nds@opencascade.com>
Wed, 25 Dec 2013 15:42:59 +0000 (15:42 +0000)
src/HYDROCurveCreator/CurveCreator_Widget.cxx
src/HYDROCurveCreator/CurveCreator_Widget.h
src/HYDROGUI/HYDROGUI_ProfileDlg.cxx

index e4df186f745a85e4644df01d6ef12740a5b6cc96..af71520e178ac355e8bc459b3aa03cf3f61831ad 100644 (file)
@@ -575,50 +575,6 @@ QAction* CurveCreator_Widget::getAction( ActionMode theMode )
   return anAction;
 }
 
-void CurveCreator_Widget::setActionMode( const ActionMode& theMode )
-{
-  ActionMode aPrevMode = getActionMode();
-  QAction* aPrevAction = getAction( aPrevMode );
-  switch ( theMode ) {
-    case NoneMode: {
-      if ( aPrevAction ) {
-        if ( aPrevAction->isChecked() )
-          aPrevAction->setChecked( false );
-      }
-      if ( aPrevMode == ModificationMode )
-        onModificationMode( false );
-      if ( aPrevMode == AdditionMode )
-        onAdditionMode( false );
-    }
-    break;
-    case AdditionMode: {
-      // TODO
-    }
-    break;
-    case ModificationMode:
-    {
-      //TODO
-    }
-    break;
-    case DetectionMode:
-      break;
-  }
-}
-
-CurveCreator_Widget::ActionMode CurveCreator_Widget::getActionMode() const
-{
-  ActionMode aMode = NoneMode;
-
-  if ( myActionMap[ADDITION_MODE_ID]->isChecked() )
-    aMode = AdditionMode;
-  else if ( myActionMap[MODIFICATION_MODE_ID]->isChecked() )
-    aMode = ModificationMode;
-  else if ( myActionMap[DETECTION_MODE_ID]->isChecked() )
-    aMode = DetectionMode;
-
-  return aMode;
-}
-
 void CurveCreator_Widget::onEditSection( int theSection )
 {
   if( !myCurve )
@@ -881,6 +837,13 @@ QList<int> CurveCreator_Widget::getSelectedSections()
   return mySectionView->getSelectedSections();
 }
 
+void CurveCreator_Widget::setSelectedSections( const QList<int>& theSections )
+{
+  mySectionView->setSelectedSections( theSections );
+  updateActionsStates();
+  updateUndoRedo();
+}
+
 /**
  * According to the widget state, performs the remove action
  */
@@ -904,6 +867,55 @@ bool CurveCreator_Widget::removeEnabled()
   return isEnabled;
 }
 
+void CurveCreator_Widget::setActionMode( const ActionMode& theMode )
+{
+  ActionMode aPrevMode = getActionMode();
+  QAction* aPrevAction = getAction( aPrevMode );
+  QAction* anAction = getAction( theMode );
+  switch ( theMode ) {
+    case NoneMode:
+    case AdditionMode: {
+      if ( aPrevAction ) {
+        if ( aPrevAction->isChecked() ) {
+          aPrevAction->setChecked( false );
+        }
+      }
+      if ( aPrevMode == ModificationMode )
+        onModificationMode( false );
+      if ( aPrevMode == AdditionMode )
+        onAdditionMode( false );
+
+      if ( theMode == AdditionMode )
+      {
+        anAction->setChecked( true );
+        onModeChanged( true );
+      }
+    }
+    break;
+    break;
+    case ModificationMode:
+    {
+      //TODO
+    }
+    break;
+    case DetectionMode:
+      break;
+  }
+}
+
+CurveCreator_Widget::ActionMode CurveCreator_Widget::getActionMode() const
+{
+  ActionMode aMode = NoneMode;
+
+  if ( myActionMap[ADDITION_MODE_ID]->isChecked() )
+    aMode = AdditionMode;
+  else if ( myActionMap[MODIFICATION_MODE_ID]->isChecked() )
+    aMode = ModificationMode;
+  else if ( myActionMap[DETECTION_MODE_ID]->isChecked() )
+    aMode = DetectionMode;
+
+  return aMode;
+}
 
 //=================================================================================
 // function : GeometryGUI::addCoordsByClick()
index f3fba8a12b57d15eae6f4698f8e2f12ba24ba6ea..2d4348cc2152b18e7af00416684274b8fe392f60 100644 (file)
@@ -60,6 +60,13 @@ public:
     DisableClosedSection = 0x00000004
   };
 
+  enum ActionMode {
+    NoneMode,
+    AdditionMode,
+    ModificationMode,
+    DetectionMode
+  };
+
 public:
   explicit CurveCreator_Widget( QWidget* parent,
                                 CurveCreator_ICurve *theCurve,
@@ -78,10 +85,14 @@ public:
   void setCurve( CurveCreator_ICurve* theCurve );
 
   QList<int> getSelectedSections();
+  void setSelectedSections( const QList<int>& theSections );
 
   void  removeSelected();
   bool  removeEnabled();
 
+  void setActionMode( const ActionMode& theMode );
+  ActionMode getActionMode() const;
+
 signals:
   void selectionChanged();
   void subOperationStarted( QWidget*, bool );
@@ -147,13 +158,6 @@ protected:
                  DETECTION_MODE_ID 
   };
 
-  enum ActionMode {
-    NoneMode,
-    AdditionMode,
-    ModificationMode,
-    DetectionMode
-  };
-
 private:
   OCCViewer_Viewer* getOCCViewer();
 
@@ -162,9 +166,6 @@ private:
   QAction* getAction(ActionId theId);
   QAction* getAction(ActionMode theMode);
 
-  void setActionMode( const ActionMode& theMode );
-  ActionMode getActionMode() const;
-
   void updateActionsStates();
   void updateUndoRedo();
 
index e4725a2a174115a69f966747d9eaf6d5f5550bda..9c10ea4a994f448b5d68f2a7e72c66eb8c141e97 100644 (file)
@@ -126,6 +126,7 @@ HYDROGUI_ProfileDlg::~HYDROGUI_ProfileDlg()
 void HYDROGUI_ProfileDlg::reset()
 {
   myEditorWidget->reset();
+  myEditorWidget->setActionMode( CurveCreator_Widget::AdditionMode );
 }
 
 Handle(AIS_InteractiveContext) HYDROGUI_ProfileDlg::getAISContext()
@@ -147,6 +148,11 @@ QString HYDROGUI_ProfileDlg::getProfileName() const
 void HYDROGUI_ProfileDlg::setProfile( CurveCreator_ICurve* theProfile )
 {
   myEditorWidget->setCurve( theProfile );
+
+  // select the single section by default
+  QList<int> aSections;
+  aSections << 0;
+  myEditorWidget->setSelectedSections( aSections );
 }
 
 QList<int> HYDROGUI_ProfileDlg::getSelectedSections()