Salome HOME
Make property panel as a GUI of an operation
[modules/shaper.git] / src / XGUI / XGUI_Workshop.h
index dbf160d15105689a1fcf31346a25f7752e00e628..5a557db2bc5ddeb883d478c46bdbf98291ec483a 100644 (file)
@@ -104,7 +104,7 @@ Q_OBJECT
   XGUI_Workbench* addWorkbench(const QString& theName);
 
   //! Redefinition of Events_Listener method
-  virtual void processEvent(const Events_Message* theMessage);
+  virtual void processEvent(const boost::shared_ptr<Events_Message>& theMessage);
 
   //! Returns an object which provides interface to Salome Module (LightApp_Module)
   XGUI_SalomeConnector* salomeConnector() const
@@ -157,11 +157,34 @@ Q_OBJECT
   //! Show the given features in 3d Viewer
   void showOnlyObjects(const QList<ObjectPtr>& theList);
 
+  void setDisplayMode(const QList<ObjectPtr>& theList, int theMode);
+
   ModuleBase_IModule* module() const
   {
     return myModule;
   }
 
+  /// Returns current directory whic contains data files
+  QString currentDataDir() const { return myCurrentDir; }
+
+  /// Returns current directory whic contains data files
+  void setCurrentDataDir(const QString& theDir) { myCurrentDir = theDir; }
+
+  /**
+  * Save the current document into a directory
+  * \param theName - path to the directory
+  * \param theFileNames - returned file names created in this directory
+  */
+  void saveDocument(const QString& theName, std::list<std::string>& theFileNames);
+
+  /*
+   * If there is an active (uncommited) operation shows a prompt to abort it
+   * and performs abortion if user agreed. Returns true if
+   * - operation aborted successfully
+   * - there is no active operation
+   */
+  bool isActiveOperationAborted();
+
 signals:
   void salomeViewerSelection();
   void errorOccurred(const QString&);
@@ -177,6 +200,7 @@ signals:
   void onExit();
   void onUndo();
   void onRedo();
+  void onRebuild();
   void onPreferences();
 
   void showPropertyPanel();
@@ -190,15 +214,15 @@ signals:
   void activateLastPart();
 
  protected:
+  bool event(QEvent * theEvent);
   //Event-loop processing methods:
-  void addFeature(const Config_FeatureMessage*);
+  void addFeature(const boost::shared_ptr<Config_FeatureMessage>&);
   void connectWithOperation(ModuleBase_Operation* theOperation);
-  void saveDocument(QString theName);
 
-  void onFeatureUpdatedMsg(const ModelAPI_ObjectUpdatedMessage* theMsg);
-  void onFeatureCreatedMsg(const ModelAPI_ObjectUpdatedMessage* theMsg);
-  void onFeatureRedisplayMsg(const ModelAPI_ObjectUpdatedMessage* theMsg);
-  void onObjectDeletedMsg(const ModelAPI_ObjectDeletedMessage* theMsg);
+  void onFeatureUpdatedMsg(const boost::shared_ptr<ModelAPI_ObjectUpdatedMessage>& theMsg);
+  void onFeatureCreatedMsg(const boost::shared_ptr<ModelAPI_ObjectUpdatedMessage>& theMsg);
+  void onFeatureRedisplayMsg(const boost::shared_ptr<ModelAPI_ObjectUpdatedMessage>& theMsg);
+  void onObjectDeletedMsg(const boost::shared_ptr<ModelAPI_ObjectDeletedMessage>& theMsg);
 
   void validateOperation(const QString& theOperationId);
 
@@ -255,6 +279,9 @@ signals:
   static QMap<QString, QString> myIcons;
 
   bool myUpdatePrefs;
+
+  // Flag to check that part document is in process of activating
+  bool myPartActivating;
 };
 
 #endif