From 43a4378cee9d8a81d46b169348dd97ff6dc7881b Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 15 Oct 2026 08:58:13 +0200 Subject: [PATCH] ResInsight: Migrate commands, UI and application code to attribute map --- .../Application/RiaGuiApplication.cpp | 9 ++- .../Application/RiaPreferences.cpp | 67 +++++-------------- .../Application/RiaPreferences.h | 9 ++- .../Application/RiaPreferencesSummary.cpp | 26 +------ .../Application/RiaPreferencesSummary.h | 1 - .../Application/RiaPreferencesSystem.cpp | 38 ++--------- .../Application/RiaPreferencesSystem.h | 1 - .../Application/Tools/RiaRegressionTest.cpp | 20 ++---- .../Application/Tools/RiaRegressionTest.h | 3 - .../RicCaseAndFileExportSettingsUi.cpp | 18 +---- .../RicCaseAndFileExportSettingsUi.h | 3 - .../ExportCommands/RicCellRangeUi.cpp | 52 ++++++-------- .../Commands/ExportCommands/RicCellRangeUi.h | 1 - .../RicCreateDepthAdjustedLasFilesUi.cpp | 18 +---- .../RicCreateDepthAdjustedLasFilesUi.h | 1 - .../ExportCommands/RicExportCarfinUi.cpp | 16 +---- .../ExportCommands/RicExportCarfinUi.h | 1 - .../RicExportEclipseSectorModelUi.cpp | 44 +++--------- .../RicExportEclipseSectorModelUi.h | 1 - .../ExportCommands/RicExportLgrUi.cpp | 16 +---- .../Commands/ExportCommands/RicExportLgrUi.h | 1 - .../ExportCommands/RicExportSectorModelUi.cpp | 59 +++------------- .../ExportCommands/RicExportSectorModelUi.h | 1 - .../RicExportToLasFileResampleUi.cpp | 18 +---- .../RicExportToLasFileResampleUi.h | 1 - .../ExportCommands/RicExportWellPathsUi.cpp | 16 +---- .../ExportCommands/RicExportWellPathsUi.h | 3 - .../RicSaveEclipseInputVisibleCellsUi.cpp | 21 +----- .../RicSaveEclipseInputVisibleCellsUi.h | 1 - .../RicCreateMultipleFracturesUi.cpp | 34 ++-------- .../RicCreateMultipleFracturesUi.h | 1 - .../RicHoloLensExportToFolderUi.cpp | 18 +---- .../RicHoloLensExportToFolderUi.h | 1 - ...icSaveMultiPlotTemplateFeatureSettings.cpp | 18 +---- .../RicSaveMultiPlotTemplateFeatureSettings.h | 1 - .../RicSelectPlotTemplateUi.cpp | 17 +---- .../RicSelectPlotTemplateUi.h | 3 - .../Commands/RicCreateEnsembleSurfaceUi.cpp | 16 +---- .../Commands/RicCreateEnsembleSurfaceUi.h | 1 - .../Commands/RicCreateEnsembleWellLogUi.cpp | 17 +---- .../Commands/RicCreateEnsembleWellLogUi.h | 1 - .../Commands/RicExportContourMapToTextUi.cpp | 18 +---- .../Commands/RicExportContourMapToTextUi.h | 3 - ...icPasteAsciiDataToSummaryPlotFeatureUi.cpp | 24 +------ .../RicPasteAsciiDataToSummaryPlotFeatureUi.h | 1 - .../RicSummaryPlotEditorUi.cpp | 16 +---- .../RicSummaryPlotEditorUi.h | 1 - .../RicExportSurfaceToGriUi.cpp | 15 +---- .../SurfaceCommands/RicExportSurfaceToGriUi.h | 1 - .../RifEclipseSummaryAddress.cpp | 2 +- .../UnitTests/RicMswBranchBuilder-Test.cpp | 26 +++---- .../RifEclipseSummaryAddress-Test.cpp | 14 ---- .../RiuSummaryVectorSelectionUi.cpp | 46 ++++++------- .../RiuSummaryVectorSelectionUi.h | 1 - ApplicationLibCode/UserInterface/RiuTools.cpp | 14 ++-- ApplicationLibCode/UserInterface/RiuTools.h | 4 +- 56 files changed, 153 insertions(+), 627 deletions(-) diff --git a/ApplicationLibCode/Application/RiaGuiApplication.cpp b/ApplicationLibCode/Application/RiaGuiApplication.cpp index eec69da011..367e727357 100644 --- a/ApplicationLibCode/Application/RiaGuiApplication.cpp +++ b/ApplicationLibCode/Application/RiaGuiApplication.cpp @@ -1065,9 +1065,14 @@ void RiaGuiApplication::loadAndUpdateMainWindowViews() { if ( !m_project || !m_mainWindow ) return; - for ( auto view : m_project->allViews() ) + for ( RimCase* gridModel : m_project->allGridCases() ) { - if ( view ) view->loadDataAndUpdate(); + if ( !gridModel ) continue; + + for ( Rim3dView* view : gridModel->views() ) + { + if ( view ) view->loadDataAndUpdate(); + } } m_mainWindow->restoreDockWidgetState( m_project->mainWindowDockState ); diff --git a/ApplicationLibCode/Application/RiaPreferences.cpp b/ApplicationLibCode/Application/RiaPreferences.cpp index 0b422475ae..9e3dea7c0d 100644 --- a/ApplicationLibCode/Application/RiaPreferences.cpp +++ b/ApplicationLibCode/Application/RiaPreferences.cpp @@ -103,6 +103,8 @@ RiaPreferences::RiaPreferences() CAF_PDM_InitFieldNoDefault( &scriptDirectories, "scriptDirectory", "Shared Script Folder(s)" ); scriptDirectories.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + scriptDirectories.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); + scriptDirectories.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::APPEND_UI_SELECTED_FOLDER_TO_TEXT, true ); // TODO: This only currently works for installed ResInsight. scriptDirectories = QCoreApplication::applicationDirPath() + "/Python/rips/PythonExamples"; @@ -173,6 +175,7 @@ RiaPreferences::RiaPreferences() "" ); CAF_PDM_InitField( &m_defaultScaleFactorZ, "defaultScaleFactorZ", 5.0, "Default Z Scale Factor" ); + m_defaultScaleFactorZ.setRange( 0.000001, 100000.0 ); CAF_PDM_InitFieldNoDefault( &defaultSceneFontSize, "defaultSceneFontSizePt", "Viewer Font Size" ); CAF_PDM_InitFieldNoDefault( &defaultAnnotationFontSize, "defaultAnnotationFontSizePt", "Annotation Font Size" ); @@ -181,6 +184,12 @@ RiaPreferences::RiaPreferences() auto defaultValue = FontSizeEnum( RiaFontCache::FontSize::FONT_SIZE_10 ); CAF_PDM_InitField( &defaultPlotFontSize, "defaultPlotFontSizePt", defaultValue, "Plot Font Size" ); + for ( caf::PdmFieldHandle* fontSizeField : + std::vector{ &defaultSceneFontSize, &defaultAnnotationFontSize, &defaultWellLabelFontSize, &defaultPlotFontSize } ) + { + fontSizeField->uiCapability()->setAttribute( caf::PdmUiComboBoxEditor::Keys::MINIMUM_CONTENTS_LENGTH, 2 ); + } + CAF_PDM_InitField( &m_showLegendBackground, "showLegendBackground", true, "Show Box around Legends" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showLegendBackground ); @@ -214,6 +223,8 @@ RiaPreferences::RiaPreferences() CAF_PDM_InitFieldNoDefault( &m_plotTemplateFolders, "plotTemplateFolders", "Plot Template Folder(s)" ); m_plotTemplateFolders.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_plotTemplateFolders.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); + m_plotTemplateFolders.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::APPEND_UI_SELECTED_FOLDER_TO_TEXT, true ); CAF_PDM_InitField( &m_maxPlotTemplateFoldersDepth, "MaxPlotTemplateFoldersDepth", 2, "Maximum Plot Template Folder Search Depth" ); CAF_PDM_InitFieldNoDefault( &m_lastUsedPlotTemplate, "defaultPlotTemplate", "Default Plot Template" ); @@ -245,6 +256,8 @@ RiaPreferences::RiaPreferences() CAF_PDM_InitFieldNoDefault( &m_summaryCalculationExpressionFolder, "summaryCalculationExpressionFolder", "Summary Calculation Expression Folder" ); + m_gridCalculationExpressionFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); + m_summaryCalculationExpressionFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitField( &m_surfaceImportResamplingDistance, "SurfaceImportResamplingDistance", @@ -263,6 +276,10 @@ RiaPreferences::RiaPreferences() "of ? and * as wildcards.", "" ); m_multiLateralWellPattern.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() ); + // The line editor does not take ownership of the validator + m_multiLateralWellPatternValidator = std::make_unique( defaultMultiLateralWellNamePattern() ); + m_multiLateralWellPattern.uiCapability()->setAttribute( caf::PdmUiLineEditor::Keys::VALIDATOR, + m_multiLateralWellPatternValidator.get() ); CAF_PDM_InitFieldNoDefault( &m_guiTheme, "guiTheme", "GUI theme" ); @@ -308,56 +325,6 @@ RiaPreferences* RiaPreferences::current() return RiaApplication::instance()->preferences(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiaPreferences::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - m_summaryPreferences->defineEditorAttribute( field, uiConfigName, attribute ); - - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - if ( field == &scriptDirectories || field == &m_plotTemplateFolders ) - { - myAttr->m_selectDirectory = true; - myAttr->m_appendUiSelectedFolderToText = true; - } - else if ( field == &m_gridCalculationExpressionFolder || field == &m_summaryCalculationExpressionFolder ) - { - myAttr->m_selectDirectory = true; - } - } - } - - if ( field == &defaultSceneFontSize || field == &defaultWellLabelFontSize || field == &defaultAnnotationFontSize || - field == &defaultPlotFontSize ) - { - caf::PdmUiComboBoxEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->minimumContentsLength = 2; - } - } - else if ( field == &m_multiLateralWellPattern ) - { - caf::PdmUiLineEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->validator = new RiaValidRegExpValidator( RiaPreferences::defaultMultiLateralWellNamePattern() ); - } - } - else if ( field == &m_defaultScaleFactorZ ) - { - auto myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->validator = new QDoubleValidator( 0.000001, 100000.0, 6 ); - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferences.h b/ApplicationLibCode/Application/RiaPreferences.h index 5cacc31ea8..2346b0d1ff 100644 --- a/ApplicationLibCode/Application/RiaPreferences.h +++ b/ApplicationLibCode/Application/RiaPreferences.h @@ -38,6 +38,7 @@ #include #include +#include #include class RiaPreferencesSummary; @@ -50,6 +51,8 @@ class RiaPreferencesOpm; class RiaPreferencesOpenTelemetry; class RiaPreferencesCloudApi; +class QValidator; + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -160,8 +163,7 @@ public: caf::PdmField csvTextExportFieldSeparator; protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; - void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; + void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void initAfterRead() override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; @@ -222,7 +224,8 @@ private: caf::PdmField m_surfaceImportResamplingDistance; // Well Path Import - caf::PdmField m_multiLateralWellPattern; + caf::PdmField m_multiLateralWellPattern; + std::unique_ptr m_multiLateralWellPatternValidator; // Grid import caf::PdmChildField m_gridPreferences; diff --git a/ApplicationLibCode/Application/RiaPreferencesSummary.cpp b/ApplicationLibCode/Application/RiaPreferencesSummary.cpp index 79889c804a..1bb0b21838 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSummary.cpp +++ b/ApplicationLibCode/Application/RiaPreferencesSummary.cpp @@ -120,6 +120,7 @@ RiaPreferencesSummary::RiaPreferencesSummary() 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()->setAttribute( caf::PdmUiListEditor::Keys::HEIGHT_HINT, 30 ); m_selectedDefaultTemplates.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN ); CAF_PDM_InitField( &m_summaryReadoutMode, "summaryReadoutMode", RiaDefines::ReadOutType::SNAP_TO_POINT, "Default Readout Mode" ); @@ -187,8 +188,10 @@ RiaPreferencesSummary::RiaPreferencesSummary() CAF_PDM_InitFieldNoDefault( &m_defaultColumnCount, "DefaultNumberOfColumns", "Columns" ); m_defaultColumnCount = RiaDefines::ColumnCount::COLUMNS_2; + m_defaultColumnCount.uiCapability()->setAttribute( caf::PdmUiComboBoxEditor::Keys::ICON_SIZE, QSize( 24, 16 ) ); CAF_PDM_InitFieldNoDefault( &m_defaultRowsPerPage, "DefaultRowsPerPage", "Rows per Page" ); m_defaultRowsPerPage = RiaDefines::RowCount::ROWS_2; + m_defaultRowsPerPage.uiCapability()->setAttribute( caf::PdmUiComboBoxEditor::Keys::ICON_SIZE, QSize( 24, 16 ) ); CAF_PDM_InitField( &m_curveColorByPhase, "curveColorByPhase", true, "Curve Color By Phase" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_curveColorByPhase ); @@ -451,29 +454,6 @@ void RiaPreferencesSummary::defineUiOrdering( QString uiConfigName, caf::PdmUiOr 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( attribute ); - if ( myattr ) - { - myattr->iconSize = QSize( 24, 16 ); - } - } - else if ( field == &m_selectedDefaultTemplates ) - { - auto attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->heightHint = 30; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferencesSummary.h b/ApplicationLibCode/Application/RiaPreferencesSummary.h index 09698ce89e..4f3c548f0e 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSummary.h +++ b/ApplicationLibCode/Application/RiaPreferencesSummary.h @@ -122,7 +122,6 @@ public: cvf::Color3f historyCurveContrastColor() const; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void initAfterRead() override; void appendGridFields( caf::PdmUiOrdering& uiOrdering ); diff --git a/ApplicationLibCode/Application/RiaPreferencesSystem.cpp b/ApplicationLibCode/Application/RiaPreferencesSystem.cpp index 87012a363a..54ec93d707 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSystem.cpp +++ b/ApplicationLibCode/Application/RiaPreferencesSystem.cpp @@ -72,6 +72,7 @@ RiaPreferencesSystem::RiaPreferencesSystem() CAF_PDM_InitFieldNoDefault( &m_holoLensExportFolder, "holoLensExportFolder", "HoloLens Export Folder" ); m_holoLensExportFolder.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::TOP ); m_holoLensExportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_holoLensExportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitField( &m_showProjectChangedDialog, "showProjectChangedDialog", true, "Show 'Project has changed' dialog" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showProjectChangedDialog ); @@ -99,6 +100,9 @@ RiaPreferencesSystem::RiaPreferencesSystem() CAF_PDM_InitFieldNoDefault( &m_enabledFeatures, "EnabledFeatures", "Experimental Features" ); m_enabledFeatures.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() ); + // Report the highlighted (clicked) feature so its description can be shown below the list. + m_enabledFeatures.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::CURRENT_INDEX_FIELD_HANDLE, + &m_currentFeatureKeyword ); // Transient UI helper fields, not stored in the preferences file. CAF_PDM_InitFieldNoDefault( &m_currentFeatureKeyword, "currentFeatureKeyword", "" ); @@ -106,6 +110,9 @@ RiaPreferencesSystem::RiaPreferencesSystem() m_currentFeatureKeyword.xmlCapability()->disableIO(); CAF_PDM_InitFieldNoDefault( &m_selectedFeatureDescription, "selectedFeatureDescription", "Description" ); + m_selectedFeatureDescription.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::WRAP_MODE, + static_cast( caf::PdmUiTextEditor::WordWrap ) ); + m_selectedFeatureDescription.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::HEIGHT_HINT, 60 ); m_selectedFeatureDescription.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() ); m_selectedFeatureDescription.uiCapability()->setUiReadOnly( true ); m_selectedFeatureDescription.xmlCapability()->disableIO(); @@ -406,37 +413,6 @@ void RiaPreferencesSystem::initAfterRead() } } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiaPreferencesSystem::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_holoLensExportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } - else if ( field == &m_enabledFeatures ) - { - // Report the highlighted (clicked) feature so its description can be shown below the list. - if ( auto* myAttr = dynamic_cast( attribute ) ) - { - myAttr->currentIndexFieldHandle = &m_currentFeatureKeyword; - } - } - else if ( field == &m_selectedFeatureDescription ) - { - if ( auto* myAttr = dynamic_cast( attribute ) ) - { - myAttr->wrapMode = caf::PdmUiTextEditorAttribute::WordWrap; - myAttr->heightHint = 60; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferencesSystem.h b/ApplicationLibCode/Application/RiaPreferencesSystem.h index 2c666e1139..9973ba80bb 100644 --- a/ApplicationLibCode/Application/RiaPreferencesSystem.h +++ b/ApplicationLibCode/Application/RiaPreferencesSystem.h @@ -71,7 +71,6 @@ public: protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - 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; void initAfterRead() override; diff --git a/ApplicationLibCode/Application/Tools/RiaRegressionTest.cpp b/ApplicationLibCode/Application/Tools/RiaRegressionTest.cpp index 9b786585cd..473679c22a 100644 --- a/ApplicationLibCode/Application/Tools/RiaRegressionTest.cpp +++ b/ApplicationLibCode/Application/Tools/RiaRegressionTest.cpp @@ -36,6 +36,7 @@ RiaRegressionTest::RiaRegressionTest() "Location of compare tool from Image Magic suite", "" ); folderContainingCompareTool.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + folderContainingCompareTool.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &folderContainingDiffTool, "folderContainingDiffTool", @@ -44,6 +45,7 @@ RiaRegressionTest::RiaRegressionTest() "Location of diff tool used for text compare", "" ); folderContainingDiffTool.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + folderContainingDiffTool.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &folderContainingGitTool, "folderContainingGitTool", @@ -52,9 +54,11 @@ RiaRegressionTest::RiaRegressionTest() "Location of git tool used for text compare", "" ); folderContainingGitTool.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + folderContainingGitTool.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( ®ressionTestFolder, "regressionTestFolder", "Regression Test Folder" ); regressionTestFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + regressionTestFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitField( &showInteractiveDiffImages, "showInteractiveDiffImages", false, "Interactive Diff Images" ); CAF_PDM_InitField( &useOpenMPForGeometryCreation, "useOpenMPForGeometryCreation", true, "Use OpenMP For Geometry Creation" ); @@ -101,19 +105,3 @@ void RiaRegressionTest::readSettingsFromApplicationStore() { caf::PdmSettings::readFieldsFromApplicationStore( this ); } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiaRegressionTest::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &folderContainingDiffTool || field == &folderContainingCompareTool || field == ®ressionTestFolder || - field == &folderContainingGitTool ) - { - auto* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Application/Tools/RiaRegressionTest.h b/ApplicationLibCode/Application/Tools/RiaRegressionTest.h index 8b371ed44f..7fd58b70b1 100644 --- a/ApplicationLibCode/Application/Tools/RiaRegressionTest.h +++ b/ApplicationLibCode/Application/Tools/RiaRegressionTest.h @@ -48,7 +48,4 @@ public: caf::PdmField exportSnapshots3dViews; caf::PdmField exportSnapshotsPlots; - -protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; }; diff --git a/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.cpp b/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.cpp index 23279b2958..93dbbe036f 100644 --- a/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.cpp +++ b/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.cpp @@ -33,6 +33,7 @@ RicCaseAndFileExportSettingsUi::RicCaseAndFileExportSettingsUi() CAF_PDM_InitFieldNoDefault( &folder, "Folder", "Export Folder" ); folder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + folder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &caseToApply, "CaseToApply", "Case to Apply" ); } @@ -51,20 +52,3 @@ QList RicCaseAndFileExportSettingsUi::calculateValueOpti return options; } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicCaseAndFileExportSettingsUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &folder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.h b/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.h index 2b29d475f7..3b5eea1d07 100644 --- a/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.h +++ b/ApplicationLibCode/Commands/CompletionExportCommands/RicCaseAndFileExportSettingsUi.h @@ -39,7 +39,4 @@ public: caf::PdmPtrField caseToApply; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - -protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; }; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.cpp index 2c5c9f6a65..5d6330c313 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.cpp @@ -102,38 +102,6 @@ QString RicCellRangeUi::gridName() const return RigReservoirGridTools::gridName( m_case, m_gridIndex() ); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicCellRangeUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - caf::PdmUiSliderEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( !myAttr ) - { - return; - } - - const cvf::StructGridInterface* grid = RigReservoirGridTools::gridByIndex( m_case, m_gridIndex() ); - if ( grid ) - { - if ( field == &m_startIndexI || field == &m_cellCountI ) - { - myAttr->m_minimum = 1; - myAttr->m_maximum = static_cast( grid->cellCountI() ); - } - else if ( field == &m_startIndexJ || field == &m_cellCountJ ) - { - myAttr->m_minimum = 1; - myAttr->m_maximum = static_cast( grid->cellCountJ() ); - } - else if ( field == &m_startIndexK || field == &m_cellCountK ) - { - myAttr->m_minimum = 1; - myAttr->m_maximum = static_cast( grid->cellCountK() ); - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -307,5 +275,25 @@ void RicCellRangeUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering.add( &m_startIndexK ); uiOrdering.add( &m_cellCountK ); + if ( const cvf::StructGridInterface* grid = RigReservoirGridTools::gridByIndex( m_case, m_gridIndex() ) ) + { + auto setRange = []( caf::PdmFieldHandle& field, size_t maximum ) + { caf::PdmUiSliderEditor::setRange( field.uiCapability(), 1, static_cast( maximum ) ); }; + + setRange( m_startIndexI, grid->cellCountI() ); + setRange( m_cellCountI, grid->cellCountI() ); + setRange( m_startIndexJ, grid->cellCountJ() ); + setRange( m_cellCountJ, grid->cellCountJ() ); + setRange( m_startIndexK, grid->cellCountK() ); + setRange( m_cellCountK, grid->cellCountK() ); + } + else + { + for ( auto* field : { &m_startIndexI, &m_cellCountI, &m_startIndexJ, &m_cellCountJ, &m_startIndexK, &m_cellCountK } ) + { + caf::PdmUiSliderEditor::clearRange( field->uiCapability() ); + } + } + updateLegendText(); } diff --git a/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.h b/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.h index 2a6856a9b9..e1e807727c 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicCellRangeUi.h @@ -43,7 +43,6 @@ public: QString gridName() const; private: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.cpp index dbf0ed3221..1c1c568c1b 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.cpp @@ -42,6 +42,7 @@ RicCreateDepthAdjustedLasFilesUi::RicCreateDepthAdjustedLasFilesUi() { CAF_PDM_InitField( &exportFolder, "ExportFolder", QString(), "Export Folder" ); exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &selectedCase, "SelectedCase", "Select Case" ); CAF_PDM_InitFieldNoDefault( &sourceWell, "SourceWell", "Source Well" ); @@ -148,23 +149,6 @@ void RicCreateDepthAdjustedLasFilesUi::fieldChangedByUi( const caf::PdmFieldHand } } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicCreateDepthAdjustedLasFilesUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &exportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.h b/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.h index a03f8eac89..4a34e3b695 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicCreateDepthAdjustedLasFilesUi.h @@ -47,7 +47,6 @@ public: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void setDefaultValues(); bool hasValidSelections() const; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.cpp index d8db36e403..fe2859a5d8 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.cpp @@ -40,6 +40,7 @@ RicExportCarfinUi::RicExportCarfinUi() CAF_PDM_InitFieldNoDefault( &m_exportFileName, "ExportFileName", "Export Filename" ); m_exportFileName.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFileName.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); CAF_PDM_InitFieldNoDefault( &m_caseToApply, "CaseToApply", "Source Case" ); @@ -182,18 +183,3 @@ void RicExportCarfinUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderi gridRefinement->add( &m_cellCountK ); gridRefinement->add( &m_maxWellCount ); } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportCarfinUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFileName ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectSaveFileName = true; - } - } -} diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.h index 114911f28f..e73244759d 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportCarfinUi.h @@ -54,7 +54,6 @@ private: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: caf::PdmField m_exportFileName; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.cpp index af26e7a190..6c42b1fb41 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.cpp @@ -79,6 +79,9 @@ RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi() CAF_PDM_InitField( &exportGrid, "ExportGrid", true, "Export Grid Data", "", "Includes COORD, ZCORN and ACTNUM", "" ); CAF_PDM_InitField( &m_exportGridFilename, "ExportGridFilename", QString(), "Grid File Name" ); + m_exportGridFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); + m_exportGridFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)" ) ); CAF_PDM_InitField( &exportInLocalCoordinates, "ExportInLocalCoords", false, "Export in Local Coordinates", "", "Remove UTM location on export", "" ); CAF_PDM_InitField( &makeInvisibleCellsInactive, "InvisibleCellActnum", false, "Make Invisible Cells Inactive" ); @@ -110,6 +113,9 @@ RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi() exportFaults = EXPORT_TO_SINGLE_SEPARATE_FILE; CAF_PDM_InitField( &m_exportFaultsFilename, "ExportFaultsFilename", QString(), "Faults File Name" ); + m_exportFaultsFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); + m_exportFaultsFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)" ) ); QString ijkLabel = "Cell Count I, J, K"; CAF_PDM_InitField( &refinementCountI, "RefinementCountI", 1, ijkLabel ); @@ -121,15 +127,19 @@ RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi() CAF_PDM_InitFieldNoDefault( &exportParameters, "ExportParams", "Export Parameters" ); CAF_PDM_InitField( &m_exportParametersFilename, "ExportParamsFilename", QString(), "File Name" ); + m_exportParametersFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); + m_exportParametersFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)" ) ); CAF_PDM_InitFieldNoDefault( &selectedKeywords, "ExportMainKeywords", "Keywords to Export" ); - + selectedKeywords.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::HEIGHT_HINT, 280 ); CAF_PDM_InitField( &m_writeEchoInGrdeclFiles, "WriteEchoInGrdeclFiles", RiaPreferences::current()->writeEchoInGrdeclFiles(), "Write NOECHO and ECHO" ); CAF_PDM_InitFieldNoDefault( &m_exportFolder, "ExportFolder", "Export Folder" ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); m_exportFolder = defaultFolder(); m_exportGridFilename = defaultGridFileName(); @@ -243,38 +253,6 @@ cvf::Vec3st RicExportEclipseSectorModelUi::refinement() const return cvf::Vec3st( refinementCountI(), refinementCountJ(), refinementCountK() ); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportEclipseSectorModelUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportParametersFilename || field == &m_exportGridFilename || field == &m_exportFaultsFilename ) - { - if ( auto* myAttr = dynamic_cast( attribute ) ) - { - myAttr->m_selectSaveFileName = true; - myAttr->m_fileSelectionFilter = "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)"; - } - } - else if ( field == &selectedKeywords ) - { - if ( auto* myAttr = dynamic_cast( attribute ) ) - { - myAttr->heightHint = 280; - } - } - - if ( field == &m_exportFolder ) - { - if ( auto* myAttr = dynamic_cast( attribute ) ) - { - myAttr->m_selectDirectory = true; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.h index b02e678eba..7c64e3b264 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportEclipseSectorModelUi.h @@ -106,7 +106,6 @@ protected: caf::PdmField minK; caf::PdmField maxK; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.cpp index 3302c7db58..51db90cc0b 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.cpp @@ -65,6 +65,7 @@ RicExportLgrUi::RicExportLgrUi() CAF_PDM_InitFieldNoDefault( &m_exportFolder, "ExportFolder", "Export Folder" ); m_exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &m_caseToApply, "CaseToApply", "Source Case" ); CAF_PDM_InitFieldNoDefault( &m_timeStep, "TimeStepIndex", "Time Step" ); @@ -248,18 +249,3 @@ void RicExportLgrUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& // uiOrdering.add(&m_wellPathsInfo); uiOrdering.skipRemainingFields( true ); } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportLgrUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.h index 1ab296d703..688e03c34f 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportLgrUi.h @@ -64,7 +64,6 @@ private: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: caf::PdmField m_exportFolder; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.cpp index bf7ad4e2d6..13317dc790 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.cpp @@ -65,8 +65,11 @@ RicExportSectorModelUi::RicExportSectorModelUi() CAF_PDM_InitObject( "Export Sector Model for Simulation Input" ); CAF_PDM_InitFieldNoDefault( &m_exportFolder, "ExportFolder", "Export Folder" ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &m_exportDeckName, "ExportDeckName", "Sector Model Name" ); CAF_PDM_InitFieldNoDefault( &m_inputDeckName, "InputDeckName", "Source DATA File" ); + m_inputDeckName.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "Eclipse DATA files (*.DATA);;All files (*.*)" ) ); m_inputDeckName.xmlCapability()->disableIO(); CAF_PDM_InitField( &m_porvMultiplier, "PorvMultiplier", 1.0e6, "PORV Multiplier" ); @@ -102,13 +105,19 @@ RicExportSectorModelUi::RicExportSectorModelUi() CAF_PDM_InitFieldNoDefault( &m_selectedRegions, "SelectedRefinementRegions", "Refinement Regions" ); m_selectedRegions.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() ); + m_selectedRegions.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::HEIGHT_HINT, 100 ); CAF_PDM_InitFieldNoDefault( &m_bcpropKeywords, "BcpropKeywords", "BCPROP Keywords" ); m_bcpropKeywords.uiCapability()->setUiEditorTypeName( caf::PdmUiTableViewEditor::uiEditorTypeName() ); + m_bcpropKeywords.uiCapability()->setAttribute( caf::PdmUiTableViewEditor::Keys::RESIZE_POLICY, + static_cast( caf::PdmUiTableViewEditor::RESIZE_TO_FILL_CONTAINER ) ); + m_bcpropKeywords.uiCapability()->setAttribute( caf::PdmUiTableViewEditor::Keys::ALWAYS_ENFORCE_RESIZE_POLICY, true ); + m_bcpropKeywords.uiCapability()->setAttribute( caf::PdmUiTableViewEditor::Keys::EDIT_ON_SINGLE_CLICK, true ); m_bcpropKeywords.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN ); CAF_PDM_InitFieldNoDefault( &m_keywordsToRemove, "KeywordsToRemove", "Keywords to Remove from Output" ); m_keywordsToRemove.uiCapability()->setUiEditorTypeName( caf::PdmUiListEditor::uiEditorTypeName() ); + m_keywordsToRemove.uiCapability()->setAttribute( caf::PdmUiListEditor::Keys::HEIGHT_HINT, 200 ); setDefaultKeywordsToRemove(); // Model padding fields @@ -146,6 +155,7 @@ RicExportSectorModelUi::RicExportSectorModelUi() CAF_PDM_InitField( &m_createSimulationJob, "CreateSimulationJob", false, "Create New Simulation Job" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_createSimulationJob ); CAF_PDM_InitFieldNoDefault( &m_simulationJobFolder, "SimulationJobFolder", "Working Folder" ); + m_simulationJobFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &m_simulationJobName, "SimulationJobName", "Job Name" ); CAF_PDM_InitField( &m_startSimulationJobAfterExport, "StartSimulationJobAfterExport", @@ -387,55 +397,6 @@ void RicExportSectorModelUi::setEclipseView( RimEclipseView* view ) } } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportSectorModelUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_bcpropKeywords ) - { - auto* tvAttr = dynamic_cast( attribute ); - if ( tvAttr ) - { - tvAttr->resizePolicy = caf::PdmUiTableViewEditorAttribute::RESIZE_TO_FILL_CONTAINER; - tvAttr->alwaysEnforceResizePolicy = true; - tvAttr->editOnSingleClick = true; - } - } - else if ( ( field == &m_exportFolder ) || ( field == &m_simulationJobFolder ) ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } - else if ( field == &m_keywordsToRemove ) - { - auto attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->heightHint = 200; - } - } - else if ( field == &m_selectedRegions ) - { - auto attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->heightHint = 100; - } - } - else if ( field == &m_inputDeckName ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_fileSelectionFilter = "Eclipse DATA files (*.DATA);;All files (*.*)"; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.h index 01698b2e2b..fa5946908f 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportSectorModelUi.h @@ -93,7 +93,6 @@ public: protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - 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; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; std::map validate( const QString& configName ) const override; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.cpp index 9c5d9c5c87..88563a5ddd 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.cpp @@ -59,6 +59,7 @@ RicExportToLasFileResampleUi::RicExportToLasFileResampleUi() CAF_PDM_InitField( &exportFolder, "ExportFolder", QString(), "Export Folder" ); exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitField( &filePrefix, "FilePrefix", QString( "" ), "File Prefix" ); CAF_PDM_InitField( &capitalizeFileName, "CapitalizeFileName", false, "Capitalize File Name" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &capitalizeFileName ); @@ -130,23 +131,6 @@ void RicExportToLasFileResampleUi::fieldChangedByUi( const caf::PdmFieldHandle* updateFieldVisibility(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportToLasFileResampleUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &exportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.h index 70c253a204..0df5619d85 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportToLasFileResampleUi.h @@ -69,7 +69,6 @@ public: void setUnitConversionOptionEnabled( bool enabled ); void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.cpp index 87a2decc15..a535ad9b47 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.cpp @@ -37,6 +37,7 @@ RicExportWellPathsUi::RicExportWellPathsUi() CAF_PDM_InitField( &m_exportFolder, "ExportFolder", QString(), "Export Folder" ); m_exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitField( &m_mdStepSize, "MdStepSize", 5.0, "MD Step Size" ); } @@ -64,18 +65,3 @@ double RicExportWellPathsUi::mdStepSize() const { return m_mdStepSize; } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportWellPathsUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.h b/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.h index 96097f452a..7950bc581f 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicExportWellPathsUi.h @@ -39,9 +39,6 @@ public: QString exportFolder() const; double mdStepSize() const; -private: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; - private: caf::PdmField m_exportFolder; caf::PdmField m_mdStepSize; diff --git a/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.cpp b/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.cpp index 725260e194..5d8958a4bd 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.cpp +++ b/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.cpp @@ -63,6 +63,9 @@ RicSaveEclipseInputVisibleCellsUi::RicSaveEclipseInputVisibleCellsUi() CAF_PDM_InitField( &exportFilename, "ExportFilename", QString(), "Export Filename" ); exportFilename.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + exportFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); + exportFilename.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)" ) ); CAF_PDM_InitFieldNoDefault( &exportKeyword, "ExportKeyword", "Export Keyword" ); CAF_PDM_InitField( &visibleActiveCellsValue, "VisibleActiveCellsValue", 1, "Visible Active Cells Value" ); CAF_PDM_InitField( &hiddenActiveCellsValue, "HiddenActiveCellsValue", 0, "Hidden Active Cells Value" ); @@ -83,24 +86,6 @@ RicSaveEclipseInputVisibleCellsUi::~RicSaveEclipseInputVisibleCellsUi() { } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicSaveEclipseInputVisibleCellsUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &exportFilename ) - { - auto* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectSaveFileName = true; - myAttr->m_fileSelectionFilter = "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)"; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.h b/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.h index 560a8970c3..3064a35efa 100644 --- a/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.h +++ b/ApplicationLibCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsUi.h @@ -53,7 +53,6 @@ public: caf::PdmField writeEchoInGrdeclFiles; protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; diff --git a/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.cpp b/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.cpp index 953e150ead..cf966d97c5 100644 --- a/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.cpp +++ b/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.cpp @@ -89,10 +89,15 @@ RiuCreateMultipleFractionsUi::RiuCreateMultipleFractionsUi() CAF_PDM_InitFieldNoDefault( &m_options, "Options", "Options" ); m_options.uiCapability()->setUiEditorTypeName( caf::PdmUiTableViewEditor::uiEditorTypeName() ); + m_options.uiCapability()->setAttribute( caf::PdmUiTableViewEditor::Keys::MINIMUM_HEIGHT, 130 ); + m_options.uiCapability()->setAttribute( caf::PdmUiTableViewEditor::Keys::COLUMN_WIDTHS, QVariantList{ 90, 90, 400, 70 } ); m_options.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::TOP ); m_options.uiCapability()->setCustomContextMenuEnabled( true ); CAF_PDM_InitFieldNoDefault( &m_fractureCreationSummary, "FractureCreationSummary", "Generated Fractures" ); + m_fractureCreationSummary.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::FONT, QFont( "Courier", 8 ) ); + m_fractureCreationSummary.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::WRAP_MODE, + static_cast( caf::PdmUiTextEditor::NoWrap ) ); m_fractureCreationSummary.registerGetMethod( this, &RiuCreateMultipleFractionsUi::summaryText ); m_fractureCreationSummary.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::TOP ); m_fractureCreationSummary.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() ); @@ -273,35 +278,6 @@ QString RiuCreateMultipleFractionsUi::summaryText() const return tableText; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiuCreateMultipleFractionsUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_fractureCreationSummary ) - { - auto attr = dynamic_cast( attribute ); - if ( attr ) - { - QFont font( "Courier", 8 ); - - attr->font = font; - attr->wrapMode = caf::PdmUiTextEditorAttribute::NoWrap; - } - } - else if ( field == &m_options ) - { - auto attr = dynamic_cast( attribute ); - if ( attr ) - { - attr->minimumHeight = 130; - attr->columnWidths = { 90, 90, 400, 70 }; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.h b/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.h index f496fc5294..cc8f73b300 100644 --- a/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.h +++ b/ApplicationLibCode/Commands/FractureCommands/RicCreateMultipleFracturesUi.h @@ -93,7 +93,6 @@ public: private: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void defineCustomContextMenu( const caf::PdmFieldHandle* fieldNeedingMenu, QMenu* menu, QWidget* fieldEditorWidget ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; QString summaryText() const; diff --git a/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.cpp b/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.cpp index 2fab89dc56..a9e9c3ada8 100644 --- a/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.cpp +++ b/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.cpp @@ -39,6 +39,7 @@ RicHoloLensExportToFolderUi::RicHoloLensExportToFolderUi() CAF_PDM_InitField( &m_exportFolder, "ExportFolder", QString(), "Export Folder" ); m_exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); } //-------------------------------------------------------------------------------------------------- @@ -83,20 +84,3 @@ QList RicHoloLensExportToFolderUi::calculateValueOptions return options; } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicHoloLensExportToFolderUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFolder ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.h b/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.h index b93890d096..57b547ebf6 100644 --- a/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.h +++ b/ApplicationLibCode/Commands/HoloLensCommands/RicHoloLensExportToFolderUi.h @@ -41,7 +41,6 @@ public: private: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: caf::PdmPtrField m_viewForExport; diff --git a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.cpp b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.cpp index e68f524754..beda8b834f 100644 --- a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.cpp +++ b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.cpp @@ -28,6 +28,7 @@ RicSaveMultiPlotTemplateFeatureSettings::RicSaveMultiPlotTemplateFeatureSettings CAF_PDM_InitObject( "Save Summary Plot", ":/CrossSection16x16.png" ); CAF_PDM_InitFieldNoDefault( &m_filePath, "FilePath", "File Path" ); + m_filePath.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &m_name, "Name", "Name" ); CAF_PDM_InitField( &m_persistObjectNameForWells, "PersistObjectNameWells", false, "Wells" ); @@ -107,20 +108,3 @@ void RicSaveMultiPlotTemplateFeatureSettings::defineUiOrdering( QString uiConfig group->add( &m_persistObjectNameRegions ); } } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicSaveMultiPlotTemplateFeatureSettings::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_filePath ) - { - auto attr = dynamic_cast( attribute ); - if ( attr ) - { - attr->m_selectDirectory = true; - } - } -} diff --git a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.h b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.h index c470916f10..969e978231 100644 --- a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.h +++ b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSaveMultiPlotTemplateFeatureSettings.h @@ -44,7 +44,6 @@ public: private: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: caf::PdmField m_filePath; diff --git a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.cpp b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.cpp index ae3ff34f99..ae11d85980 100644 --- a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.cpp +++ b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.cpp @@ -43,6 +43,7 @@ RicSelectPlotTemplateUi::RicSelectPlotTemplateUi() CAF_PDM_InitFieldNoDefault( &m_selectedPlotTemplates, "SelectedPlotTemplates", "Plot Templates" ); m_selectedPlotTemplates.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() ); m_selectedPlotTemplates.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN ); + m_selectedPlotTemplates.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::SINGLE_SELECTION_MODE, true ); } //-------------------------------------------------------------------------------------------------- @@ -51,6 +52,7 @@ RicSelectPlotTemplateUi::RicSelectPlotTemplateUi() void RicSelectPlotTemplateUi::setMultiSelectMode( bool multiSelect ) { m_useMultiSelect = multiSelect; + m_selectedPlotTemplates.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::SINGLE_SELECTION_MODE, !multiSelect ); } //-------------------------------------------------------------------------------------------------- @@ -109,18 +111,3 @@ QList RicSelectPlotTemplateUi::calculateValueOptions( co return options; } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicSelectPlotTemplateUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( &m_selectedPlotTemplates == field ) - { - auto a = dynamic_cast( attribute ); - if ( a ) - { - a->singleSelectionMode = !m_useMultiSelect; - } - } -} diff --git a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.h b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.h index f4d467fed9..17141f1588 100644 --- a/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.h +++ b/ApplicationLibCode/Commands/PlotTemplateCommands/RicSelectPlotTemplateUi.h @@ -46,9 +46,6 @@ public: private: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; - -private: caf::PdmPtrArrayField m_selectedPlotTemplates; bool m_useMultiSelect; }; diff --git a/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.cpp b/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.cpp index 49b2dbec12..616e5b303b 100644 --- a/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.cpp +++ b/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.cpp @@ -34,6 +34,7 @@ RicCreateEnsembleSurfaceUi::RicCreateEnsembleSurfaceUi() CAF_PDM_InitObject( "Export Multiple Surfaces" ); CAF_PDM_InitFieldNoDefault( &m_layers, "Layers", "Layers" ); + m_layers.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::HEIGHT_HINT, 280 ); CAF_PDM_InitField( &m_autoCreateEnsembleSurfaces, "AutoCreateEnsembleSurfaces", false, "Create Ensemble Surfaces From Exported Files" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_autoCreateEnsembleSurfaces ); @@ -67,21 +68,6 @@ void RicCreateEnsembleSurfaceUi::setLayersMinMax( int minLayer, int maxLayer ) m_maxLayer = maxLayer; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicCreateEnsembleSurfaceUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_layers ) - { - auto myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->heightHint = 280; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.h b/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.h index 371362990e..4a5fba134d 100644 --- a/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.h +++ b/ApplicationLibCode/Commands/RicCreateEnsembleSurfaceUi.h @@ -45,7 +45,6 @@ public: bool autoCreateEnsembleSurfaces() const; protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; diff --git a/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.cpp b/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.cpp index ce0428e60d..fd0bf69682 100644 --- a/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.cpp +++ b/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.cpp @@ -63,6 +63,8 @@ RicCreateEnsembleWellLogUi::RicCreateEnsembleWellLogUi() CAF_PDM_InitFieldNoDefault( &m_wellPathSource, "WellPathSource", "Well Path Source" ); CAF_PDM_InitFieldNoDefault( &m_wellPath, "WellPath", "Well Path" ); CAF_PDM_InitFieldNoDefault( &m_wellFilePath, "WellFilePath", "Well File Path" ); + m_wellFilePath.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::FILE_SELECTION_FILTER, + QString( "Well Path Files(*.dev);;All Files (*.*)" ) ); CAF_PDM_InitFieldNoDefault( &m_selectedKeywords, "SelectedProperties", "Selected Properties" ); m_tabNames << "Well" << "Properties"; @@ -153,21 +155,6 @@ QList RicCreateEnsembleWellLogUi::calculateValueOptions( return options; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicCreateEnsembleWellLogUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_wellFilePath ) - { - auto* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_fileSelectionFilter = "Well Path Files(*.dev);;All Files (*.*)"; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.h b/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.h index 2b72100491..ee5d29fde1 100644 --- a/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.h +++ b/ApplicationLibCode/Commands/RicCreateEnsembleWellLogUi.h @@ -71,7 +71,6 @@ protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; std::vector validResultCategories() const; diff --git a/ApplicationLibCode/Commands/RicExportContourMapToTextUi.cpp b/ApplicationLibCode/Commands/RicExportContourMapToTextUi.cpp index b9b9d28971..0e5dcb12a2 100644 --- a/ApplicationLibCode/Commands/RicExportContourMapToTextUi.cpp +++ b/ApplicationLibCode/Commands/RicExportContourMapToTextUi.cpp @@ -13,6 +13,7 @@ RicExportContourMapToTextUi::RicExportContourMapToTextUi() CAF_PDM_InitField( &m_exportFileName, "ExportFileName", QString(), "Export File Name" ); m_exportFileName.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFileName.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_SAVE_FILE_NAME, true ); CAF_PDM_InitField( &m_exportLocalCoordinates, "ExportLocalCoordinates", false, "Export Local Coordinates" ); CAF_PDM_InitField( &m_undefinedValueLabel, "UndefinedValueLabel", QString( "NaN" ), "Undefined Value Label" ); @@ -58,20 +59,3 @@ bool RicExportContourMapToTextUi::excludeUndefinedValues() const { return m_excludeUndefinedValues; } - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportContourMapToTextUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFileName ) - { - caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast( attribute ); - if ( myAttr ) - { - myAttr->m_selectSaveFileName = true; - } - } -} diff --git a/ApplicationLibCode/Commands/RicExportContourMapToTextUi.h b/ApplicationLibCode/Commands/RicExportContourMapToTextUi.h index 9e9250528c..63576b7e5c 100644 --- a/ApplicationLibCode/Commands/RicExportContourMapToTextUi.h +++ b/ApplicationLibCode/Commands/RicExportContourMapToTextUi.h @@ -37,9 +37,6 @@ public: QString undefinedValueLabel() const; bool excludeUndefinedValues() const; -protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; - private: caf::PdmField m_exportFileName; caf::PdmField m_exportLocalCoordinates; diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.cpp index 8fcae276b6..2493c3c729 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.cpp @@ -185,6 +185,9 @@ RicPasteAsciiDataToSummaryPlotFeatureUi::RicPasteAsciiDataToSummaryPlotFeatureUi CAF_PDM_InitFieldNoDefault( &m_timeSeriesColumnName, "TimeColumnName", "Selected Time Column" ); CAF_PDM_InitFieldNoDefault( &m_previewText, "PreviewText", "Preview Text" ); + m_previewText.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::WRAP_MODE, static_cast( caf::PdmUiTextEditor::NoWrap ) ); + m_previewText.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::FONT, QFont( "Monospace", 7 ) ); + m_previewText.uiCapability()->setAttribute( caf::PdmUiTextEditor::Keys::TEXT_MODE, static_cast( caf::PdmUiTextEditor::HTML ) ); m_previewText.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() ); m_previewText.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN ); m_previewText.uiCapability()->setUiReadOnly( true ); @@ -445,27 +448,6 @@ QList RicPasteAsciiDataToSummaryPlotFeatureUi::calculate return options; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicPasteAsciiDataToSummaryPlotFeatureUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_previewText ) - { - caf::PdmUiTextEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->wrapMode = caf::PdmUiTextEditorAttribute::NoWrap; - - QFont font( "Monospace", 7 ); - attrib->font = font; - attrib->textMode = caf::PdmUiTextEditorAttribute::HTML; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.h b/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.h index 761465dafd..dbaa78b21f 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.h +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicPasteAsciiDataToSummaryPlotFeatureUi.h @@ -107,7 +107,6 @@ public: protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; - 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; private: diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp index 2dc29a661e..9e0015eb72 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp @@ -87,6 +87,7 @@ RicSummaryPlotEditorUi::RicSummaryPlotEditorUi() , m_closeButtonPressed( false ) { CAF_PDM_InitFieldNoDefault( &m_targetPlot, "TargetPlot", "Target Plot" ); + m_targetPlot.uiCapability()->setAttribute( caf::PdmUiComboBoxEditor::Keys::ADJUST_WIDTH_TO_CONTENTS, true ); m_previewPlot = std::make_unique(); m_previewPlot->setLegendPosition( RiuPlotWidget::Legend::TOP ); @@ -490,21 +491,6 @@ void RicSummaryPlotEditorUi::onSummaryDataLoaded( const caf::SignalEmitter* emit m_previewPlot->scheduleReplotIfVisible(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicSummaryPlotEditorUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( &m_targetPlot == field ) - { - caf::PdmUiComboBoxEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->adjustWidthToContents = true; - } - } -} - //-------------------------------------------------------------------------------------------------- /// Populate curve creator from the given curve collection //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h index 28f7caa7af..066e6de342 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h @@ -77,7 +77,6 @@ private: void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void syncPreviewCurvesFromUiSelection(); diff --git a/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.cpp b/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.cpp index 1efbfe3a7c..2a52b41e70 100644 --- a/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.cpp +++ b/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.cpp @@ -45,6 +45,7 @@ RicExportSurfaceToGriUi::RicExportSurfaceToGriUi() CAF_PDM_InitFieldNoDefault( &m_exportFolder, "ExportFolder", "Export Folder" ); m_exportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_exportFolder.uiCapability()->setAttribute( caf::PdmUiFilePathEditor::Keys::SELECT_DIRECTORY, true ); CAF_PDM_InitFieldNoDefault( &m_selectedProperties, "SelectedProperties", "Export Values" ); m_selectedProperties.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() ); @@ -137,20 +138,6 @@ RicExportSurfaceToGriUi::ExportFormat RicExportSurfaceToGriUi::exportFormat() co return m_exportFormat(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicExportSurfaceToGriUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - if ( field == &m_exportFolder ) - { - if ( auto* attr = dynamic_cast( attribute ) ) - { - attr->m_selectDirectory = true; - } - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.h b/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.h index a4fd15408b..df5dfd0ebe 100644 --- a/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.h +++ b/ApplicationLibCode/Commands/SurfaceCommands/RicExportSurfaceToGriUi.h @@ -55,7 +55,6 @@ public: std::vector selectedProperties() const; protected: - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; private: diff --git a/ApplicationLibCode/FileInterface/RifEclipseSummaryAddress.cpp b/ApplicationLibCode/FileInterface/RifEclipseSummaryAddress.cpp index 97ff53a9d5..a5628caed8 100644 --- a/ApplicationLibCode/FileInterface/RifEclipseSummaryAddress.cpp +++ b/ApplicationLibCode/FileInterface/RifEclipseSummaryAddress.cpp @@ -1264,7 +1264,7 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::fromTokens( const std::vector break; case SummaryCategory::SUMMARY_WELL_CONNECTION_LGR: - if ( tokens.size() > 3 ) + if ( tokens.size() > 2 ) { const auto& token3 = tokens[3]; const auto ijk = RiaStdStringTools::splitString( token3, ',' ); diff --git a/ApplicationLibCode/UnitTests/RicMswBranchBuilder-Test.cpp b/ApplicationLibCode/UnitTests/RicMswBranchBuilder-Test.cpp index 8be620e83a..597064b852 100644 --- a/ApplicationLibCode/UnitTests/RicMswBranchBuilder-Test.cpp +++ b/ApplicationLibCode/UnitTests/RicMswBranchBuilder-Test.cpp @@ -160,34 +160,30 @@ TEST( RicMswBranchBuilder, PlaceSegmentNodes_NoRuleKeepsCellCentres ) { const auto candidates = centres( exampleCells ); expectNodes( candidates, RicMswTableDataTools::placeSegmentNodes( 0.0, candidates, {} ) ); - expectNodes( candidates, - RicMswTableDataTools::placeSegmentNodes( 0.0, candidates, { { 0.0, 60.0, std::nullopt, std::nullopt, std::nullopt } } ) ); + expectNodes( candidates, RicMswTableDataTools::placeSegmentNodes( 0.0, candidates, { { 0.0, 60.0, std::nullopt, std::nullopt } } ) ); } TEST( RicMswBranchBuilder, PlaceSegmentNodes_MinLength ) { - const auto nodes = - RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 12.0, std::nullopt, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 12.0, std::nullopt } } ); expectNodes( { 12.0, 31.5, 46.5 }, nodes ); } TEST( RicMswBranchBuilder, PlaceSegmentNodes_MaxLength ) { - const auto nodes = - RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, std::nullopt, 10.0, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, std::nullopt, 10.0 } } ); expectNodes( { 5.0, 12.0, 22.0, 31.5, 39.0, 46.5 }, nodes ); } TEST( RicMswBranchBuilder, PlaceSegmentNodes_MaxLengthInsertsSeveralNodes ) { - const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, { 5.0, 35.0 }, { { 0.0, 60.0, std::nullopt, 10.0, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, { 5.0, 35.0 }, { { 0.0, 60.0, std::nullopt, 10.0 } } ); expectNodes( { 5.0, 15.0, 25.0, 35.0 }, nodes ); } TEST( RicMswBranchBuilder, PlaceSegmentNodes_MinLengthLargerThanIntervalKeepsOneNode ) { - const auto nodes = - RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 100.0, std::nullopt, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 100.0, std::nullopt } } ); expectNodes( { 46.5 }, nodes ); } @@ -197,7 +193,7 @@ TEST( RicMswBranchBuilder, PlaceSegmentNodes_IntervalStartingMidCell ) const std::vector> pieces = { { 0.0, 10.0 }, { 10.0, 14.0 }, { 14.0, 20.0 }, { 20.0, 30.0 }, { 30.0, 33.0 }, { 33.0, 60.0 } }; - const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( pieces ), { { 20.0, 60.0, 12.0, std::nullopt, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( pieces ), { { 20.0, 60.0, 12.0, std::nullopt } } ); // The spacing inside the interval is measured from the last node before it, 17 expectNodes( { 5.0, 12.0, 17.0, 31.5, 46.5 }, nodes ); @@ -205,8 +201,7 @@ TEST( RicMswBranchBuilder, PlaceSegmentNodes_IntervalStartingMidCell ) TEST( RicMswBranchBuilder, PlaceSegmentNodes_BackToBackIntervals ) { - const std::vector intervals = { { 0.0, 14.0, 12.0, std::nullopt, std::nullopt }, - { 14.0, 60.0, std::nullopt, 10.0, std::nullopt } }; + const std::vector intervals = { { 0.0, 14.0, 12.0, std::nullopt }, { 14.0, 60.0, std::nullopt, 10.0 } }; const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), intervals ); expectNodes( { 12.0, 22.0, 31.5, 39.0, 46.5 }, nodes ); @@ -215,14 +210,13 @@ TEST( RicMswBranchBuilder, PlaceSegmentNodes_BackToBackIntervals ) TEST( RicMswBranchBuilder, PlaceSegmentNodes_MeasuredFromOutletNode ) { // The outlet node at 100 is the heel of the branch, the first candidate is too close to it - const auto nodes = - RicMswTableDataTools::placeSegmentNodes( 100.0, { 105.0, 115.0, 125.0 }, { { 100.0, 130.0, 12.0, std::nullopt, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 100.0, { 105.0, 115.0, 125.0 }, { { 100.0, 130.0, 12.0, std::nullopt } } ); expectNodes( { 115.0 }, nodes ); } TEST( RicMswBranchBuilder, PlaceSegmentNodes_MinAndMaxLengthCombined ) { - const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 12.0, 15.0, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, centres( exampleCells ), { { 0.0, 60.0, 12.0, 15.0 } } ); expectNodes( { 12.0, 21.75, 31.5, 46.5 }, nodes ); } @@ -244,7 +238,7 @@ TEST( RicMswBranchBuilder, PlaceSegmentNodes_FixedLength ) TEST( RicMswBranchBuilder, PlaceSegmentNodes_MaxLengthNotBeforeIntervalStart ) { // Heel at 0, interval [1000,1100], first candidate at 1050: no nodes are added before the interval - const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, { 1050.0 }, { { 1000.0, 1100.0, std::nullopt, 25.0, std::nullopt } } ); + const auto nodes = RicMswTableDataTools::placeSegmentNodes( 0.0, { 1050.0 }, { { 1000.0, 1100.0, std::nullopt, 25.0 } } ); expectNodes( { 1025.0, 1050.0 }, nodes ); } diff --git a/ApplicationLibCode/UnitTests/RifEclipseSummaryAddress-Test.cpp b/ApplicationLibCode/UnitTests/RifEclipseSummaryAddress-Test.cpp index 1dde7ae60c..6eac97679c 100644 --- a/ApplicationLibCode/UnitTests/RifEclipseSummaryAddress-Test.cpp +++ b/ApplicationLibCode/UnitTests/RifEclipseSummaryAddress-Test.cpp @@ -188,20 +188,6 @@ TEST( RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellCompletionLgr EXPECT_FALSE( addr.isErrorResult() ); } -TEST( RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellCompletionLgr_Lcgfru ) -{ - auto addr = RifEclipseSummaryAddress::fromEclipseTextAddress( "LCGFRU:LGR1:B-1H:11,12,13" ); - - EXPECT_TRUE( addr.isValid() ); - EXPECT_EQ( RifEclipseSummaryAddressDefines::SummaryCategory::SUMMARY_WELL_CONNECTION_LGR, addr.category() ); - EXPECT_EQ( "LGR1", addr.lgrName() ); - EXPECT_EQ( "B-1H", addr.wellName() ); - EXPECT_EQ( 13, addr.cellK() ); - - // Too few tokens must not read out of bounds - EXPECT_FALSE( RifEclipseSummaryAddress::fromEclipseTextAddress( "LCGFRU:LGR1:B-1H" ).isValid() ); -} - TEST( RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellSegment ) { std::string addrString = "SOFR:B-5H:32"; diff --git a/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.cpp b/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.cpp index facfcb6875..c4e6dfcd14 100644 --- a/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.cpp +++ b/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.cpp @@ -306,11 +306,15 @@ RiuSummaryVectorSelectionUi::RiuSummaryVectorSelectionUi() m_selectedSummaryCategories.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() ); m_selectedSummaryCategories.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN ); + m_selectedSummaryCategories.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::SHOW_TEXT_FILTER, false ); + m_selectedSummaryCategories.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::SHOW_TOGGLE_ALL_CHECKBOX, false ); + m_selectedSummaryCategories.uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::CURRENT_INDEX_FIELD_HANDLE, + &m_currentSummaryCategory ); m_currentSummaryCategory.uiCapability()->setUiHidden( true ); - m_multiSelectionMode = false; - m_hideEnsembles = false; - m_hideSummaryCases = false; + setMultiSelectionMode( false ); + m_hideEnsembles = false; + m_hideSummaryCases = false; m_hideDifferenceVectors = false; m_hideHistoryVectors = false; @@ -462,6 +466,20 @@ std::vector RiuSummaryVectorSelectionUi::selection() void RiuSummaryVectorSelectionUi::setMultiSelectionMode( bool multiSelectionMode ) { m_multiSelectionMode = multiSelectionMode; + + // All tree selection editors are set in specified selection mode + auto setSingleSelectionMode = [this]( caf::PdmFieldHandle* field ) + { field->uiCapability()->setAttribute( caf::PdmUiTreeSelectionEditor::Keys::SINGLE_SELECTION_MODE, !m_multiSelectionMode ); }; + + for ( const auto& itemTypes : m_identifierFieldsMap ) + { + for ( const auto& itemInputType : itemTypes.second ) + { + setSingleSelectionMode( itemInputType->pdmField() ); + } + } + setSingleSelectionMode( &m_selectedSources ); + setSingleSelectionMode( &m_selectedSummaryCategories ); } //-------------------------------------------------------------------------------------------------- @@ -1340,28 +1358,6 @@ void RiuSummaryVectorSelectionUi::buildAddressListForCategoryRecursively( } } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiuSummaryVectorSelectionUi::defineEditorAttribute( const caf::PdmFieldHandle* field, - QString uiConfigName, - caf::PdmUiEditorAttribute* attribute ) -{ - caf::PdmUiTreeSelectionEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - if ( &m_selectedSummaryCategories == field ) - { - attrib->currentIndexFieldHandle = &m_currentSummaryCategory; - attrib->showTextFilter = false; - attrib->showToggleAllCheckbox = false; - } - - // All tree selection editors are set in specified selection mode - attrib->singleSelectionMode = !m_multiSelectionMode; - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.h b/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.h index 8060ae4747..44f4ca9bd2 100644 --- a/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.h +++ b/ApplicationLibCode/UserInterface/RiuSummaryVectorSelectionUi.h @@ -79,7 +79,6 @@ private: void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; std::set findPossibleSummaryAddresses( const std::vector& selectedSources, const SummaryIdentifierAndField* identifierAndField ) const; diff --git a/ApplicationLibCode/UserInterface/RiuTools.cpp b/ApplicationLibCode/UserInterface/RiuTools.cpp index 5298f35fd0..33ffe06094 100644 --- a/ApplicationLibCode/UserInterface/RiuTools.cpp +++ b/ApplicationLibCode/UserInterface/RiuTools.cpp @@ -18,7 +18,9 @@ #include "RiuTools.h" +#include "cafPdmFieldHandle.h" #include "cafPdmUiComboBoxEditor.h" +#include "cafPdmUiFieldHandle.h" #include #include @@ -54,12 +56,10 @@ void RiuTools::enableAllActionsOnShow( QObject* object, QMenu* menu ) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RiuTools::enableUpDownArrowsForComboBox( caf::PdmUiEditorAttribute* attribute ) +void RiuTools::enableUpDownArrowsForComboBox( caf::PdmFieldHandle* field ) { - if ( auto attrib = dynamic_cast( attribute ) ) - { - attrib->nextIcon = QIcon( ":/ComboBoxDown.svg" ); - attrib->previousIcon = QIcon( ":/ComboBoxUp.svg" ); - attrib->showPreviousAndNextButtons = true; - } + auto* uiCapability = field->uiCapability(); + uiCapability->setAttribute( caf::PdmUiComboBoxEditor::Keys::NEXT_ICON, QIcon( ":/ComboBoxDown.svg" ) ); + uiCapability->setAttribute( caf::PdmUiComboBoxEditor::Keys::PREVIOUS_ICON, QIcon( ":/ComboBoxUp.svg" ) ); + uiCapability->setAttribute( caf::PdmUiComboBoxEditor::Keys::SHOW_PREVIOUS_AND_NEXT_BUTTONS, true ); } diff --git a/ApplicationLibCode/UserInterface/RiuTools.h b/ApplicationLibCode/UserInterface/RiuTools.h index b4b6909322..585fc09160 100644 --- a/ApplicationLibCode/UserInterface/RiuTools.h +++ b/ApplicationLibCode/UserInterface/RiuTools.h @@ -25,12 +25,12 @@ class QObject; namespace caf { -class PdmUiEditorAttribute; +class PdmFieldHandle; } namespace RiuTools { Qt::WindowFlags defaultDialogFlags(); void enableAllActionsOnShow( QObject* object, QMenu* menu ); -void enableUpDownArrowsForComboBox( caf::PdmUiEditorAttribute* attribute ); +void enableUpDownArrowsForComboBox( caf::PdmFieldHandle* field ); } // end namespace RiuTools