]> vaikene.ee Git - evaf/blobdiff - src/plugins/SdiWindow/sdiwindow.cpp
Changed the SdiWindow::iSdiWindow interface.
[evaf] / src / plugins / SdiWindow / sdiwindow.cpp
index b63ab978606f0b27329b7302f1f33673992eaf21..aa264de0362658deacd5b22e587cd5f6d56abee5 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <Common/iLogger>
 #include <Common/iRegistry>
+#include <Common/iApp>
 
 #include <QtGui>
 
@@ -53,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__));
 
@@ -62,21 +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;
@@ -84,15 +102,30 @@ 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};
-    QSettings settings(VER_COMPANY_NAME_STR, VER_PRODUCT_NAME_STR);
+    QSettings settings(VER_COMPANY_NAME_STR, Common::iApp::instance()->name());
     settings.setValue(QString("%1/version/major").arg(objectName()), ver[0]);
     settings.setValue(QString("%1/version/minor").arg(objectName()), ver[1]);
     settings.setValue(QString("%1/geometry").arg(objectName()), saveGeometry());
@@ -101,7 +134,7 @@ void MainWindow::saveSettings()
 void MainWindow::restoreSettings()
 {
     static int ver[4] = {VER_FILE_VERSION};
-    QSettings settings(VER_COMPANY_NAME_STR, VER_PRODUCT_NAME_STR);
+    QSettings settings(VER_COMPANY_NAME_STR, Common::iApp::instance()->name());
 
     // Ignore saved settings if the version number is not the same
     // More intelligent checks can be implemented to allow upgrading from previous versions
@@ -152,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()
@@ -209,7 +192,7 @@ SdiWindowPlugin::SdiWindowPlugin()
 {
     setObjectName(VER_MODULE_NAME_STR);
 
-    mWindow = new SdiWindowImpl;
+    mWindow = new MainWindow;
 
     EVAF_INFO("%s created", qPrintable(objectName()));
 }