X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Workshop.h;h=d10d3b729ea6cf7b6cac98f8c3f257d70c351d49;hb=fdf05fdbacbddf319df9770cddafaaa09e8cd1a4;hp=ff4a8708a336473849d6f8f4e0f2cdeb36e6103d;hpb=ba8119ee40e4a1f84df10304dd420d0b9c0a9527;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Workshop.h b/src/XGUI/XGUI_Workshop.h index ff4a8708a..d10d3b729 100644 --- a/src/XGUI/XGUI_Workshop.h +++ b/src/XGUI/XGUI_Workshop.h @@ -5,7 +5,6 @@ #include "XGUI.h" //#include "XGUI_Constants.h" -#include #include #include #include @@ -33,28 +32,23 @@ class XGUI_ViewerProxy; class XGUI_PropertyPanel; class XGUI_ContextMenuMgr; class XGUI_ModuleConnector; +class XGUI_WorkshopListener; class ModuleBase_Operation; class ModuleBase_IModule; class ModuleBase_IViewer; -class Config_FeatureMessage; -class Config_PointerMessage; - class QWidget; class QDockWidget; class QMainWindow; -class ModelAPI_ObjectUpdatedMessage; -class ModelAPI_ObjectDeletedMessage; -class ModelAPI_ResultPart; class QAction; /**\class XGUI_Workshop * \ingroup GUI * \brief Class which defines a configuration of the application (Workshop) and launches it. */ -class XGUI_EXPORT XGUI_Workshop : public QObject, public Events_Listener +class XGUI_EXPORT XGUI_Workshop : public QObject { Q_OBJECT public: @@ -67,6 +61,12 @@ Q_OBJECT //! Starting of the application void startApplication(); + // Activates the module controls. Should be called after module creation + void activateModule(); + + // Deactivates the module controls. Should be called after module creation + void deactivateModule(); + //! Returns main window (Desktop) of the application AppElements_MainWindow* mainWindow() const { @@ -112,9 +112,6 @@ Q_OBJECT //! Creates and adds a new workbench (menu group) with the given name and returns it AppElements_Workbench* addWorkbench(const QString& theName); - //! Redefinition of Events_Listener method - virtual void processEvent(const std::shared_ptr& theMessage); - //! Returns an object which provides interface to Salome Module (LightApp_Module) XGUI_SalomeConnector* salomeConnector() const { @@ -130,6 +127,13 @@ Q_OBJECT return mySalomeConnector != 0; } + /// Returns true if the loading data process is started and has not been finished yet + /// \return boolean result + bool isLoadingData() const + { + return myIsLoadingData; + }; + //! Returns Object browser XGUI_ObjectsBrowser* objectBrowser() const { @@ -156,13 +160,6 @@ Q_OBJECT /// \return a desktop instance QMainWindow* desktop() const; - //! Returns icon name according to feature - static QIcon featureIcon(const FeaturePtr& theFeature); - - //! Activates or deactivates a part - //! If PartPtr is Null pointer then PartSet will be activated - void activatePart(std::shared_ptr theFeature); - //! Delete features void deleteObjects(); @@ -221,10 +218,16 @@ Q_OBJECT //! \param theAskAboutDeleteReferences if true, the message box with a list of references to the //! objects features appear. If the user chose do not continue, the deletion is not performed //! \return the success of the delete - static bool deleteFeatures(const QObjectPtrList& theList, - std::set theIgnoredFeatures = std::set(), - QWidget* theParent = 0, - const bool theAskAboutDeleteReferences = false); + bool deleteFeatures(const QObjectPtrList& theList, + const std::set& theIgnoredFeatures, + QWidget* theParent = 0, + const bool theAskAboutDeleteReferences = false); + + /// Deactivates the object, if it is active and the module returns that the activation + /// of selection for the object is not possible currently(the current operation uses it) + /// \param theObject an object + /// \param theUpdateViewer a boolean flag to update viewer immediately + void deactivateActiveObject(const ObjectPtr& theObject, const bool theUpdateViewer); signals: /// Emitted when selection happens in Salome viewer @@ -241,6 +244,7 @@ signals: //! Signal to update Undo history list void updateUndoHistory(const QList&); + //! Signal to update Redo history list void updateRedoHistory(const QList&); @@ -291,13 +295,7 @@ signals: void hideObjectBrowser(); /// Reaction on command call - void onFeatureTriggered(); - - /// Change active document - /// \param theObj a part object. If it is NULL then active document is a main document - void changeCurrentDocument(ObjectPtr theObj); - - //void activateLastPart(); + //void onFeatureTriggered(); /// Close document void closeDocument(); @@ -312,32 +310,13 @@ signals: /// \param theOperation an operation void setPropertyPanel(ModuleBase_Operation* theOperation); - /// Procedure to process postponed events - bool event(QEvent * theEvent); - - //Event-loop processing methods: - - /// Process event "Add a feature" - void addFeature(const std::shared_ptr&); - /// Connect to operation signals /// \param theOperation an operation void connectWithOperation(ModuleBase_Operation* theOperation); - /// Process feature update message - void onFeatureUpdatedMsg(const std::shared_ptr& ); - - ///Process feature created message - void onFeatureCreatedMsg(const std::shared_ptr& ); - - /// Process feature redisplay message - void onFeatureRedisplayMsg(const std::shared_ptr& ); - - /// Process feature delete message - void onObjectDeletedMsg(const std::shared_ptr& ); - +private: /// Display all results - void displayAllResults(); + //void displayAllResults(); /// Displau results from document /// \param theDoc a document @@ -389,8 +368,8 @@ signals: /// \param theModule name of the module ModuleBase_IModule* loadModule(const QString& theModule); - /// Activate module - bool activateModule(); + /// Create module + bool createModule(); /// Create object browser widget /// \param theParent a parent of widget @@ -403,12 +382,6 @@ signals: // Creates Dock widgets: Object browser and Property panel void createDockWidgets(); - /// Displaus object and fit all viewer if the object is first (update viewer will not be called) - /// Asks the module whether the object can be displayed - /// \param theObj an object - /// \return true if the object is displayed - bool displayObject(ObjectPtr theObj); - //! Extends undo/redo toolbutton's with history menu //! \param theObject - in the OpenParts it is a QToolButton by itself, //! in salome mode - QAction that creates a button. @@ -433,14 +406,12 @@ private: XGUI_ViewerProxy* myViewerProxy; XGUI_ContextMenuMgr* myContextMenuMgr; XGUI_ModuleConnector* myModuleConnector; + XGUI_WorkshopListener* myEventsListener; QString myCurrentDir; - static QMap myIcons; - - bool myUpdatePrefs; - // Flag to check that part document is in process of activating - bool myPartActivating; + /// The flag is true when we loading a document + bool myIsLoadingData; }; #endif