Files
ResInsight/ApplicationLibCode/Application/RiaPreferencesSummary.cpp
T
Magne Sjaastad be7a01d0cf #13147 Simplifies summary import options
Removes ensemble summary import mode as separate cases import is not supported.

Simplifies the UI by removing the ensemble import option, and updates the logic to handle summary import mode correctly by only supporting skip or unified imports. If separated cases is required for a single summary case, this can be activated by using the import dialog.

Adds logic to initialize after read to ensure that if SummaryImportMode is SEPARATE_CASES, it changes to NOT_IMPORT.
2025-11-10 13:07:21 +01:00

685 lines
30 KiB
C++

/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2021 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RiaPreferencesSummary.h"
#include "Summary/RiaSummaryPlotTemplateTools.h"
#include "RiaApplication.h"
#include "RiaColorTables.h"
#include "RiaPreferences.h"
#include "PlotTemplates/RimPlotTemplateFileItem.h"
#include "cafPdmUiCheckBoxAndTextEditor.h"
#include "cafPdmUiCheckBoxEditor.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiListEditor.h"
#include "cafPdmUiPushButtonEditor.h"
#include <algorithm>
#include <vector>
namespace caf
{
template <>
void RiaPreferencesSummary::SummaryRestartFilesImportModeType::setUp()
{
addItem( RiaPreferencesSummary::SummaryRestartFilesImportMode::IMPORT, "IMPORT", "Unified" );
addItem( RiaPreferencesSummary::SummaryRestartFilesImportMode::SEPARATE_CASES, "SEPARATE_CASES", "Separate Cases" );
addItem( RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT, "NOT_IMPORT", "Skip" );
setDefault( RiaPreferencesSummary::SummaryRestartFilesImportMode::IMPORT );
}
template <>
void RiaPreferencesSummary::SummaryHistoryCurveStyleModeType::setUp()
{
addItem( RiaPreferencesSummary::SummaryHistoryCurveStyleMode::SYMBOLS, "SYMBOLS", "Symbols" );
addItem( RiaPreferencesSummary::SummaryHistoryCurveStyleMode::LINES, "LINES", "Lines" );
addItem( RiaPreferencesSummary::SummaryHistoryCurveStyleMode::SYMBOLS_AND_LINES, "SYMBOLS_AND_LINES", "Symbols and Lines" );
setDefault( RiaPreferencesSummary::SummaryHistoryCurveStyleMode::SYMBOLS );
}
template <>
void RiaPreferencesSummary::SummaryReaderModeType::setUp()
{
addItem( RiaPreferencesSummary::SummaryReaderMode::RESDATA, "RESDATA", "UNSMRY (resdata)", { "LIBECL" } );
addItem( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON, "HDF5_OPM_COMMON", "h5 (HDF5)" );
addItem( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON, "OPM_COMMON", "ESMRY (opm-common)" );
setDefault( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON );
}
template <>
void RiaPreferencesSummary::DefaultSummaryPlotEnum::setUp()
{
addItem( RiaPreferencesSummary::DefaultSummaryPlotType::NONE, "NONE", "No Plots" );
addItem( RiaPreferencesSummary::DefaultSummaryPlotType::DATA_VECTORS, "DATA_VECTORS", "Use Data Vector Names" );
addItem( RiaPreferencesSummary::DefaultSummaryPlotType::PLOT_TEMPLATES, "PLOT_TEMPLATES", "Use Plot Templates" );
setDefault( RiaPreferencesSummary::DefaultSummaryPlotType::DATA_VECTORS );
}
} // namespace caf
CAF_PDM_SOURCE_INIT( RiaPreferencesSummary, "RiaPreferencesSummary" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::RiaPreferencesSummary()
{
CAF_PDM_InitFieldNoDefault( &m_summaryRestartFilesShowImportDialog, "summaryRestartFilesShowImportDialog", "Show Summary Import Dialog" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_summaryRestartFilesShowImportDialog );
CAF_PDM_InitField( &m_summaryImportMode,
"summaryImportMode",
SummaryRestartFilesImportModeType( RiaPreferencesSummary::SummaryRestartFilesImportMode::IMPORT ),
"Summary Origin Import Option" );
CAF_PDM_InitField( &m_gridImportMode,
"gridImportMode",
SummaryRestartFilesImportModeType( RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT ),
"Grid Origin Import Option" );
CAF_PDM_InitField( &m_defaultSummaryHistoryCurveStyle,
"defaultSummaryHistoryCurveStyle",
SummaryHistoryCurveStyleModeType( RiaPreferencesSummary::SummaryHistoryCurveStyleMode::SYMBOLS ),
"Default Curve Style for History Vectors" );
CAF_PDM_InitField( &m_defaultSummaryCurvesTextFilter,
"defaultSummaryCurvesTextFilter",
QString( "FOPT" ),
"Default Summary Curves",
"",
"Semicolon separated list of filters used to create curves in new summary plots",
"" );
CAF_PDM_InitFieldNoDefault( &m_defaultSummaryPlot, "defaultSummaryPlot", "Create Plot On Summary Data Import" );
CAF_PDM_InitField( &m_crossPlotAddressCombinations,
"CrossPlotAddressCombinations",
QString( "FWCT FOPT;FWPR FOPT;FWIR FOPT;FGOR FOPT;FGLIR FOPR" ),
"Cross Plot Addresses [Y-adr X-adr]",
"",
"Semicolon separated list used to create cross plot curves. Based on selection, the names will be changed to "
"corresponing well or group vector names",
"" );
CAF_PDM_InitField( &m_selectDefaultTemplates, "selectDefaultTemplate", false, "", "", "Select Default Templates" );
caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_selectDefaultTemplates );
CAF_PDM_InitFieldNoDefault( &m_selectedDefaultTemplates, "defaultSummaryTemplates", "Select Summary Plot Templates" );
m_selectedDefaultTemplates.uiCapability()->setUiReadOnly( true );
m_selectedDefaultTemplates.uiCapability()->setUiEditorTypeName( caf::PdmUiListEditor::uiEditorTypeName() );
m_selectedDefaultTemplates.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
CAF_PDM_InitField( &m_summaryReadoutMode, "summaryReadoutMode", RiaDefines::ReadOutType::SNAP_TO_POINT, "Default Readout Mode" );
CAF_PDM_InitField( &m_createEnhancedSummaryDataFile,
"createEnhancedSummaryDataFile_v01",
false,
"Create ESMRY Summary Files",
"",
"If not present, create summary file with extension '*.ESMRY'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_createEnhancedSummaryDataFile );
CAF_PDM_InitField( &m_useEnhancedSummaryDataFile,
"useEnhancedSummaryDataFile",
true,
"Use ESMRY Files",
"",
"If present, import summary files with extension '*.ESMRY'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useEnhancedSummaryDataFile );
CAF_PDM_InitField( &m_esmryTimeThreshold,
"esmryTimeThreshold",
std::make_pair( false, 30 ),
"ESMRY Time Difference Threshold [s]",
"",
" Create ESMRY file if time difference between SMSPEC and ESMRY is larger than the threshold.",
"" );
m_esmryTimeThreshold.uiCapability()->setUiEditorTypeName( caf::PdmUiCheckBoxAndTextEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_createH5SummaryDataFile,
"createH5SummaryDataFile_v01",
false,
"Create h5 Summary Files",
"",
"If not present, create summary file with extension '*.h5'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_createH5SummaryDataFile );
CAF_PDM_InitField( &m_createH5SummaryFileThreadCount, "createH5SummaryFileThreadCount", 1, "h5 Summary Export Thread Count" );
CAF_PDM_InitFieldNoDefault( &m_summaryReader, "summaryReaderType_v01", "File Format" );
CAF_PDM_InitField( &m_useImprovedSummaryImport,
"useImprovedSummaryImport",
true,
"Use Improved Summary Import",
"",
"For ensemble import, skip metadata import for individual realizations. This reduces file operations and can "
"significantly speed up the import process." );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useImprovedSummaryImport );
CAF_PDM_InitField( &m_showSummaryTimeAsLongString,
"showSummaryTimeAsLongString",
false,
"Show resample time text as long time text (2010-11-21 23:15:00)" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showSummaryTimeAsLongString );
CAF_PDM_InitField( &m_useMultipleThreadsWhenLoadingSummaryCases,
"useMultipleThreadsWhenLoadingSummaryCases",
true,
"Use Multiple Threads for Import of Summary Files" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useMultipleThreadsWhenLoadingSummaryCases );
CAF_PDM_InitFieldNoDefault( &m_defaultColumnCount, "DefaultNumberOfColumns", "Columns" );
m_defaultColumnCount = RiaDefines::ColumnCount::COLUMNS_2;
CAF_PDM_InitFieldNoDefault( &m_defaultRowsPerPage, "DefaultRowsPerPage", "Rows per Page" );
m_defaultRowsPerPage = RiaDefines::RowCount::ROWS_2;
CAF_PDM_InitField( &m_curveColorByPhase, "curveColorByPhase", true, "Curve Color By Phase" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_curveColorByPhase );
CAF_PDM_InitField( &m_appendHistoryVectors,
"appendHistoryVectorForDragDrop",
false,
"Append History Vectors",
"",
"When a simulated summary vector is inserted into a plot, also include the corresponding "
"history vector" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_appendHistoryVectors );
CAF_PDM_InitField( &m_historyCurveContrastColor,
"historyCurveContrastColor",
RiaColorTables::historyCurveContrastColor(),
"History Curve Color" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary* RiaPreferencesSummary::current()
{
return RiaApplication::instance()->preferences()->summaryPreferences();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::SummaryReaderMode RiaPreferencesSummary::summaryDataReader() const
{
return m_summaryReader();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::useEnhancedSummaryDataFiles() const
{
return m_useEnhancedSummaryDataFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::createEnhancedSummaryDataFiles() const
{
return m_createEnhancedSummaryDataFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::createH5SummaryDataFiles() const
{
return m_createH5SummaryDataFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RiaPreferencesSummary::createH5SummaryDataThreadCount() const
{
const int minimumThreadCount = 1;
return std::max( minimumThreadCount, m_createH5SummaryFileThreadCount() );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::appendRestartFileGroup( caf::PdmUiOrdering& uiOrdering ) const
{
caf::PdmUiGroup* restartBehaviourGroup = uiOrdering.addNewGroup( "Origin Files" );
restartBehaviourGroup->add( &m_summaryRestartFilesShowImportDialog );
restartBehaviourGroup->add( &m_summaryImportMode );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::appendItemsToPlottingGroup( caf::PdmUiOrdering& uiOrdering ) const
{
uiOrdering.add( &m_defaultSummaryPlot );
switch ( m_defaultSummaryPlot() )
{
case RiaPreferencesSummary::DefaultSummaryPlotType::DATA_VECTORS:
uiOrdering.add( &m_defaultSummaryCurvesTextFilter );
break;
case RiaPreferencesSummary::DefaultSummaryPlotType::PLOT_TEMPLATES:
uiOrdering.add( &m_selectedDefaultTemplates );
uiOrdering.add( &m_selectDefaultTemplates );
break;
default:
break;
}
uiOrdering.add( &m_crossPlotAddressCombinations );
uiOrdering.add( &m_summaryReadoutMode );
auto historyCurveGroup = uiOrdering.addNewGroup( "History Vectors" );
historyCurveGroup->add( &m_defaultSummaryHistoryCurveStyle );
historyCurveGroup->add( &m_historyCurveContrastColor );
historyCurveGroup->add( &m_appendHistoryVectors );
uiOrdering.add( &m_curveColorByPhase );
uiOrdering.add( &m_showSummaryTimeAsLongString );
auto multiGroup = uiOrdering.addNewGroup( "Multi Plot Defaults" );
multiGroup->add( &m_defaultColumnCount );
multiGroup->add( &m_defaultRowsPerPage );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::showSummaryTimeAsLongString() const
{
return m_showSummaryTimeAsLongString;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::useMultipleThreadsWhenLoadingSummaryData() const
{
return m_useMultipleThreadsWhenLoadingSummaryCases;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::summaryRestartFilesShowImportDialog() const
{
return m_summaryRestartFilesShowImportDialog;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::useImprovedSummaryImport() const
{
return m_useImprovedSummaryImport;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RiaPreferencesSummary::esmryTimeThreshold() const
{
if ( m_esmryTimeThreshold().first )
{
return m_esmryTimeThreshold().second;
}
return 0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::SummaryRestartFilesImportMode RiaPreferencesSummary::summaryImportMode() const
{
return m_summaryImportMode();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::SummaryRestartFilesImportMode RiaPreferencesSummary::gridImportMode() const
{
return m_gridImportMode();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesSummary::defaultSummaryCurvesTextFilter() const
{
if ( m_defaultSummaryPlot() != DefaultSummaryPlotType::DATA_VECTORS ) return {};
return m_defaultSummaryCurvesTextFilter;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::colorCurvesByPhase() const
{
return m_curveColorByPhase();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::appendHistoryVectors() const
{
return m_appendHistoryVectors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesSummary::crossPlotAddressCombinations() const
{
return m_crossPlotAddressCombinations;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::SummaryHistoryCurveStyleMode RiaPreferencesSummary::defaultSummaryHistoryCurveStyle() const
{
return m_defaultSummaryHistoryCurveStyle();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_useMultipleThreadsWhenLoadingSummaryCases );
uiOrdering.add( &m_useImprovedSummaryImport );
uiOrdering.add( &m_summaryReader );
if ( m_summaryReader == SummaryReaderMode::OPM_COMMON )
{
if ( RiaApplication::enableDevelopmentFeatures() )
{
uiOrdering.add( &m_useEnhancedSummaryDataFile );
}
uiOrdering.add( &m_createEnhancedSummaryDataFile );
if ( m_createEnhancedSummaryDataFile() )
{
uiOrdering.add( &m_esmryTimeThreshold );
}
}
else if ( m_summaryReader == SummaryReaderMode::HDF5_OPM_COMMON )
{
uiOrdering.add( &m_createH5SummaryDataFile );
if ( RiaApplication::enableDevelopmentFeatures() )
{
uiOrdering.add( &m_createH5SummaryFileThreadCount );
}
}
uiOrdering.skipRemainingFields();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
if ( field == &m_defaultRowsPerPage || field == &m_defaultColumnCount )
{
auto myattr = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>( attribute );
if ( myattr )
{
myattr->iconSize = QSize( 24, 16 );
}
}
else if ( field == &m_selectDefaultTemplates )
{
auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "Select Default Templates";
}
}
else if ( field == &m_selectedDefaultTemplates )
{
auto attrib = dynamic_cast<caf::PdmUiListEditorAttribute*>( attribute );
if ( attrib )
{
attrib->heightHint = 30;
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RiaPreferencesSummary::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
{
QList<caf::PdmOptionItemInfo> options;
if ( fieldNeedingOptions == &m_summaryReader )
{
std::vector<SummaryReaderMode> availableModes;
#ifdef USE_HDF5
availableModes.push_back( SummaryReaderMode::HDF5_OPM_COMMON );
#endif // USE_HDF5
availableModes.push_back( SummaryReaderMode::RESDATA );
availableModes.push_back( SummaryReaderMode::OPM_COMMON );
for ( auto enumValue : availableModes )
{
options.push_back( caf::PdmOptionItemInfo( SummaryReaderModeType::uiText( enumValue ), enumValue ) );
}
}
else if ( fieldNeedingOptions == &m_gridImportMode )
{
// Manual option handling in order to one only a subset of the enum values
SummaryRestartFilesImportModeType skip( RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT );
SummaryRestartFilesImportModeType separate( RiaPreferencesSummary::SummaryRestartFilesImportMode::SEPARATE_CASES );
options.push_back( caf::PdmOptionItemInfo( skip.uiText(), RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT ) );
options.push_back( caf::PdmOptionItemInfo( separate.uiText(), RiaPreferencesSummary::SummaryRestartFilesImportMode::SEPARATE_CASES ) );
}
else if ( fieldNeedingOptions == &m_summaryImportMode )
{
// Only support skip or unified, as "SEPARATE_CASES" does not work for ensemble import. If separated cases is required for a single
// summary case, this can be activated by using the import dialog.
// https://github.com/OPM/ResInsight/issues/13147
SummaryRestartFilesImportModeType skipImport( RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT );
SummaryRestartFilesImportModeType unifiedImport( RiaPreferencesSummary::SummaryRestartFilesImportMode::IMPORT );
options.push_back( caf::PdmOptionItemInfo( skipImport.uiText(), RiaPreferencesSummary::SummaryRestartFilesImportMode::NOT_IMPORT ) );
options.push_back( caf::PdmOptionItemInfo( unifiedImport.uiText(), RiaPreferencesSummary::SummaryRestartFilesImportMode::IMPORT ) );
}
else if ( fieldNeedingOptions == &m_defaultColumnCount )
{
for ( size_t i = 0; i < ColumnCountEnum::size(); ++i )
{
RiaDefines::ColumnCount enumVal = ColumnCountEnum::fromIndex( i );
QString columnCountString =
( enumVal == RiaDefines::ColumnCount::COLUMNS_UNLIMITED ) ? "Unlimited" : QString( "%1" ).arg( static_cast<int>( enumVal ) );
QString iconPath = QString( ":/Columns%1.png" ).arg( columnCountString );
options.push_back(
caf::PdmOptionItemInfo( ColumnCountEnum::uiText( enumVal ), enumVal, false, caf::IconProvider( iconPath, QSize( 24, 16 ) ) ) );
}
}
else if ( fieldNeedingOptions == &m_defaultRowsPerPage )
{
for ( size_t i = 0; i < RowCountEnum::size(); ++i )
{
RiaDefines::RowCount enumVal = RowCountEnum::fromIndex( i );
QString iconPath = QString( ":/Rows%1.png" ).arg( static_cast<int>( enumVal ) );
options.push_back(
caf::PdmOptionItemInfo( RowCountEnum::uiText( enumVal ), enumVal, false, caf::IconProvider( iconPath, QSize( 24, 16 ) ) ) );
}
}
return options;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaDefines::ColumnCount RiaPreferencesSummary::defaultMultiPlotColumnCount() const
{
return m_defaultColumnCount();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaDefines::RowCount RiaPreferencesSummary::defaultMultiPlotRowCount() const
{
return m_defaultRowsPerPage();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaDefines::ReadOutType RiaPreferencesSummary::defaultSummaryReadoutMode() const
{
return m_summaryReadoutMode();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Color3f RiaPreferencesSummary::historyCurveContrastColor() const
{
return m_historyCurveContrastColor();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
if ( changedField == &m_selectDefaultTemplates )
{
m_selectDefaultTemplates = false;
auto selection = RicSummaryPlotTemplateTools::selectDefaultPlotTemplates( m_selectedDefaultTemplates() );
if ( selection.empty() ) return;
m_selectedDefaultTemplates = selection;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSummary::DefaultSummaryPlotType RiaPreferencesSummary::defaultSummaryPlotType() const
{
return m_defaultSummaryPlot();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QString> RiaPreferencesSummary::defaultSummaryPlotTemplates( bool returnEnsembleTemplates ) const
{
std::vector<QString> templatesToUse;
for ( auto& fileName : m_selectedDefaultTemplates() )
{
bool singleTemplate = fileName.toLower().endsWith( ".rpt" );
if ( singleTemplate && returnEnsembleTemplates ) continue;
if ( !singleTemplate && !returnEnsembleTemplates ) continue;
if ( std::count( templatesToUse.begin(), templatesToUse.end(), fileName ) == 0 ) templatesToUse.push_back( fileName );
}
return templatesToUse;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::isDefaultSummaryPlotTemplate( QString filename ) const
{
int count = std::count( m_selectedDefaultTemplates().begin(), m_selectedDefaultTemplates().end(), filename );
return ( count > 0 );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::addToDefaultPlotTemplates( QString filename )
{
if ( isDefaultSummaryPlotTemplate( filename ) ) return;
std::vector<QString> newlist;
newlist.insert( newlist.end(), m_selectedDefaultTemplates().begin(), m_selectedDefaultTemplates().end() );
newlist.push_back( filename );
m_selectedDefaultTemplates = newlist;
RiaPreferences::current()->writePreferencesToApplicationStore();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::removeFromDefaultPlotTemplates( QString filename )
{
if ( !isDefaultSummaryPlotTemplate( filename ) ) return;
std::vector<QString> newlist;
for ( auto& item : m_selectedDefaultTemplates() )
{
if ( item != filename ) newlist.push_back( item );
}
m_selectedDefaultTemplates = newlist;
RiaPreferences::current()->writePreferencesToApplicationStore();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::initAfterRead()
{
if ( m_summaryImportMode == SummaryRestartFilesImportMode::SEPARATE_CASES )
{
// SEPARATE_CASES does not work for ensemble import. Change to NOT_IMPORT
m_summaryImportMode = SummaryRestartFilesImportMode::NOT_IMPORT;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSummary::appendGridFields( caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_gridImportMode );
}