X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_MainWindow.h;h=3294f58ac5fd276945c1cd31e6a1b36c9c9c807b;hb=fc2acc7bd36f7bff6ec1f5095bf7c44be15e2574;hp=9b29ec3ea17d48f77809ee283684e1e94e2b1b76;hpb=277db1718bb7a3226515e4cc2272d83b463b3434;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_MainWindow.h b/src/XGUI/XGUI_MainWindow.h index 9b29ec3ea..3294f58ac 100644 --- a/src/XGUI/XGUI_MainWindow.h +++ b/src/XGUI/XGUI_MainWindow.h @@ -11,17 +11,18 @@ class XGUI_ViewWindow; class QMdiArea; class QMdiSubWindow; class PyConsole_EnhConsole; +class QCloseEvent; /**\class XGUI_MainWindow * \ingroup GUI * \brief Main window of the application (Desktop). * It contains: Object Browser, 3d Viewer, Python console, property panel, main menu */ -class XGUI_EXPORT XGUI_MainWindow: public QMainWindow +class XGUI_EXPORT XGUI_MainWindow : public QMainWindow { Q_OBJECT -public: + public: XGUI_MainWindow(QWidget* parent = 0); virtual ~XGUI_MainWindow(); @@ -40,24 +41,65 @@ public: return myViewer; } -public slots: + public slots: void showPythonConsole(); void hidePythonConsole(); + //! Python console can be a dock widget + void dockPythonConsole(); + //! or can be a tab in the main menu. + void undockPythonConsole(); void createSubWindow(); - -private slots: + + /// Add name of current directory into title of desktop window + void setCurrentDir(const QString& theDir, bool toUpdate = true); + + /// Add asterisk to a title of the window + void setModifiedState(bool isModified, bool toUpdate = true); + + /// Returns current state of modification + bool isModifiedState() const { return myIsModified; } + + void updateTitle(); + + private slots: void cascadeWindows(); void onViewCreated(XGUI_ViewWindow* theWindow); void onDeleteView(XGUI_ViewWindow* theWindow); void activateView(); void onViewActivated(QMdiSubWindow* theSubWnd); -private: +signals: + void exitKeySequence(); + + protected: + void closeEvent(QCloseEvent* event); + void createMainMenu(); + + private: XGUI_MainMenu* myMenuBar; XGUI_Viewer* myViewer; + QString myTitle; + QString myCurrentDir; + bool myIsModified; + PyConsole_EnhConsole* myPythonConsole; }; +class XGUI_EXPORT CloseEventWatcher : public QObject +{ +Q_OBJECT + + public: + CloseEventWatcher(QObject* theParent); + +signals: + void widgetClosed(); + + protected: + bool eventFilter(QObject *obj, QEvent *); + +}; + #endif