X-Git-Url: https://vaikene.ee/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=08bfcd90e5be8b09cf0afcf2979dd988a3cbb7ef;hb=HEAD;hp=757ed28cfeaa51f452954cc7ee0c62992aa3a71d;hpb=5dd5f367dfcecab75077c3cb4ca1f01113fc1561;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h index 757ed28..08bfcd9 100644 --- a/src/plugins/SdiWindow/sdiwindow.h +++ b/src/plugins/SdiWindow/sdiwindow.h @@ -3,7 +3,7 @@ * @brief SdiWindow module's implementation * @author Enar Vaikene * - * Copyright (c) 2011 Enar Vaikene + * Copyright (c) 2011-2019 Enar Vaikene * * This file is part of the eVaf C++ cross-platform application development framework. * @@ -31,7 +31,7 @@ #include #include #include -#include +#include class QVBoxLayout; @@ -49,7 +49,7 @@ class MainWindow : public QWidget, public iSdiWindow public: - MainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0); + MainWindow(QWidget * parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); virtual ~MainWindow(); @@ -72,9 +72,6 @@ public: protected: // Methods - /// Garbage collector timer - virtual void timerEvent(QTimerEvent * e); - private: // Methods @@ -97,19 +94,16 @@ private: // Members QString mMainPanelName; /// List of GUI::Panel objects added to the manager - QList > mPanels; + QList mPanels; /// List of minimized GUI::Panel objects - QVector > mMinimizedPanels; + QVector mMinimizedPanels; /// Hash with panel names - QHash > mPanelNames; + QHash mPanelNames; /// Current main panel added to this window - QWeakPointer mMainPanel; - - /// Garbage collector timer ID - int mTimerId; + Gui::Panel * mMainPanel; private: // Methods @@ -117,6 +111,13 @@ private: // Methods /// Gets the main panel name from module attributes QString getMainPanelName(QString const & args) const; + +private slots: + + /// Panel destroyed signal. We need to remove the panel from all the + /// lists. + void panelDestroyed(QObject * obj = nullptr); + }; /** @@ -137,13 +138,13 @@ public: virtual void done(); - virtual bool isReady() const { return mWindow != 0 && mWindow->isReady(); } + virtual bool isReady() const { return mWindow != nullptr && mWindow->isReady(); } private: /// iSdiWindow interface implementation - MainWindow * mWindow; + QScopedPointer mWindow; }; } // namespace eVaf::SdiWindow::Internal