From bbf1574febb10285525be589e37cfa9ea02f466e Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 27 Jun 2016 11:07:01 +0200 Subject: [PATCH] Wired up application logic related to new RiuMainPlotWindow --- .../Application/RiaApplication.cpp | 63 ++++++++++++++++-- ApplicationCode/Application/RiaApplication.h | 9 +++ .../RicAddWellLogToPlotFeature.cpp | 16 +++-- .../RicNewWellLogCurveExtractionFeature.cpp | 10 ++- .../RicNewWellLogFileCurveFeature.cpp | 17 ++--- .../RicWellLogPlotTrackFeatureImpl.cpp | 5 +- .../ProjectDataModel/RimProject.cpp | 65 ++++++++++++------- .../ProjectDataModel/RimSummaryPlot.cpp | 25 +++++-- .../ProjectDataModel/RimWellLogPlot.cpp | 27 +++++--- .../UserInterface/RiuMainPlotWindow.cpp | 23 ++----- .../UserInterface/RiuMainPlotWindow.h | 4 +- .../UserInterface/RiuMdiSubWindow.cpp | 22 +++++-- 12 files changed, 194 insertions(+), 92 deletions(-) diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 3c5506a3d2..e81e9a3067 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -193,6 +193,8 @@ RiaApplication::RiaApplication(int& argc, char** argv) m_resViewUpdateTimer = NULL; m_runningRegressionTests = false; + + m_mainPlotWindow = NULL; } @@ -687,8 +689,12 @@ bool RiaApplication::closeProject(bool askToSaveIfDirty) mainWnd->cleanupGuiBeforeProjectClose(); - RiuMainPlotWindow* mainPlotWnd = RiuMainPlotWindow::instance(); - mainPlotWnd->cleanupGuiBeforeProjectClose(); + if (m_mainPlotWindow) + { + m_mainPlotWindow->cleanupGuiBeforeProjectClose(); + + deleteMainPlotWindow(); + } caf::EffectGenerator::clearEffectCache(); @@ -714,10 +720,9 @@ void RiaApplication::onProjectOpenedOrClosed() { mainWnd->initializeGuiNewProjectLoaded(); } - RiuMainPlotWindow* mainPlotWnd = RiuMainPlotWindow::instance(); - if (mainPlotWnd) + if (m_mainPlotWindow) { - mainPlotWnd->initializeGuiNewProjectLoaded(); + m_mainPlotWindow->initializeGuiNewProjectLoaded(); } setWindowCaptionFromAppState(); @@ -1287,6 +1292,54 @@ int RiaApplication::launchUnitTestsWithConsole() return launchUnitTests(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RiaApplication::createMainPlotWindow() +{ + CVF_ASSERT(m_mainPlotWindow == NULL); + + m_mainPlotWindow = new RiuMainPlotWindow; + + m_mainPlotWindow->setWindowTitle("Summary Plots for ResInsight"); + m_mainPlotWindow->setDefaultWindowSize(); + m_mainPlotWindow->loadWinGeoAndDockToolBarLayout(); + m_mainPlotWindow->showWindow(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RiaApplication::deleteMainPlotWindow() +{ + m_mainPlotWindow->deleteLater(); + + processEvents(); + + m_mainPlotWindow = NULL; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RiuMainPlotWindow* RiaApplication::getOrCreateMainPlotWindow() +{ + if (!m_mainPlotWindow) + { + createMainPlotWindow(); + } + + return m_mainPlotWindow; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RiuMainPlotWindow* RiaApplication::mainPlotWindow() +{ + return m_mainPlotWindow; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Application/RiaApplication.h b/ApplicationCode/Application/RiaApplication.h index b2058cf436..f1a3d7987b 100644 --- a/ApplicationCode/Application/RiaApplication.h +++ b/ApplicationCode/Application/RiaApplication.h @@ -43,6 +43,7 @@ class RimProject; class RimCommandObject; class RiaProjectModifier; class RimWellLogPlot; +class RiuMainPlotWindow; namespace caf { @@ -163,6 +164,9 @@ public: int launchUnitTests(); int launchUnitTestsWithConsole(); + RiuMainPlotWindow* getOrCreateMainPlotWindow(); + RiuMainPlotWindow* mainPlotWindow(); + private: enum ProjectLoadAction { @@ -178,6 +182,9 @@ private: QImage grabFrameBufferImage(); void clearViewsScheduledForUpdate(); + void createMainPlotWindow(); + void deleteMainPlotWindow(); + private slots: void slotWorkerProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); @@ -215,4 +222,6 @@ private: QString m_helpText; bool m_runningRegressionTests; + + RiuMainPlotWindow* m_mainPlotWindow; }; diff --git a/ApplicationCode/Commands/WellLogCommands/RicAddWellLogToPlotFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicAddWellLogToPlotFeature.cpp index 07db7cc05a..c9be134f2a 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicAddWellLogToPlotFeature.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicAddWellLogToPlotFeature.cpp @@ -22,25 +22,24 @@ #include "RicWellLogPlotCurveFeatureImpl.h" #include "RicNewWellLogPlotFeatureImpl.h" +#include "RimMainPlotCollection.h" +#include "RimProject.h" #include "RimWellLogFile.h" #include "RimWellLogFileChannel.h" -#include "RimWellLogPlot.h" -#include "RimWellLogTrack.h" #include "RimWellLogFileCurve.h" -#include "RimProject.h" -#include "RimMainPlotCollection.h" +#include "RimWellLogPlot.h" #include "RimWellLogPlotCollection.h" +#include "RimWellLogTrack.h" #include "RimWellPath.h" #include "RimWellPathCollection.h" +#include "RiuMainPlotWindow.h" #include "RigWellLogFile.h" #include "RiaApplication.h" -#include "RiuMainWindow.h" #include "RiuWellLogTrack.h" #include "cafSelectionManager.h" -#include "cafPdmUiTreeView.h" #include @@ -110,9 +109,12 @@ void RicAddWellLogToPlotFeature::onActionTriggered(bool isChecked) plot->updateDepthZoom(); plotTrack->viewer()->replot(); + // Make sure the summary plot window is created and visible + RiuMainPlotWindow* plotwindow = RiaApplication::instance()->getOrCreateMainPlotWindow(); + RiaApplication::instance()->project()->updateConnectedEditors(); - RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(selection.back()); + plotwindow->selectAsCurrentItem(selection.back()); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp index c89a914de4..704d57612a 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp @@ -29,8 +29,8 @@ #include "RimWellLogTrack.h" #include "RimWellPath.h" #include "RimWellPathCollection.h" +#include "RiuMainPlotWindow.h" -#include "RiuMainWindow.h" #include "RiaApplication.h" #include "cafSelectionManager.h" @@ -136,7 +136,13 @@ RimWellLogExtractionCurve* RicNewWellLogCurveExtractionFeature::addCurve(RimWell plotTrack->addCurve(curve); plotTrack->updateConnectedEditors(); - RiuMainWindow::instance()->selectAsCurrentItem(curve); + + // Make sure the summary plot window is created and visible + RiuMainPlotWindow* plotwindow = RiaApplication::instance()->getOrCreateMainPlotWindow(); + + RiaApplication::instance()->project()->updateConnectedEditors(); + + plotwindow->selectAsCurrentItem(curve); return curve; } diff --git a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogFileCurveFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogFileCurveFeature.cpp index b05f68a896..be6492afb2 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogFileCurveFeature.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogFileCurveFeature.cpp @@ -22,17 +22,17 @@ #include "RicWellLogPlotCurveFeatureImpl.h" #include "RicNewWellLogPlotFeatureImpl.h" -#include "RimWellLogFileCurve.h" -#include "RimWellLogTrack.h" +#include "RiaApplication.h" + +#include "RimOilField.h" +#include "RimProject.h" #include "RimWellLogFile.h" #include "RimWellLogFileChannel.h" +#include "RimWellLogFileCurve.h" +#include "RimWellLogTrack.h" #include "RimWellPath.h" #include "RimWellPathCollection.h" -#include "RimProject.h" -#include "RimOilField.h" - -#include "RiuMainWindow.h" -#include "RiaApplication.h" +#include "RiuMainPlotWindow.h" #include "cafSelectionManager.h" @@ -152,7 +152,8 @@ RimWellLogFileCurve* RicNewWellLogFileCurveFeature::addCurve(RimWellLogTrack* pl plotTrack->updateConnectedEditors(); - RiuMainWindow::instance()->selectAsCurrentItem(curve); + RiuMainPlotWindow* plotwindow = RiaApplication::instance()->getOrCreateMainPlotWindow(); + plotwindow->selectAsCurrentItem(curve); return curve; } diff --git a/ApplicationCode/Commands/WellLogCommands/RicWellLogPlotTrackFeatureImpl.cpp b/ApplicationCode/Commands/WellLogCommands/RicWellLogPlotTrackFeatureImpl.cpp index 4184bfcc00..eaadf959ca 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicWellLogPlotTrackFeatureImpl.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicWellLogPlotTrackFeatureImpl.cpp @@ -19,13 +19,12 @@ #include "RicWellLogPlotTrackFeatureImpl.h" +#include "RimWellLogCurve.h" #include "RimWellLogPlot.h" #include "RimWellLogTrack.h" -#include "RimWellLogCurve.h" -#include "RiuMainWindow.h" +#include "cvfAssert.h" -#include "cafPdmUiTreeView.h" //-------------------------------------------------------------------------------------------------- /// diff --git a/ApplicationCode/ProjectDataModel/RimProject.cpp b/ApplicationCode/ProjectDataModel/RimProject.cpp index 02797e9474..804cd30bd0 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.cpp +++ b/ApplicationCode/ProjectDataModel/RimProject.cpp @@ -735,34 +735,49 @@ void RimProject::appendScriptItems(QMenu* menu, RimScriptCollection* scriptColle //-------------------------------------------------------------------------------------------------- void RimProject::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/) { - if (viewLinkerCollection()->viewLinker()) + if (uiConfigName == "PlotWindow") { - // Use object instead of field to avoid duplicate entries in the tree view - uiTreeOrdering.add(viewLinkerCollection()); - } - - RimOilField* oilField = activeOilField(); - if (oilField) - { - if (oilField->analysisModels()) uiTreeOrdering.add(oilField->analysisModels()); - if (oilField->geoMechModels()) uiTreeOrdering.add(oilField->geoMechModels()); - if (oilField->wellPathCollection()) uiTreeOrdering.add(oilField->wellPathCollection()); - } - - if (mainPlotCollection) - { - if (mainPlotCollection->wellLogPlotCollection()) + RimOilField* oilField = activeOilField(); + if (oilField) { - uiTreeOrdering.add(mainPlotCollection->wellLogPlotCollection()); + if (oilField->summaryCaseCollection()) uiTreeOrdering.add(oilField->summaryCaseCollection()); } - if (mainPlotCollection->summaryPlotCollection()) - { - uiTreeOrdering.add(mainPlotCollection->summaryPlotCollection()); - } - } - uiTreeOrdering.add(scriptCollection()); - - uiTreeOrdering.setForgetRemainingFields(true); + if (mainPlotCollection) + { + if (mainPlotCollection->wellLogPlotCollection()) + { + uiTreeOrdering.add(mainPlotCollection->wellLogPlotCollection()); + } + if (mainPlotCollection->summaryPlotCollection()) + { + uiTreeOrdering.add(mainPlotCollection->summaryPlotCollection()); + } + } + + uiTreeOrdering.setForgetRemainingFields(true); + + return; + } + else + { + if (viewLinkerCollection()->viewLinker()) + { + // Use object instead of field to avoid duplicate entries in the tree view + uiTreeOrdering.add(viewLinkerCollection()); + } + + RimOilField* oilField = activeOilField(); + if (oilField) + { + if (oilField->analysisModels()) uiTreeOrdering.add(oilField->analysisModels()); + if (oilField->geoMechModels()) uiTreeOrdering.add(oilField->geoMechModels()); + if (oilField->wellPathCollection()) uiTreeOrdering.add(oilField->wellPathCollection()); + } + + uiTreeOrdering.add(scriptCollection()); + + uiTreeOrdering.setForgetRemainingFields(true); + } } diff --git a/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp b/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp index a579ccd83a..3e0773ca2a 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp @@ -18,6 +18,8 @@ #include "RimSummaryPlot.h" +#include "RiaApplication.h" + #include "RimSummaryCurve.h" #include "RimSummaryCurveFilter.h" #include "RimSummaryPlotCollection.h" @@ -58,7 +60,10 @@ RimSummaryPlot::RimSummaryPlot() //-------------------------------------------------------------------------------------------------- RimSummaryPlot::~RimSummaryPlot() { - RiuMainPlotWindow::instance()->removeViewer(m_qwtPlot); + if (RiaApplication::instance()->mainPlotWindow()) + { + RiaApplication::instance()->mainPlotWindow()->removeViewer(m_qwtPlot); + } deletePlotWidget(); @@ -184,7 +189,11 @@ void RimSummaryPlot::setupBeforeSave() { if (m_qwtPlot) { - this->setMdiWindowGeometry(RiuMainPlotWindow::instance()->windowGeometryForViewer(m_qwtPlot)); + if (RiaApplication::instance()->mainPlotWindow()) + { + this->setMdiWindowGeometry(RiaApplication::instance()->mainPlotWindow()->windowGeometryForViewer(m_qwtPlot)); + } + } } @@ -223,11 +232,13 @@ void RimSummaryPlot::setDescription(const QString& description) //-------------------------------------------------------------------------------------------------- void RimSummaryPlot::updateViewerWidget() { + RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->getOrCreateMainPlotWindow(); + if (m_showWindow()) { if (!m_qwtPlot) { - m_qwtPlot = new RiuSummaryQwtPlot(this, RiuMainPlotWindow::instance()); + m_qwtPlot = new RiuSummaryQwtPlot(this, mainPlotWindow); for(RimSummaryCurveFilter* curveFilter: m_curveFilters) { @@ -239,8 +250,8 @@ void RimSummaryPlot::updateViewerWidget() curve->setParentQwtPlot(m_qwtPlot); } - RiuMainPlotWindow::instance()->addViewer(m_qwtPlot, this->mdiWindowGeometry()); - RiuMainPlotWindow::instance()->setActiveViewer(m_qwtPlot); + mainPlotWindow->addViewer(m_qwtPlot, this->mdiWindowGeometry()); + mainPlotWindow->setActiveViewer(m_qwtPlot); } //updateViewerWidgetWindowTitle(); @@ -249,9 +260,9 @@ void RimSummaryPlot::updateViewerWidget() { if (m_qwtPlot) { - this->setMdiWindowGeometry(RiuMainPlotWindow::instance()->windowGeometryForViewer(m_qwtPlot)); + this->setMdiWindowGeometry(mainPlotWindow->windowGeometryForViewer(m_qwtPlot)); - RiuMainPlotWindow::instance()->removeViewer(m_qwtPlot); + mainPlotWindow->removeViewer(m_qwtPlot); detachAllCurves(); deletePlotWidget(); diff --git a/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp b/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp index 9232f5d72d..e9a713ed1b 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp @@ -19,11 +19,13 @@ #include "RimWellLogPlot.h" +#include "RiaApplication.h" + #include "RimWellLogTrack.h" #include "RiuWellLogPlot.h" #include "RiuWellLogTrack.h" -#include "RiuMainWindow.h" +#include "RiuMainPlotWindow.h" #include "cafPdmUiTreeView.h" @@ -85,7 +87,10 @@ RimWellLogPlot::RimWellLogPlot() //-------------------------------------------------------------------------------------------------- RimWellLogPlot::~RimWellLogPlot() { - RiuMainWindow::instance()->removeViewer(m_viewer); + if (RiaApplication::instance()->mainPlotWindow()) + { + RiaApplication::instance()->mainPlotWindow()->removeViewer(m_viewer); + } detachAllCurves(); m_tracks.deleteAllChildObjects(); @@ -98,16 +103,18 @@ RimWellLogPlot::~RimWellLogPlot() //-------------------------------------------------------------------------------------------------- void RimWellLogPlot::updateViewerWidget() { + RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->getOrCreateMainPlotWindow(); + if (m_showWindow()) { if (!m_viewer) { - m_viewer = new RiuWellLogPlot(this, RiuMainWindow::instance()); + m_viewer = new RiuWellLogPlot(this, mainPlotWindow); recreateTrackPlots(); - RiuMainWindow::instance()->addViewer(m_viewer, this->mdiWindowGeometry()); - RiuMainWindow::instance()->setActiveViewer(m_viewer); + mainPlotWindow->addViewer(m_viewer, this->mdiWindowGeometry()); + mainPlotWindow->setActiveViewer(m_viewer); } updateViewerWidgetWindowTitle(); @@ -116,14 +123,13 @@ void RimWellLogPlot::updateViewerWidget() { if (m_viewer) { - this->setMdiWindowGeometry( RiuMainWindow::instance()->windowGeometryForViewer(m_viewer)); + this->setMdiWindowGeometry(mainPlotWindow->windowGeometryForViewer(m_viewer)); - RiuMainWindow::instance()->removeViewer(m_viewer); + mainPlotWindow->removeViewer(m_viewer); detachAllCurves(); delete m_viewer; m_viewer = NULL; - } } } @@ -365,7 +371,10 @@ void RimWellLogPlot::setupBeforeSave() { if (m_viewer) { - this->setMdiWindowGeometry( RiuMainWindow::instance()->windowGeometryForViewer(m_viewer)); + if (RiaApplication::instance()->mainPlotWindow()) + { + this->setMdiWindowGeometry(RiaApplication::instance()->mainPlotWindow()->windowGeometryForViewer(m_viewer)); + } } } diff --git a/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp b/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp index 4ced4861aa..2c820a2cca 100644 --- a/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp +++ b/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp @@ -143,23 +143,14 @@ RiuMainPlotWindow::RiuMainPlotWindow() // When enableUndoCommandSystem is set false, all commands are executed and deleted immediately //caf::CmdExecCommandManager::instance()->enableUndoCommandSystem(true); - { - setWindowTitle("Summary Plots for ResInsight"); - setDefaultWindowSize(); - loadWinGeoAndDockToolBarLayout(); - showWindow(); - } } - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RiuMainPlotWindow* RiuMainPlotWindow::instance() +RiuMainPlotWindow::~RiuMainPlotWindow() { - static RiuMainPlotWindow staticInstance; - - return &staticInstance; + delete m_dragDropInterface; } //-------------------------------------------------------------------------------------------------- @@ -211,14 +202,6 @@ void RiuMainPlotWindow::cleanupGuiBeforeProjectClose() //-------------------------------------------------------------------------------------------------- void RiuMainPlotWindow::closeEvent(QCloseEvent* event) { - if (!RiaApplication::instance()->closeProject(true)) - { - event->ignore(); - return; - } - - delete m_dragDropInterface; - saveWinGeoAndDockToolBarLayout(); event->accept(); @@ -578,6 +561,8 @@ void RiuMainPlotWindow::createDockPanels() connect(m_projectTreeView, SIGNAL(selectionChanged()), this, SLOT(selectedObjectsChanged())); m_projectTreeView->treeView()->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_projectTreeView->treeView(), SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(customMenuRequested(const QPoint&))); + + m_projectTreeView->setUiConfigurationName("PlotWindow"); } /* diff --git a/ApplicationCode/UserInterface/RiuMainPlotWindow.h b/ApplicationCode/UserInterface/RiuMainPlotWindow.h index 937b493d26..d50ce37348 100644 --- a/ApplicationCode/UserInterface/RiuMainPlotWindow.h +++ b/ApplicationCode/UserInterface/RiuMainPlotWindow.h @@ -72,7 +72,7 @@ class RiuMainPlotWindow : public RiuMainWindowBase public: RiuMainPlotWindow(); - static RiuMainPlotWindow* instance(); + ~RiuMainPlotWindow(); virtual QString mainWindowName() { return "RiuMainPlotWindow"; } @@ -289,8 +289,6 @@ private: caf::PdmUiDragDropInterface* m_dragDropInterface; - QUndoView* m_undoView; - caf::PdmObject* m_pdmRoot; caf::PdmUiPropertyView* m_pdmUiPropertyView; diff --git a/ApplicationCode/UserInterface/RiuMdiSubWindow.cpp b/ApplicationCode/UserInterface/RiuMdiSubWindow.cpp index 3035526767..07ee5e7cf3 100644 --- a/ApplicationCode/UserInterface/RiuMdiSubWindow.cpp +++ b/ApplicationCode/UserInterface/RiuMdiSubWindow.cpp @@ -18,11 +18,14 @@ #include "RiuMdiSubWindow.h" +#include "RiaApplication.h" + #include "RimSummaryPlot.h" #include "RimView.h" #include "RimWellLogPlot.h" #include "RiuMainPlotWindow.h" +#include "RiuMainWindow.h" #include "RiuSummaryQwtPlot.h" #include "RiuViewer.h" #include "RiuWellLogPlot.h" @@ -40,7 +43,12 @@ RiuMdiSubWindow::RiuMdiSubWindow(QWidget* parent /*= 0*/, Qt::WindowFlags flags //-------------------------------------------------------------------------------------------------- RiuMdiSubWindow::~RiuMdiSubWindow() { - RiuMainPlotWindow::instance()->slotRefreshViewActions(); + RiuMainWindow::instance()->slotRefreshViewActions(); + + if (RiaApplication::instance()->mainPlotWindow()) + { + RiaApplication::instance()->mainPlotWindow()->slotRefreshViewActions(); + } } //-------------------------------------------------------------------------------------------------- @@ -54,18 +62,24 @@ void RiuMdiSubWindow::closeEvent(QCloseEvent* event) RiuSummaryQwtPlot* summaryPlot = dynamic_cast(mainWidget); if (wellLogPlot) { - wellLogPlot->ownerPlotDefinition()->setMdiWindowGeometry(RiuMainPlotWindow::instance()->windowGeometryForWidget(this)); + RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow(); + CVF_ASSERT(mainPlotWindow); + + wellLogPlot->ownerPlotDefinition()->setMdiWindowGeometry(mainPlotWindow->windowGeometryForWidget(this)); } else if (summaryPlot) { - summaryPlot->ownerPlotDefinition()->setMdiWindowGeometry(RiuMainPlotWindow::instance()->windowGeometryForWidget(this)); + RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow(); + CVF_ASSERT(mainPlotWindow); + + summaryPlot->ownerPlotDefinition()->setMdiWindowGeometry(mainPlotWindow->windowGeometryForWidget(this)); } else { RiuViewer* viewer = mainWidget->findChild(); if (viewer) { - viewer->ownerReservoirView()->setMdiWindowGeometry(RiuMainPlotWindow::instance()->windowGeometryForWidget(this)); + viewer->ownerReservoirView()->setMdiWindowGeometry(RiuMainWindow::instance()->windowGeometryForWidget(this)); } }