]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Synchronization of Apply/ApplyAll buttons.
authornds <nds@opencascade.com>
Mon, 24 Aug 2015 12:50:38 +0000 (15:50 +0300)
committernds <nds@opencascade.com>
Mon, 24 Aug 2015 12:51:12 +0000 (15:51 +0300)
src/PartSet/PartSet_SketcherMgr.cpp
src/XGUI/XGUI_ActionsMgr.cpp
src/XGUI/XGUI_OperationMgr.cpp
src/XGUI/XGUI_Workshop.cpp
src/XGUI/XGUI_Workshop.h

index c1d3708bd34e200a52a1ab8bfa6024e9bb3fbccf..3840be472092176c6f2292deb2c92c32a67ee50e 100644 (file)
@@ -532,10 +532,6 @@ void PartSet_SketcherMgr::onMouseMoved(ModuleBase_IViewWindow* theWnd, QMouseEve
     // were changed here
     if (isModified) {
       aCurrentOperation->onValuesChanged();
-      ModuleBase_IWorkshop* anIWorkshop = myModule->workshop();
-      XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(anIWorkshop);
-      XGUI_Workshop* aWorkshop = aConnector->workshop();
-      aWorkshop->updateCompositeActionState();
     }
     Events_Loop::loop()->flush(aMoveEvent); // up all move events - to be processed in the solver
     //Events_Loop::loop()->flush(aUpdateEvent); // up update events - to redisplay presentations
index 8d2eada7c492bd5ae4a04d0a51c8c03182e2d5ce..6dc01fa3dc56900b9ac9b1b60b37e47c669d6605 100644 (file)
@@ -236,6 +236,10 @@ QAction* XGUI_ActionsMgr::operationStateAction(OperationStateActionId theId, QOb
       case Accept:
       case AcceptAll:
         aResult = new QAction(QIcon(":pictures/button_ok.png"), "", theParent);
+        // the default value is disabled, some modifications should be performed in order
+        // to update enable state of this action.
+        // AcceptAll is blinked when sketch is started from enabled to disabled.
+        aResult->setEnabled(false);
         break;
       case Abort:
       case AbortAll: {
index 63be4a0e732d961eae848755c6f8168166df5793..1845110e88bb55870d26c4c8e70ff06fe7f2b6d7 100644 (file)
@@ -188,6 +188,9 @@ void XGUI_OperationMgr::setApplyEnabled(const bool theEnabled)
 {
   myIsApplyEnabled = theEnabled;
   emit validationStateChanged(theEnabled);
+
+  bool aParentValid = isParentOperationValid();
+  emit nestedStateChanged(aParentValid);
 }
 
 bool XGUI_OperationMgr::isApplyEnabled() const
@@ -298,13 +301,6 @@ void XGUI_OperationMgr::onAbortOperation()
 void XGUI_OperationMgr::onOperationStarted()
 {
   ModuleBase_Operation* aSenderOperation = dynamic_cast<ModuleBase_Operation*>(sender());
-  
-  bool aParentValid = isParentOperationValid();
-  // in order to apply is enabled only if there are modifications in the model
-  // e.g. sketch can be applyed only if at least one nested element modification is finished
-  bool aCanUndo = ModelAPI_Session::get()->canUndo();
-  emit nestedStateChanged(aParentValid && aCanUndo);
-
   emit operationStarted(aSenderOperation);
 }
 
@@ -317,10 +313,6 @@ void XGUI_OperationMgr::onOperationAborted()
 void XGUI_OperationMgr::onOperationCommitted()
 {
   ModuleBase_Operation* aSenderOperation = dynamic_cast<ModuleBase_Operation*>(sender());
-  // in order to apply is enabled only if there are modifications in the model
-  // e.g. sketch can be applyed only if at least one nested element create is finished
-  bool aCanUndo = ModelAPI_Session::get()->canUndo();
-  emit nestedStateChanged(myOperations.count() >= 1 && aCanUndo);
   emit operationCommitted(aSenderOperation);
 }
 
index 391ed7cdd4c49cd2c9d99141f6d2ef931195ab8d..82fb45c18c3fde147356b7965bb67c3ad05d6429 100644 (file)
@@ -663,7 +663,6 @@ void XGUI_Workshop::onUndo(int theTimes)
   for (int i = 0; i < theTimes; ++i) {
     aMgr->undo();
   }
-  updateCompositeActionState();
   updateCommandStatus();
 }
 
@@ -687,7 +686,6 @@ void XGUI_Workshop::onRedo(int theTimes)
   for (int i = 0; i < theTimes; ++i) {
     aMgr->redo();
   }
-  updateCompositeActionState();
   updateCommandStatus();
 
   // unblock the viewer update functionality and make update on purpose
@@ -850,20 +848,6 @@ void XGUI_Workshop::updateCommandStatus()
   emit commandStatusUpdated();
 }
 
-//******************************************************
-void XGUI_Workshop::updateCompositeActionState()
-{
-  // in order to apply is enabled only if there are modifications in the model
-  // e.g. sketch can be applyed only if at least one nested element create is finished
-  bool aCanUndo = ModelAPI_Session::get()->canUndo();
-  bool aParentValid = operationMgr()->isParentOperationValid();
-  bool aCurrentValid = operationMgr()->currentOperation() &&
-                       operationMgr()->currentOperation()->isValid();
-
-  QAction* aAcceptAllAct = myActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll);
-  aAcceptAllAct->setEnabled(aParentValid && (aCanUndo || aCurrentValid));
-}
-
 void XGUI_Workshop::updateHistory()
 {
   std::list<std::string> aUndoList = ModelAPI_Session::get()->undoList();
index 510ee796d5d9e8863a007aaecc7460b37880379a..60926cf71c6b1b0f2b40d9fa9b36cd37ac32327c 100644 (file)
@@ -258,10 +258,6 @@ signals:
    /// Update of commands status
   void updateCommandStatus();
 
-  // Update enable state of accept all button. It is enabled if the the parent operation is
-  // valid and there are modifications in sesstion(undo can be performed).
-  void updateCompositeActionState();
-
   /// update history list (undo/redo commands)
   void updateHistory();