From 24700198fb66e30042bd8feb4a8aa55bc2fabb39 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 28 May 2026 10:55:35 +0200 Subject: [PATCH] #14069 Indicate grid ensembles with individual grids via info tag and tooltip --- .../RimReservoirGridEnsemble.cpp | 30 +++++++++++++++++++ .../RimReservoirGridEnsemble.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.cpp b/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.cpp index bb3faf85d8..9d9524f0e7 100644 --- a/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.cpp @@ -46,8 +46,10 @@ #include "RimWellTargetMapping.h" #include "cafCmdFeatureMenuBuilder.h" +#include "cafIconProvider.h" #include "cafPdmFieldScriptingCapability.h" #include "cafPdmObjectScriptingCapability.h" +#include "cafPdmUiTreeAttributes.h" #include "cafProgressInfo.h" #include "RigCaseCellResultsData.h" @@ -680,6 +682,7 @@ void RimReservoirGridEnsemble::fieldChangedByUi( const caf::PdmFieldHandle* chan { if ( changedField == &m_autoDetectGridType || changedField == &m_gridMode ) { + updateGridModeToolTip(); updateStatisticsVisibility(); updateConnectedEditors(); } @@ -864,10 +867,37 @@ void RimReservoirGridEnsemble::loadGridDataFromFiles() // loadGridsInIndividualMode(); } + updateGridModeToolTip(); updateStatisticsVisibility(); updateConnectedEditors(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimReservoirGridEnsemble::updateGridModeToolTip() +{ + const bool individualGrids = ( gridMode() == GridModeType::INDIVIDUAL_GRIDS ); + + uiCapability()->setUiToolTip( individualGrids ? QString( "This ensemble has grids with varying number of K layers." ) : QString() ); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimReservoirGridEnsemble::defineObjectEditorAttribute( QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) +{ + if ( auto* treeItemAttribute = dynamic_cast( attribute ) ) + { + if ( gridMode() == GridModeType::INDIVIDUAL_GRIDS ) + { + auto tag = caf::PdmUiTreeViewItemAttribute::createTag(); + tag->icon = caf::IconProvider( ":/info.png" ); + treeItemAttribute->tags.push_back( std::move( tag ) ); + } + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.h b/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.h index 1018f0dc0f..93cf7509c7 100644 --- a/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.h +++ b/ApplicationLibCode/ProjectDataModel/RimReservoirGridEnsemble.h @@ -122,6 +122,7 @@ public: protected: void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; + void defineObjectEditorAttribute( QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void createDerivedObjects() override; void initAfterRead() override; @@ -139,6 +140,7 @@ private: bool detectGridDimensionEquality(); void loadGridsInSharedMode(); void loadGridsInIndividualMode(); + void updateGridModeToolTip(); private: // File set reference