#1018 : Snapshot - Use active view as basis for new snapshot definitions

This commit is contained in:
Magne Sjaastad 2016-12-21 10:36:37 +01:00
parent 60cb1d4ce0
commit 8d8ef3ddc1
3 changed files with 37 additions and 27 deletions

View File

@ -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();
}
}

View File

@ -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<RimCase*> cases;
proj->allCases(cases);
if (cases.size() > 0)
{
RimCase* caseExample = cases.at(0);
std::vector<RimView*> 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();
}

View File

@ -36,6 +36,8 @@ public:
RiuExportMultipleSnapshotsWidget(QWidget* parent, RimProject* project);
~RiuExportMultipleSnapshotsWidget();
void addSnapshotItemFromActiveView();
private slots:
void customMenuRequested(QPoint pos);
void addSnapshotItem();