mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-29 00:20:16 -05:00
CellFilters: Mirror source filter's name in the per-view wrapper
RimDataFilterInView previously copied the source filter's name once, in setSourceFilter() and initAfterRead() via syncNameFromSource(). That left the wrapper showing the default "Combined Filter" when the source was renamed after the wrapper was created — typical for the Python add_combined_filter(name=...) flow, where the wrapper is constructed during addFilter() before the user-supplied name reaches the source. Replace the wrapper's reliance on its inherited m_name field for display with a caf::PdmProxyValueField<QString> that delegates the read to m_sourceFilter()->name() and the write to setName(). Override userDescriptionField() so the PDM tree label and property panel route through the proxy — both directions of rename now propagate. Matches the m_nameProxy pattern already established in RimCellFilter. The inherited m_name is no longer the display source of truth but is left in place so RimNamedObject's serialization stays unchanged.
This commit is contained in:
1 parent
eb70d32eb1
commit
74fde9edef
2 files changed
+27
-9
No files matched your search
@@ -36,7 +36,14 @@ RimDataFilterInView::RimDataFilterInView()
|
||||
CAF_PDM_InitFieldNoDefault( &m_sourceFilter, "SourceFilter", "Source Filter" );
|
||||
m_sourceFilter.uiCapability()->setUiHidden( true );
|
||||
|
||||
setCheckState( true );
|
||||
// Proxy delegates the wrapper's user-visible name to the source filter in both directions.
|
||||
// The inherited m_name (from RimNamedObject) is no longer the source of truth for display.
|
||||
CAF_PDM_InitFieldNoDefault( &m_displayName, "DisplayName", "Name" );
|
||||
m_displayName.registerGetMethod( this, &RimDataFilterInView::sourceName );
|
||||
m_displayName.registerSetMethod( this, &RimDataFilterInView::setSourceName );
|
||||
m_displayName.xmlCapability()->disableIO();
|
||||
|
||||
setCheckState( false );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -58,7 +65,7 @@ RimCellFilter* RimDataFilterInView::sourceFilter() const
|
||||
void RimDataFilterInView::setSourceFilter( RimCellFilter* sourceFilter )
|
||||
{
|
||||
m_sourceFilter = sourceFilter;
|
||||
syncNameFromSource();
|
||||
updateConnectedEditors();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -102,7 +109,7 @@ void RimDataFilterInView::fieldChangedByUi( const caf::PdmFieldHandle* changedFi
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDataFilterInView::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
uiOrdering.add( nameField() );
|
||||
uiOrdering.add( &m_displayName );
|
||||
uiOrdering.skipRemainingFields( true );
|
||||
}
|
||||
|
||||
@@ -117,15 +124,23 @@ void RimDataFilterInView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOr
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDataFilterInView::initAfterRead()
|
||||
caf::PdmFieldHandle* RimDataFilterInView::userDescriptionField()
|
||||
{
|
||||
syncNameFromSource();
|
||||
return &m_displayName;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDataFilterInView::syncNameFromSource()
|
||||
QString RimDataFilterInView::sourceName() const
|
||||
{
|
||||
if ( m_sourceFilter() ) setName( m_sourceFilter()->name() );
|
||||
return m_sourceFilter() ? m_sourceFilter()->name() : QString();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDataFilterInView::setSourceName( const QString& name )
|
||||
{
|
||||
if ( m_sourceFilter() ) m_sourceFilter()->setName( name );
|
||||
}
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "RimCheckableNamedObject.h"
|
||||
|
||||
#include "cafPdmProxyValueField.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
#include "cvfArray.h"
|
||||
@@ -51,10 +52,12 @@ protected:
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
||||
void initAfterRead() override;
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
|
||||
private:
|
||||
void syncNameFromSource();
|
||||
QString sourceName() const;
|
||||
void setSourceName( const QString& name );
|
||||
|
||||
caf::PdmPtrField<RimCellFilter*> m_sourceFilter;
|
||||
caf::PdmProxyValueField<QString> m_displayName;
|
||||
};
|
||||
Reference in new issue
Block a user