X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Workshop.h;h=f80b8cf7d30e4fe82e656c3aa0ae067b0a5248f3;hb=426a1cf07dfee0bbb58dcd399787a89a4992fa72;hp=d7ace358b60068eb67234ed7c51be05957cf4d79;hpb=8fb6099964adb7a3dd335727ce87ddcdbaf9e8da;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Workshop.h b/src/XGUI/XGUI_Workshop.h index d7ace358b..f80b8cf7d 100644 --- a/src/XGUI/XGUI_Workshop.h +++ b/src/XGUI/XGUI_Workshop.h @@ -4,15 +4,18 @@ #include "XGUI.h" #include "XGUI_Constants.h" #include +#include +#include +#include #include #include #include #include + class XGUI_MainWindow; class XGUI_Command; -class XGUI_Module; class XGUI_Workbench; class XGUI_SelectionMgr; class XGUI_Displayer; @@ -25,8 +28,10 @@ class XGUI_SalomeViewer; class XGUI_ViewerProxy; class XGUI_PropertyPanel; class XGUI_ContextMenuMgr; +class XGUI_ModuleConnector; class ModuleBase_Operation; +class ModuleBase_IModule; class Config_FeatureMessage; class Config_PointerMessage; @@ -34,6 +39,10 @@ class Config_PointerMessage; class QWidget; class QDockWidget; +class ModelAPI_ObjectUpdatedMessage; +class ModelAPI_ObjectDeletedMessage; +class QAction; + /**\class XGUI_Workshop * \ingroup GUI * \brief Class which defines a configuration of the application (Workshop) and launches it. @@ -95,18 +104,24 @@ public: XGUI_ViewerProxy* viewer() const { return myViewerProxy; } + /// Returns the module connectory + /// \returns the instance of connector + XGUI_ModuleConnector* moduleConnector() const { return myModuleConnector; } + //! Returns icon name according to feature Id static QString featureIcon(const std::string& theId); //! Activates or deactivates a part //! If PartPtr is Null pointer then PartSet will be activated - void activatePart(FeaturePtr theFeature); + void activatePart(ResultPartPtr theFeature); //! Delete features - void deleteFeatures(QFeatureList theList); + void deleteObjects(const QList& theList); //! Show the given features in 3d Viewer - void showFeatures(QFeatureList theList, bool isVisible); + void showObjects(const QList& theList, bool isVisible); + + ModuleBase_IModule* module() const { return myModule; } signals: void salomeViewerSelection(); @@ -114,6 +129,7 @@ signals: public slots: void updateCommandStatus(); + void updateCommandsOnViewSelection(); void onNew(); void onOpen(); @@ -122,6 +138,7 @@ public slots: void onExit(); void onUndo(); void onRedo(); + void onPreferences(); void showPropertyPanel(); void hidePropertyPanel(); @@ -129,7 +146,7 @@ public slots: void hideObjectBrowser(); void onFeatureTriggered(); - void changeCurrentDocument(FeaturePtr thePart); + void changeCurrentDocument(ObjectPtr theObj); void activateLastPart(); @@ -139,6 +156,19 @@ protected: 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 validateOperation(const QString& theOperationId); + + QList getModuleCommands() const; + + void displayAllResults(); + void displayDocumentResults(DocumentPtr theDoc); + void displayGroupResults(DocumentPtr theDoc, std::string theGroup); + protected 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. @@ -150,10 +180,17 @@ protected slots: void onContextMenuCommand(const QString& theId, bool isChecked); + void onWidgetValuesChanged(); + + void onStartWaiting(); + private: void initMenu(); - XGUI_Module* loadModule(const QString& theModule); + void registerValidators() const; + + + ModuleBase_IModule* loadModule(const QString& theModule); bool activateModule(); QDockWidget* createObjectBrowser(QWidget* theParent); @@ -163,7 +200,7 @@ private: void createDockWidgets(); XGUI_MainWindow* myMainWindow; - XGUI_Module* myPartSetModule; + ModuleBase_IModule* myModule; XGUI_ObjectsBrowser* myObjectBrowser; XGUI_PropertyPanel* myPropertyPanel; XGUI_SelectionMgr* mySelector; @@ -174,10 +211,10 @@ private: XGUI_ErrorDialog* myErrorDlg; XGUI_ViewerProxy* myViewerProxy; XGUI_ContextMenuMgr* myContextMenuMgr; + XGUI_ModuleConnector* myModuleConnector; QString myCurrentDir; static QMap myIcons; - }; #endif