diff --git a/ApplicationLibCode/Application/RiaPreferencesSummary.cpp b/ApplicationLibCode/Application/RiaPreferencesSummary.cpp index d519de7490..fdd777ead5 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSummary.cpp +++ b/ApplicationLibCode/Application/RiaPreferencesSummary.cpp @@ -28,6 +28,7 @@ #include "cafPdmUiCheckBoxEditor.h" #include "cafPdmUiComboBoxEditor.h" +#include "cafPdmUiFilePathEditor.h" #include "cafPdmUiListEditor.h" #include "cafPdmUiPushButtonEditor.h" @@ -202,7 +203,11 @@ RiaPreferencesSummary::RiaPreferencesSummary() RiaColorTables::historyCurveContrastColor(), "History Curve Color" ); - CAF_PDM_InitFieldNoDefault( &m_ensembleCurveSetTemplateFilePath, "ensembleCurveSetTemplateFilePath", "Curve Set Template" ); + CAF_PDM_InitFieldNoDefault( &m_ensembleCurveTemplateFilePath, + "ensembleCurveTemplateFilePath", + "Ensemble Curve Template", + "", + "Select a template for ensemble curve properties." ); } //-------------------------------------------------------------------------------------------------- @@ -302,7 +307,7 @@ void RiaPreferencesSummary::appendItemsToPlottingGroup( caf::PdmUiOrdering& uiOr } uiOrdering.add( &m_crossPlotAddressCombinations ); - uiOrdering.add( &m_ensembleCurveSetTemplateFilePath ); + uiOrdering.add( &m_ensembleCurveTemplateFilePath ); auto historyCurveGroup = uiOrdering.addNewGroup( "History Vectors" ); @@ -476,6 +481,13 @@ void RiaPreferencesSummary::defineEditorAttribute( const caf::PdmFieldHandle* fi attrib->heightHint = 30; } } + else if ( field == &m_ensembleCurveTemplateFilePath ) + { + if ( auto myAttr = dynamic_cast( attribute ) ) + { + myAttr->m_fileSelectionFilter = "Templates (*.erpt);;All files (*.*)"; + } + } } //-------------------------------------------------------------------------------------------------- @@ -571,9 +583,9 @@ cvf::Color3f RiaPreferencesSummary::historyCurveContrastColor() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -QString RiaPreferencesSummary::ensembleCurveSetTemplateFilePath() const +QString RiaPreferencesSummary::ensembleCurveTemplateFilePath() const { - return m_ensembleCurveSetTemplateFilePath().path().trimmed(); + return m_ensembleCurveTemplateFilePath().path().trimmed(); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferencesSummary.h b/ApplicationLibCode/Application/RiaPreferencesSummary.h index 7a9a4967f1..314735b2c2 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSummary.h +++ b/ApplicationLibCode/Application/RiaPreferencesSummary.h @@ -117,7 +117,7 @@ public: cvf::Color3f historyCurveContrastColor() const; - QString ensembleCurveSetTemplateFilePath() const; + QString ensembleCurveTemplateFilePath() const; void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; @@ -142,7 +142,7 @@ private: caf::PdmField m_curveColorByPhase; caf::PdmField m_appendHistoryVectors; - caf::PdmField m_ensembleCurveSetTemplateFilePath; + caf::PdmField m_ensembleCurveTemplateFilePath; caf::PdmField m_showSummaryTimeAsLongString; caf::PdmField m_useMultipleThreadsWhenLoadingSummaryCases; diff --git a/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.cpp b/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.cpp index fa0afe70fc..dcbf21e255 100644 --- a/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.cpp +++ b/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.cpp @@ -267,13 +267,12 @@ QStringList getMatchingFiles( const QString& basePath, const QString& regexPatte //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimEnsembleCurveSet* createEnsembleCurveSet( const QString& templateFilePath ) +std::expected createEnsembleCurveSet( const QString& templateFilePath ) { QFile importFile( templateFilePath ); if ( !importFile.open( QIODevice::ReadOnly | QIODevice::Text ) ) { - RiaLogging::error( QString( "Create Plot from Template : Could not open the file: %1" ).arg( templateFilePath ) ); - return nullptr; + return std::unexpected( QString( "Create Plot from Template : Could not open the file: %1" ).arg( templateFilePath ) ); } QTextStream stream( &importFile ); @@ -305,7 +304,7 @@ RimEnsembleCurveSet* createEnsembleCurveSet( const QString& templateFilePath ) } } - return nullptr; + return std::unexpected( QString( "Create Plot from Template : No ensemble curve sets found in : %1" ).arg( templateFilePath ) ); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.h b/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.h index 25a990d224..a808c66749 100644 --- a/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.h +++ b/ApplicationLibCode/Application/Tools/Ensemble/RiaEnsembleImportTools.h @@ -22,6 +22,8 @@ #include +#include + class RimSummaryCase; class RimEnsembleCurveSet; @@ -45,6 +47,6 @@ QStringList createPathsBySearchingFileSystem_obsolete( const QString& pathPatter QStringList createPathsBySearchingFileSystem( const QString& pathPattern, const QString& extension, const QString& placeholderString ); QStringList getMatchingFiles( const QString& basePath, const QString& regexPattern ); -RimEnsembleCurveSet* createEnsembleCurveSet( const QString& templateFilePath ); +std::expected createEnsembleCurveSet( const QString& templateFilePath ); } // namespace RiaEnsembleImportTools diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp index ec8320b4fd..832922dcbd 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp @@ -22,6 +22,7 @@ #include "RiaColorTools.h" #include "RiaGuiApplication.h" #include "RiaHashTools.h" +#include "RiaLogging.h" #include "RiaPreferences.h" #include "RiaPreferencesSummary.h" #include "RiaQDateTimeTools.h" @@ -301,12 +302,17 @@ RimEnsembleCurveSet::~RimEnsembleCurveSet() //-------------------------------------------------------------------------------------------------- RimEnsembleCurveSet* RimEnsembleCurveSet::createObject() { - auto filePath = RiaPreferencesSummary::current()->ensembleCurveSetTemplateFilePath(); + auto filePath = RiaPreferencesSummary::current()->ensembleCurveTemplateFilePath(); if ( !filePath.isEmpty() ) { if ( auto obj = RiaEnsembleImportTools::createEnsembleCurveSet( filePath ) ) { - return obj; + return obj.value(); + } + else + { + auto txt = obj.error() + " Default ensemble curve properties are used"; + RiaLogging::warning( txt ); } }