#2856 Menus. Import case directly into group

This commit is contained in:
Bjørn Erik Jensen
2018-05-07 12:00:34 +02:00
parent f71bdda4fb
commit fb518117c0
4 changed files with 51 additions and 4 deletions

View File

@@ -76,6 +76,14 @@ void RicImportEnsembleFeature::onActionTriggered(bool isChecked)
RicImportSummaryCasesFeature::addSummaryCases(cases);
RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, ensembleName);
RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow && !cases.empty())
{
mainPlotWindow->selectAsCurrentItem(cases.back());
mainPlotWindow->updateSummaryPlotToolBar();
}
std::vector<RimCase*> allCases;
app->project()->allCases(allCases);

View File

@@ -76,10 +76,19 @@ void RicImportSummaryCaseFeature::onActionTriggered(bool isChecked)
std::vector<RimSummaryCase*> newCases;
if (RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(fileNames, &newCases))
{
RicImportSummaryCasesFeature::addCasesToGroupIfRelevant(newCases);
for (const RimSummaryCase* newCase : newCases)
{
RiaApplication::instance()->addToRecentFiles(newCase->summaryHeaderFilename());
}
RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow && !newCases.empty())
{
mainPlotWindow->selectAsCurrentItem(newCases.back());
mainPlotWindow->updateSummaryPlotToolBar();
}
}
std::vector<RimCase*> cases;

View File

@@ -31,6 +31,7 @@
#include "RimOilField.h"
#include "RimProject.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCaseMainCollection.h"
#include "RimSummaryPlotCollection.h"
@@ -40,6 +41,7 @@
#include "SummaryPlotCommands/RicNewSummaryPlotFeature.h"
#include "cafProgressInfo.h"
#include "cafSelectionManagerTools.h"
#include <QAction>
#include <QFileDialog>
@@ -75,8 +77,18 @@ void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
addSummaryCases(cases);
addCasesToGroupIfRelevant(cases);
for (const auto& rimCase : cases) RiaApplication::instance()->addToRecentFiles(rimCase->summaryHeaderFilename());
RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow && !cases.empty())
{
mainPlotWindow->selectAsCurrentItem(cases.back());
mainPlotWindow->updateSummaryPlotToolBar();
}
std::vector<RimCase*> allCases;
app->project()->allCases(allCases);
@@ -154,13 +166,30 @@ void RicImportSummaryCasesFeature::addSummaryCases(const std::vector<RimSummaryC
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
sumCaseColl->addCases(cases);
sumCaseColl->updateAllRequiredEditors();
}
RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow && !cases.empty())
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicImportSummaryCasesFeature::addCasesToGroupIfRelevant(const std::vector<RimSummaryCase*> cases)
{
std::vector<RimSummaryCaseCollection*> selectedColl = caf::selectedObjectsByTypeStrict<RimSummaryCaseCollection*>();
if (selectedColl.size() == 1)
{
mainPlotWindow->selectAsCurrentItem(cases.back());
RimSummaryCaseCollection* coll = selectedColl.front();
RimSummaryCaseMainCollection* mainColl;
coll->firstAncestorOrThisOfType(mainColl);
mainPlotWindow->updateSummaryPlotToolBar();
if (mainColl)
{
for (const auto sumCase : cases)
{
mainColl->removeCase(sumCase);
selectedColl.front()->addCase(sumCase);
}
mainColl->updateConnectedEditors();
}
}
}

View File

@@ -41,6 +41,7 @@ public:
static bool createAndAddSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases = nullptr);
static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases);
static void addSummaryCases(const std::vector<RimSummaryCase*> cases);
static void addCasesToGroupIfRelevant(const std::vector<RimSummaryCase*> cases);
static QStringList runRecursiveSummaryCaseFileSearchDialog(const QString& dialogTitle);