From 8d8ef3ddc175d279ead9619cd7781b140262640f Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 21 Dec 2016 10:36:37 +0100 Subject: [PATCH] #1018 : Snapshot - Use active view as basis for new snapshot definitions --- .../RicExportMultipleSnapshotsFeature.cpp | 6 ++ .../RiuExportMultipleSnapshotsWidget.cpp | 56 ++++++++++--------- .../RiuExportMultipleSnapshotsWidget.h | 2 + 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/ApplicationCode/Commands/RicExportMultipleSnapshotsFeature.cpp b/ApplicationCode/Commands/RicExportMultipleSnapshotsFeature.cpp index 58ceba0d67..864cb0a528 100644 --- a/ApplicationCode/Commands/RicExportMultipleSnapshotsFeature.cpp +++ b/ApplicationCode/Commands/RicExportMultipleSnapshotsFeature.cpp @@ -71,6 +71,12 @@ void RicExportMultipleSnapshotsFeature::onActionTriggered(bool isChecked) caf::CmdExecCommandSystemActivator activator; RiuExportMultipleSnapshotsWidget dlg(nullptr, proj); + + if (proj->multiSnapshotDefinitions.size() == 0) + { + dlg.addSnapshotItemFromActiveView(); + } + dlg.exec(); } } diff --git a/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.cpp b/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.cpp index e9b4740c3e..e93f898a23 100644 --- a/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.cpp +++ b/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.cpp @@ -124,6 +124,26 @@ RiuExportMultipleSnapshotsWidget::~RiuExportMultipleSnapshotsWidget() caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(nullptr); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RiuExportMultipleSnapshotsWidget::addSnapshotItemFromActiveView() +{ + if (!m_rimProject) return; + + RimView* activeView = RiaApplication::instance()->activeReservoirView(); + if (activeView) + { + RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition(); + multiSnapshot->viewObject = activeView; + multiSnapshot->timeStepStart = activeView->currentTimeStep(); + multiSnapshot->timeStepEnd = activeView->currentTimeStep(); + + m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot); + m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors(); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -194,40 +214,22 @@ void RiuExportMultipleSnapshotsWidget::addSnapshotItem() { if (!m_rimProject) return; - RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition(); - if (m_rimProject->multiSnapshotDefinitions.size() > 0) + if (m_rimProject->multiSnapshotDefinitions.size() == 0) + { + addSnapshotItemFromActiveView(); + } + else { //Getting default value from last entered line: RimMultiSnapshotDefinition* other = m_rimProject->multiSnapshotDefinitions[m_rimProject->multiSnapshotDefinitions.size() - 1]; + RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition(); multiSnapshot->viewObject = other->viewObject(); multiSnapshot->timeStepStart = other->timeStepStart(); multiSnapshot->timeStepEnd = other->timeStepEnd(); + + m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot); + m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors(); } - else - { - RimProject* proj = RiaApplication::instance()->project(); - std::vector cases; - proj->allCases(cases); - - if (cases.size() > 0) - { - RimCase* caseExample = cases.at(0); - - std::vector viewExamples; - viewExamples = caseExample->views(); - - if (viewExamples.size() > 0) - { - RimView* viewExample = viewExamples.at(0); - multiSnapshot->viewObject = viewExample; - multiSnapshot->timeStepStart = viewExample->currentTimeStep(); - multiSnapshot->timeStepEnd = viewExample->currentTimeStep(); - } - } - } - - m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot); - m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors(); } diff --git a/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.h b/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.h index 570cd4423c..1c1b6de6e5 100644 --- a/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.h +++ b/ApplicationCode/UserInterface/RiuExportMultipleSnapshotsWidget.h @@ -36,6 +36,8 @@ public: RiuExportMultipleSnapshotsWidget(QWidget* parent, RimProject* project); ~RiuExportMultipleSnapshotsWidget(); + void addSnapshotItemFromActiveView(); + private slots: void customMenuRequested(QPoint pos); void addSnapshotItem();