X-Git-Url: https://vaikene.ee/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fplugins%2FSdiWindow%2Fsdiwindow.cpp;h=aba9ce2041502ac51fed5f2a5aa04d9cc4be01bf;hb=0957525838e501a4609a15b8d7a765da43362025;hp=4be6efe4f333b9b075db4e6dbdd6e2f52a38ccf5;hpb=1cac301bb12de664bd7e7ec59b78e7dfaf04f6d1;p=evaf diff --git a/src/plugins/SdiWindow/sdiwindow.cpp b/src/plugins/SdiWindow/sdiwindow.cpp index 4be6efe..aba9ce2 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,11 +102,16 @@ bool MainWindow::init() void MainWindow::done() { + mReady = false; + close(); // Delete all the items added to the main window - while (mItemsAdded.count() > 0) - delete mItemsAdded.takeAt(0); + while (mItemsAdded.count() > 0) { + QWeakPointer item = mItemsAdded.takeAt(0); + if (!item.isNull()) + delete item.data(); + } EVAF_INFO("%s finalized", qPrintable(objectName())); } @@ -175,56 +191,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() @@ -232,7 +198,7 @@ SdiWindowPlugin::SdiWindowPlugin() { setObjectName(VER_MODULE_NAME_STR); - mWindow = new SdiWindowImpl; + mWindow = new MainWindow; EVAF_INFO("%s created", qPrintable(objectName())); }