]> vaikene.ee Git - evaf/blobdiff - src/plugins/SdiWindow/sdiwindow.cpp
Changed the SdiWindow::iSdiWindow interface.
[evaf] / src / plugins / SdiWindow / sdiwindow.cpp
index a804dfc14cc64dc70a8739612dc8decf3a0636a7..aa264de0362658deacd5b22e587cd5f6d56abee5 100644 (file)
@@ -54,6 +54,7 @@ using namespace eVaf::SdiWindow::Internal;
 
 MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags)
     : QWidget(parent, flags)
+    , mReady(false)
 {
     setObjectName(QString("%1-%2").arg(VER_MODULE_NAME_STR).arg(__FUNCTION__));
 
@@ -63,23 +64,37 @@ MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags)
     // Apply the size specified in a) properties; or b) on the command line
     setWindowSize();
 
+    // Create the default layout
+    mLayout = new QVBoxLayout;
+    setLayout(mLayout);
+
+    mSdiWindow = this;
+
     EVAF_INFO("%s created", qPrintable(objectName()));
 }
 
 MainWindow::~MainWindow()
 {
+    mSdiWindow = 0;
+
     // Save geometry
     saveSettings();
 
     EVAF_INFO("%s destroyed", qPrintable(objectName()));
 }
 
-bool MainWindow::init()
+bool MainWindow::init(QString const & args)
 {
+    Q_UNUSED(args);
+
+    Common::iRegistry::instance()->registerInterface("iSdiWindow", this);
+
     setWindowTitle(Common::iApp::instance()->name());
 
     show();
 
+    mReady = true;
+
     EVAF_INFO("%s initialized", qPrintable(objectName()));
 
     return true;
@@ -87,11 +102,26 @@ bool MainWindow::init()
 
 void MainWindow::done()
 {
+    mReady = false;
+
     close();
 
+    // Delete the window
+    if (mWindow)
+        delete mWindow.data();
+
     EVAF_INFO("%s finalized", qPrintable(objectName()));
 }
 
+void MainWindow::addWindow(Gui::Window * window)
+{
+    // Delete the existing window
+    if (mWindow)
+        delete mWindow.data();
+    mLayout->addWidget(window);
+    mWindow = window;
+}
+
 void MainWindow::saveSettings()
 {
     static int ver[4] = {VER_FILE_VERSION};
@@ -155,56 +185,6 @@ void MainWindow::setWindowSize()
 }
 
 
-//-------------------------------------------------------------------
-
-SdiWindowImpl::SdiWindowImpl()
-    : iSdiWindow()
-    , mReady(false)
-{
-    setObjectName(QString("%1.iSdiWindow").arg(VER_MODULE_NAME_STR));
-
-    mSdiWindow = this;
-
-    wWindow = new MainWindow;
-
-    Common::iRegistry::instance()->registerInterface("iSdiWindow", this);
-
-    EVAF_INFO("%s created", qPrintable(objectName()));
-}
-
-SdiWindowImpl::~SdiWindowImpl()
-{
-    delete wWindow;
-
-    mSdiWindow = 0;
-
-    EVAF_INFO("%s destroyed", qPrintable(objectName()));
-}
-
-bool SdiWindowImpl::init(const QString & args)
-{
-    Q_UNUSED(args);
-
-    if (!wWindow->init())
-        return false;
-
-    mReady = true;
-
-    EVAF_INFO("%s initialized", qPrintable(objectName()));
-
-    return true;
-}
-
-void SdiWindowImpl::done()
-{
-    mReady = false;
-
-    wWindow->done();
-
-    EVAF_INFO("%s finalized", qPrintable(objectName()));
-}
-
-
 //-------------------------------------------------------------------
 
 SdiWindowPlugin::SdiWindowPlugin()
@@ -212,7 +192,7 @@ SdiWindowPlugin::SdiWindowPlugin()
 {
     setObjectName(VER_MODULE_NAME_STR);
 
-    mWindow = new SdiWindowImpl;
+    mWindow = new MainWindow;
 
     EVAF_INFO("%s created", qPrintable(objectName()));
 }