X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;ds=sidebyside;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=08bfcd90e5be8b09cf0afcf2979dd988a3cbb7ef;hb=refs%2Fheads%2Fmaster;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