Use slider for property filter range

p4#: 19096
This commit is contained in:
Magne Sjaastad 2012-10-09 16:19:49 +02:00
parent a4ff9bd41c
commit 5f9de8644e
2 changed files with 36 additions and 1 deletions

View File

@ -24,6 +24,7 @@
#include "RigGridBase.h"
#include "RigReservoirCellResults.h"
#include "cafPdmUiDoubleSliderEditor.h"
@ -65,9 +66,15 @@ RimCellPropertyFilter::RimCellPropertyFilter()
resultDefinition.setUiHidden(true);
CAF_PDM_InitField(&lowerBound, "LowerBound", 0.0, "Min", "", "", "");
lowerBound.setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&upperBound, "UpperBound", 0.0, "Max", "", "", "");
upperBound.setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
updateIconState();
m_minimumResultValue = cvf::UNDEFINED_DOUBLE;
m_maximumResultValue = cvf::UNDEFINED_DOUBLE;
}
//--------------------------------------------------------------------------------------------------
@ -148,6 +155,9 @@ void RimCellPropertyFilter::setDefaultValues()
upperBound = max;
upperBound.setUiName(QString("Max (%1)").arg(max));
m_maximumResultValue = max;
m_minimumResultValue = min;
}
//--------------------------------------------------------------------------------------------------
@ -173,3 +183,26 @@ void RimCellPropertyFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
uiOrdering.add(&filterMode);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCellPropertyFilter::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
{
if (m_minimumResultValue == cvf::UNDEFINED_DOUBLE || m_maximumResultValue == cvf::UNDEFINED_DOUBLE)
{
return;
}
if (field == &lowerBound || field == &upperBound)
{
caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>(attribute);
if (!myAttr)
{
return;
}
myAttr->m_minimum = m_minimumResultValue;
myAttr->m_maximum = m_maximumResultValue;
}
}

View File

@ -72,10 +72,12 @@ public:
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly );
protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) const;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) const;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
private:
RimCellPropertyFilterCollection* m_parentContainer;
double m_minimumResultValue, m_maximumResultValue;
};