X-Git-Url: https://vaikene.ee/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.cpp;h=aa264de0362658deacd5b22e587cd5f6d56abee5;hb=54f282ee6797c05e60993632218875092362bdf7;hp=b63ab978606f0b27329b7302f1f33673992eaf21;hpb=06f9c5336ba8a2200b68f636520707693eb5ada7;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.cpp b/src/plugins/SdiWindow/sdiwindow.cpp index b63ab97..aa264de 100644 --- a/src/plugins/SdiWindow/sdiwindow.cpp +++ b/src/plugins/SdiWindow/sdiwindow.cpp @@ -22,6 +22,7 @@ #include #include +#include #include @@ -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())); }