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