]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #849 (#775) Crash in second study during sketch operation
authornds <nds@opencascade.com>
Thu, 27 Aug 2015 14:43:43 +0000 (17:43 +0300)
committernds <nds@opencascade.com>
Thu, 27 Aug 2015 14:44:13 +0000 (17:44 +0300)
Nullify custom operation presentation on viewer closing in SALOME mode.

src/ModuleBase/ModuleBase_IModule.h
src/NewGeom/NewGeom_Module.cpp
src/PartSet/PartSet_Module.cpp
src/PartSet/PartSet_Module.h

index cf3177f98314750692ff97dfc670a57a56eb4fe7..79b702e3eaf56d614e5ded29926be6eea73998f5 100644 (file)
@@ -146,8 +146,12 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// Returns data model object for representation of data tree in Object browser\r
   virtual ModuleBase_IDocumentDataModel* dataModel() const = 0;\r
 \r
+  /// Performs functionality on closing document\r
   virtual void closeDocument() = 0;\r
 \r
+  /// Clears specific presentations in the viewer\r
+  virtual void clearViewer() = 0;\r
+\r
   /// Returns a list of modes, where the AIS objects should be activated\r
   /// \param theModes a list of modes\r
   virtual void activeSelectionModes(QIntList& theModes) {}\r
index df50886286daa97c9a0f2c9217c74d9c65008989..c2cc2b33440ba6da239cc87937871ab0211e8ef8 100644 (file)
@@ -16,6 +16,7 @@
 #include <ModuleBase_Operation.h>
 #include <ModuleBase_Preferences.h>
 #include <ModuleBase_ActionInfo.h>
+#include <ModuleBase_IModule.h>
 
 #include <LightApp_Application.h>
 #include <LightApp_SelectionMgr.h>
@@ -289,6 +290,8 @@ void NewGeom_Module::onViewManagerRemoved(SUIT_ViewManager* theMgr)
         myProxyViewer->setSelector(0);
         delete mySelector;
         mySelector = 0;
+
+        myWorkshop->module()->clearViewer();
       }
     }
   }
index 6a1e233216cbe9d83b0a6d60fac8f9f03e80e4ed..3731b80fd3ee57b3c3dad0a482aaef03b4c7f8ac 100755 (executable)
@@ -406,6 +406,11 @@ bool PartSet_Module::isMouseOverWindow()
 }
 
 void PartSet_Module::closeDocument()
+{
+  clearViewer();
+}
+
+void PartSet_Module::clearViewer()
 {
   myCustomPrs->clearPrs();
 }
index 449964b4dae131cd36ba9a9e5d5d27238c54de2b..9611ee62eaa2fbfc87f8ef8a696ee797a10a2d17 100644 (file)
@@ -145,8 +145,12 @@ public:
   /// Returns data model object for representation of data tree in Object browser
   virtual ModuleBase_IDocumentDataModel* dataModel() const { return myDataModel; }
 
+  /// Performs functionality on closing document
   virtual void closeDocument();
 
+  /// Clears specific presentations in the viewer
+  virtual void clearViewer();
+
   /// Event Listener method
   /// \param theMessage an event message
   virtual void processEvent(const std::shared_ptr<Events_Message>& theMessage);