Salome HOME
Make property panel as a GUI of an operation
[modules/shaper.git] / src / XGUI / XGUI_Workshop.h
index 458b8a4c415a9a35c8d358ce98d574adc325900a..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
@@ -154,11 +154,37 @@ Q_OBJECT
   //! Show the given features in 3d Viewer
   void showObjects(const QList<ObjectPtr>& theList, bool isVisible);
 
+  //! 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&);
@@ -174,6 +200,7 @@ signals:
   void onExit();
   void onUndo();
   void onRedo();
+  void onRebuild();
   void onPreferences();
 
   void showPropertyPanel();
@@ -187,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);
 
@@ -205,7 +232,7 @@ signals:
   void displayDocumentResults(DocumentPtr theDoc);
   void displayGroupResults(DocumentPtr theDoc, std::string theGroup);
 
- protected slots:
+ private slots:
   /// SLOT, that is called after the operation is started. Update workshop state according to
   /// the started operation, e.g. visualizes the property panel and connect to it.
   void onOperationStarted();
@@ -250,6 +277,11 @@ signals:
 
   QString myCurrentDir;
   static QMap<QString, QString> myIcons;
+
+  bool myUpdatePrefs;
+
+  // Flag to check that part document is in process of activating
+  bool myPartActivating;
 };
 
 #endif