X-Git-Url: https://vaikene.ee/gitweb/pswgen09.html?a=blobdiff_plain;ds=sidebyside;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=f88425554319b872fc52fdb9e38ccae724f21497;hb=54f282ee6797c05e60993632218875092362bdf7;hp=b2c3bc6c2fbdd69a1120d997091dd1bd586e489c;hpb=1cac301bb12de664bd7e7ec59b78e7dfaf04f6d1;p=evaf
diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h
index b2c3bc6..f884255 100644
--- a/src/plugins/SdiWindow/sdiwindow.h
+++ b/src/plugins/SdiWindow/sdiwindow.h
@@ -23,11 +23,13 @@
#include "isdiwindow.h"
#include
+#include
#include
#include
#include
#include
+#include
class QVBoxLayout;
@@ -36,11 +38,12 @@ namespace SdiWindow {
namespace Internal {
/**
- * Main window widget
+ * Main window widget implementing the iSdiWindow interface
*/
-class MainWindow : public QWidget
+class MainWindow : public QWidget, public iSdiWindow
{
Q_OBJECT
+ Q_INTERFACES(eVaf::SdiWindow::iSdiWindow)
public:
@@ -48,13 +51,13 @@ public:
virtual ~MainWindow();
- bool init();
+ virtual bool init(QString const & args);
- void done();
+ virtual void done();
- void addWidget(QWidget * widget);
+ virtual bool isReady() { return mReady; }
- void addLayout(QLayout * layout);
+ virtual void addWindow(Gui::Window * window);
private: // Methods
@@ -66,47 +69,17 @@ private: // Methods
void restoreSettings();
-private: // Members
-
- /// The layout of the window
- QVBoxLayout * mLayout;
-
- /// Widgets and layouts added to the main window
- QList mItemsAdded;
-
-};
-
-/**
- * iSdiWindow interface implementation
- */
-class SdiWindowImpl : public iSdiWindow
-{
- Q_OBJECT
-
-public:
-
- SdiWindowImpl();
-
- virtual ~SdiWindowImpl();
-
- bool init(const QString & args);
-
- void done();
-
- bool isReady() const { return mReady; }
-
- virtual void addWidget(QWidget * widget) { wWindow->addWidget(widget); }
-
- virtual void addLayout(QLayout * layout) { wWindow->addLayout(layout); }
-
-
private: // Members
/// Ready flag
bool mReady;
- /// The main window widget
- MainWindow * wWindow;
+ /// The layout of the main window
+ QVBoxLayout * mLayout;
+
+ /// eVaf GUI window implementing the main window
+ QWeakPointer mWindow;
+
};
/**
@@ -115,6 +88,7 @@ private: // Members
class SdiWindowPlugin : public Plugins::iPlugin
{
Q_OBJECT
+ Q_INTERFACES(eVaf::Plugins::iPlugin)
public:
@@ -132,7 +106,7 @@ public:
private:
/// iSdiWindow interface implementation
- SdiWindowImpl * mWindow;
+ MainWindow * mWindow;
};
} // namespace eVaf::SdiWindow::Internal