#5945 Make the new default ensemble curve set feature take the preferences into account

This commit is contained in:
Gaute Lindkvist
2020-05-20 09:16:49 +02:00
committed by Magne Sjaastad
parent ad5a1fec95
commit c238a0ac30
2 changed files with 43 additions and 20 deletions

View File

@@ -20,6 +20,7 @@
#include "RiaColorTables.h" #include "RiaColorTables.h"
#include "RiaGuiApplication.h" #include "RiaGuiApplication.h"
#include "RiaPreferences.h"
#include "RiaSummaryTools.h" #include "RiaSummaryTools.h"
#include "RimEnsembleCurveFilterCollection.h" #include "RimEnsembleCurveFilterCollection.h"
@@ -49,30 +50,45 @@ CAF_CMD_SOURCE_INIT( RicNewSummaryEnsembleCurveSetFeature, "RicNewSummaryEnsembl
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimEnsembleCurveSet* RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSet( RimSummaryPlot* plot, std::vector<RimEnsembleCurveSet*> RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSets( RimSummaryPlot* plot,
RimSummaryCaseCollection* ensemble ) RimSummaryCaseCollection* ensemble )
{ {
CVF_ASSERT( plot && ensemble ); CVF_ASSERT( plot && ensemble );
RimProject* project = RimProject::current(); RimProject* project = RimProject::current();
CVF_ASSERT( project ); CVF_ASSERT( project );
RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet(); QString curvesTextFilter = RiaApplication::instance()->preferences()->defaultSummaryCurvesTextFilter;
QStringList curveFilters = curvesTextFilter.split( ";", QString::SkipEmptyParts );
// Use same counting as RicNewSummaryCurveFeature::onActionTriggered std::set<RifEclipseSummaryAddress> addrs = ensemble->ensembleSummaryAddresses();
auto colorIndex = plot->singleColorCurveCount();
curveSet->setColor( RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f( colorIndex ) );
curveSet->legendConfig()->setColorRange(
RimEnsembleCurveSetColorManager::cycledEnsembleColorRange( static_cast<int>( colorIndex ) ) );
curveSet->setSummaryCaseCollection( ensemble ); std::vector<RimEnsembleCurveSet*> curveSets;
curveSet->setSummaryAddress( RifEclipseSummaryAddress::fieldAddress( "FOPT" ) ); for ( const auto& addr : addrs )
{
for (auto filter : curveFilters)
{
if ( addr.isUiTextMatchingFilterText( filter ) )
{
RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet();
curveSet->filterCollection()->addFilter(); // Use same counting as RicNewSummaryCurveFeature::onActionTriggered
auto colorIndex = plot->singleColorCurveCount();
curveSet->setColor( RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f( colorIndex ) );
curveSet->legendConfig()->setColorRange(
RimEnsembleCurveSetColorManager::cycledEnsembleColorRange( static_cast<int>( colorIndex ) ) );
plot->ensembleCurveSetCollection()->addCurveSet( curveSet ); curveSet->setSummaryCaseCollection( ensemble );
curveSet->setSummaryAddress( addr );
curveSet->filterCollection()->addFilter();
return curveSet; plot->ensembleCurveSetCollection()->addCurveSet( curveSet );
curveSets.push_back( curveSet );
}
}
}
return curveSets;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -84,14 +100,16 @@ RimSummaryPlot*
RiaGuiApplication* app = RiaGuiApplication::instance(); RiaGuiApplication* app = RiaGuiApplication::instance();
RimProject* proj = app->project(); RimProject* proj = app->project();
if ( RiaApplication::instance()->preferences()->defaultSummaryCurvesTextFilter().isEmpty() ) return nullptr;
RimSummaryPlotCollection* summaryPlotCollection = proj->mainPlotCollection->summaryPlotCollection(); RimSummaryPlotCollection* summaryPlotCollection = proj->mainPlotCollection->summaryPlotCollection();
RimSummaryPlot* plot = summaryPlotCollection->createSummaryPlotWithAutoTitle(); RimSummaryPlot* plot = summaryPlotCollection->createSummaryPlotWithAutoTitle();
RimEnsembleCurveSet* firstCurveSetCreated = nullptr; RimEnsembleCurveSet* firstCurveSetCreated = nullptr;
for ( RimSummaryCaseCollection* ensemble : ensembles ) for ( RimSummaryCaseCollection* ensemble : ensembles )
{ {
RimEnsembleCurveSet* curveSet = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSet( plot, ensemble ); std::vector<RimEnsembleCurveSet*> curveSets = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSets( plot, ensemble );
if ( !firstCurveSetCreated ) firstCurveSetCreated = curveSet; if ( !firstCurveSetCreated && !curveSets.empty() ) firstCurveSetCreated = curveSets.front();
} }
plot->loadDataAndUpdate(); plot->loadDataAndUpdate();
@@ -138,15 +156,20 @@ void RicNewSummaryEnsembleCurveSetFeature::onActionTriggered( bool isChecked )
CVF_ASSERT( !project->summaryGroups().empty() ); CVF_ASSERT( !project->summaryGroups().empty() );
auto ensemble = project->summaryGroups().back(); auto ensemble = project->summaryGroups().back();
auto curveSet = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSet( plot, ensemble ); RimEnsembleCurveSet* firstCurveSet = nullptr;
if (!RiaApplication::instance()->preferences()->defaultSummaryCurvesTextFilter().isEmpty())
{
auto curveSets = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSets(plot, ensemble);
if ( !curveSets.empty() ) firstCurveSet = curveSets.front();
}
plot->loadDataAndUpdate(); plot->loadDataAndUpdate();
plot->updateConnectedEditors(); plot->updateConnectedEditors();
RiaGuiApplication* app = RiaGuiApplication::instance(); RiaGuiApplication* app = RiaGuiApplication::instance();
RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow(); RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if ( mainPlotWindow ) if ( mainPlotWindow && firstCurveSet)
{ {
mainPlotWindow->selectAsCurrentItem( curveSet ); mainPlotWindow->selectAsCurrentItem(firstCurveSet);
mainPlotWindow->updateSummaryPlotToolBar(); mainPlotWindow->updateSummaryPlotToolBar();
} }
} }

View File

@@ -43,7 +43,7 @@ protected:
void setupActionLook( QAction* actionToSetup ) override; void setupActionLook( QAction* actionToSetup ) override;
private: private:
static RimEnsembleCurveSet* addDefaultCurveSet( RimSummaryPlot* plot, RimSummaryCaseCollection* ensemble ); static std::vector<RimEnsembleCurveSet*> addDefaultCurveSets( RimSummaryPlot* plot, RimSummaryCaseCollection* ensemble );
private: private:
RimSummaryPlot* selectedSummaryPlot() const; RimSummaryPlot* selectedSummaryPlot() const;