]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #394 Undo-ing a Sketch element
authornds <natalia.donis@opencascade.com>
Fri, 13 Feb 2015 15:39:11 +0000 (18:39 +0300)
committernds <natalia.donis@opencascade.com>
Fri, 13 Feb 2015 15:39:11 +0000 (18:39 +0300)
Display/erase constraint features.

src/PartSet/PartSet_Module.cpp
src/PartSet/PartSet_SketcherMgr.cpp
src/PartSet/PartSet_SketcherMgr.h

index a8be84bd87af50bc114983bc71c6aa5096524e43..60d6768cf349e23865ede0ed58dac609b5de942f 100644 (file)
@@ -236,7 +236,7 @@ bool PartSet_Module::canRedo() const
 bool PartSet_Module::canDisplayObject(const ObjectPtr& theObject) const
 {
   bool aCanDisplay = false;
-  if (!mySketchMgr->canDisplayObject(theObject))
+  if (!mySketchMgr->canDisplayObject())
     return aCanDisplay;
   CompositeFeaturePtr aSketchFeature = mySketchMgr->activeSketch();
   if (aSketchFeature.get() != NULL) {
index cda45d1ba503d80c1ec87cae99a3c60e9ba16fe9..6398ce252ebcd4d6aa7f7a955e25f2b9aeed0d73 100644 (file)
@@ -668,7 +668,7 @@ bool PartSet_SketcherMgr::canRedo() const
   return isNestedCreateOperation();
 }
 
-bool PartSet_SketcherMgr::canDisplayObject(const ObjectPtr& theObject) const
+bool PartSet_SketcherMgr::canDisplayObject() const
 {
   bool aCanDisplay = true;
   if (!isNestedCreateOperation())
@@ -677,14 +677,6 @@ bool PartSet_SketcherMgr::canDisplayObject(const ObjectPtr& theObject) const
   // during a nested create operation, the feature is redisplayed only if the mouse over view
   // of there was a value modified in the property panel after the mouse left the view
   aCanDisplay = myIsPropertyPanelValueChanged || myIsMouseOverWindow;
-  /*if (!aCanDisplay) {
-    ModuleBase_IWorkshop* anIWorkshop = myModule->workshop();
-    XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(anIWorkshop);
-    XGUI_Workshop* aWorkshop = aConnector->workshop();
-    AppElements_MainWindow* aMainWindow = aWorkshop->mainWindow();
-
-    //aCanDisplay = aMainWindow->isMouseOverWindow();
-  }*/
   return aCanDisplay;
 }
 
@@ -846,11 +838,20 @@ void PartSet_SketcherMgr::updateVisibilityOfCreatedFeature()
   XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(aWorkshop);
   XGUI_Displayer* aDisplayer = aConnector->workshop()->displayer();
 
+  bool aToDisplay = canDisplayObject();
+  // 1. change visibility of the object itself, here the presentable object is processed,
+  // e.g. constraints features
   FeaturePtr aFeature = aOperation->feature();
   std::list<ResultPtr> aResults = aFeature->results();
+  if (aToDisplay)
+    aDisplayer->display(aFeature, false);
+  else
+    aDisplayer->erase(aFeature, false);
+
+  // change visibility of the object results, e.g. non-constraint features
   std::list<ResultPtr>::const_iterator aIt;
   for (aIt = aResults.begin(); aIt != aResults.end(); ++aIt) {
-    if (canDisplayObject(aFeature)) {
+    if (aToDisplay) {
       aDisplayer->display(*aIt, false);
     }
     else {
index c9b16a0a94ab95a4b5d543101c0c7f46bc81b9ee..8a0967b5e02860339a63aa959148822302467a06 100644 (file)
@@ -122,7 +122,7 @@ public:
   /// Display only current operation results for usual operation and ask the sketcher manager
   /// if it is a sketch operation
   /// \param theObject a model object
-  bool canDisplayObject(const ObjectPtr& theObject) const;
+  bool canDisplayObject() const;
 
 public slots:
   /// Process sketch plane selected event