Salome HOME
Issue #2998: Add help description for automatic creation of constraints
[modules/shaper.git] / src / XGUI / XGUI_Workshop.cpp
index 8755940c10b3dfabc71a875f9d741b194350d70b..3e552186df412c9db79d1f4484239e18c2992397 100644 (file)
@@ -268,7 +268,7 @@ XGUI_Workshop::XGUI_Workshop(XGUI_SalomeConnector* theConnector)
 
 #ifndef HAVE_SALOME
   connect(myMainWindow, SIGNAL(exitKeySequence()), SLOT(onExit()));
-  onTrihedronVisibilityChanged(true);
+  myDisplayer->displayTrihedron(true);
 #endif
 
   connect(myEventsListener, SIGNAL(errorOccurred(std::shared_ptr<Events_InfoMessage>)),
@@ -1070,8 +1070,10 @@ void XGUI_Workshop::onPreferences()
 void XGUI_Workshop::onTrihedronVisibilityChanged(bool theState)
 {
   XGUI_Displayer* aDisplayer = displayer();
-  if (aDisplayer)
+  if (aDisplayer) {
     aDisplayer->displayTrihedron(theState);
+    aDisplayer->updateViewer();
+  }
 }
 
 //******************************************************
@@ -1814,17 +1816,19 @@ void XGUI_Workshop::deleteObjects()
   if (!(hasResult || hasFeature || hasParameter || hasFolder))
     return;
 
-  // Remove from the list non-deletable objects: infinite constuctions which are not in history
+  // Remove from the list non-deletable objects: infinite constructions which are not in history
   bool notDelete = true;
   QObjectPtrList::iterator aIt;
   for (aIt = anObjects.begin(); aIt != anObjects.end(); aIt++) {
     ObjectPtr aObj = (*aIt);
     ResultConstructionPtr aConstr = std::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aObj);
     FeaturePtr aFeature = ModelAPI_Feature::feature(aObj);
-    notDelete = (!aFeature->isInHistory()) && aConstr->isInfinite();
-    if (notDelete) {
-      anObjects.removeAll(aObj);
-      aIt--;
+    if (aFeature) {
+      notDelete = (!aFeature->isInHistory()) && aConstr->isInfinite();
+      if (notDelete) {
+        anObjects.removeAll(aObj);
+        aIt--;
+      }
     }
   }
   // delete objects
@@ -1882,6 +1886,8 @@ void XGUI_Workshop::deleteObjects()
     operationMgr()->commitOperation();
   else
     operationMgr()->abortOperation(operationMgr()->currentOperation());
+
+  myDisplayer->updateViewer();
 }
 
 //**************************************************************