X-Git-Url: https://vaikene.ee/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.cpp;h=aa264de0362658deacd5b22e587cd5f6d56abee5;hb=54f282ee6797c05e60993632218875092362bdf7;hp=02de43a320a80ecf231a3b51d7305e93905764b5;hpb=8e0779e2e5a9f947f79c28e2ff121f6ffdd78b3f;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.cpp b/src/plugins/SdiWindow/sdiwindow.cpp index 02de43a..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__)); @@ -67,23 +68,33 @@ MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags) 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; @@ -91,28 +102,24 @@ bool MainWindow::init() void MainWindow::done() { + mReady = false; + close(); - // Delete all the items added to the main window - while (mItemsAdded.count() > 0) { - QWeakPointer item = mItemsAdded.takeAt(0); - if (!item.isNull()) - delete item.data(); - } + // Delete the window + if (mWindow) + delete mWindow.data(); EVAF_INFO("%s finalized", qPrintable(objectName())); } -void MainWindow::addWidget(QWidget * widget) +void MainWindow::addWindow(Gui::Window * window) { - mLayout->addWidget(widget); - mItemsAdded.append(widget); -} - -void MainWindow::addLayout(QLayout * layout) -{ - mLayout->addLayout(layout); - mItemsAdded.append(layout); + // Delete the existing window + if (mWindow) + delete mWindow.data(); + mLayout->addWidget(window); + mWindow = window; } void MainWindow::saveSettings() @@ -178,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() @@ -235,7 +192,7 @@ SdiWindowPlugin::SdiWindowPlugin() { setObjectName(VER_MODULE_NAME_STR); - mWindow = new SdiWindowImpl; + mWindow = new MainWindow; EVAF_INFO("%s created", qPrintable(objectName())); }