X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.h;h=f88425554319b872fc52fdb9e38ccae724f21497;hb=54f282ee6797c05e60993632218875092362bdf7;hp=31b311d60454d8a4c4d04efa640f5fb88bf7b4b4;hpb=f443e47f50a5d12f592aaae6a4e553e4a125ee1c;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.h b/src/plugins/SdiWindow/sdiwindow.h index 31b311d..f884255 100644 --- a/src/plugins/SdiWindow/sdiwindow.h +++ b/src/plugins/SdiWindow/sdiwindow.h @@ -23,12 +23,13 @@ #include "isdiwindow.h" #include +#include #include #include #include #include -#include +#include class QVBoxLayout; @@ -37,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: @@ -49,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 @@ -67,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; + }; /** @@ -116,6 +88,7 @@ private: // Members class SdiWindowPlugin : public Plugins::iPlugin { Q_OBJECT + Q_INTERFACES(eVaf::Plugins::iPlugin) public: @@ -133,7 +106,7 @@ public: private: /// iSdiWindow interface implementation - SdiWindowImpl * mWindow; + MainWindow * mWindow; }; } // namespace eVaf::SdiWindow::Internal