mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-14 09:22:13 -05:00
AppFwk : Add multiselect field of AppEnum including highlight field
This commit is contained in:
1 parent
f45d065ac2
commit
5ddb796059
1 file changed
+35
-1
@@ -225,6 +225,11 @@ public:
|
|||||||
m_proxyEnumMember = T2;
|
m_proxyEnumMember = T2;
|
||||||
|
|
||||||
m_testEnumField.capability<caf::PdmUiFieldHandle>()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
m_testEnumField.capability<caf::PdmUiFieldHandle>()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_multipleAppEnum, "MultipleAppEnumValue", "MultipleAppEnumValue", "", "", "");
|
||||||
|
m_multipleAppEnum.capability<caf::PdmUiFieldHandle>()->setUiEditorTypeName(caf::PdmUiTreeSelectionEditor::uiEditorTypeName());
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_highlightedEnum, "HighlightedEnum", "HighlightedEnum", "", "", "");
|
||||||
|
m_highlightedEnum.uiCapability()->setUiHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
caf::PdmField<double> m_doubleField;
|
caf::PdmField<double> m_doubleField;
|
||||||
@@ -239,6 +244,9 @@ public:
|
|||||||
TestEnumType m_proxyEnumMember;
|
TestEnumType m_proxyEnumMember;
|
||||||
|
|
||||||
|
|
||||||
|
// vector of app enum
|
||||||
|
caf::PdmField< std::vector< caf::AppEnum<TestEnumType> > > m_multipleAppEnum;
|
||||||
|
caf::PdmField< caf::AppEnum<TestEnumType> > m_highlightedEnum;
|
||||||
|
|
||||||
caf::PdmField<bool> m_toggleField;
|
caf::PdmField<bool> m_toggleField;
|
||||||
virtual caf::PdmFieldHandle* objectToggleField()
|
virtual caf::PdmFieldHandle* objectToggleField()
|
||||||
@@ -252,13 +260,16 @@ public:
|
|||||||
{
|
{
|
||||||
std::cout << "Toggle Field changed" << std::endl;
|
std::cout << "Toggle Field changed" << std::endl;
|
||||||
}
|
}
|
||||||
|
else if (changedField == &m_highlightedEnum)
|
||||||
|
{
|
||||||
|
std::cout << "Highlight value " << m_highlightedEnum() << std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
||||||
{
|
{
|
||||||
QList<caf::PdmOptionItemInfo> options;
|
QList<caf::PdmOptionItemInfo> options;
|
||||||
|
|
||||||
|
|
||||||
if (&m_ptrField == fieldNeedingOptions)
|
if (&m_ptrField == fieldNeedingOptions)
|
||||||
{
|
{
|
||||||
caf::PdmFieldHandle* field;
|
caf::PdmFieldHandle* field;
|
||||||
@@ -287,6 +298,13 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (&m_multipleAppEnum == fieldNeedingOptions)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < caf::AppEnum<TestEnumType>::size(); ++i)
|
||||||
|
{
|
||||||
|
options.push_back(caf::PdmOptionItemInfo(caf::AppEnum<TestEnumType>::uiTextFromIndex(i), caf::AppEnum<TestEnumType>::fromIndex(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (useOptionsOnly) *useOptionsOnly = true;
|
if (useOptionsOnly) *useOptionsOnly = true;
|
||||||
|
|
||||||
@@ -301,6 +319,22 @@ public:
|
|||||||
return &m_textField;
|
return &m_textField;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override
|
||||||
|
{
|
||||||
|
if (field == &m_multipleAppEnum)
|
||||||
|
{
|
||||||
|
caf::PdmUiTreeSelectionEditorAttribute* attr = dynamic_cast<caf::PdmUiTreeSelectionEditorAttribute*>(attribute);
|
||||||
|
if (attr)
|
||||||
|
{
|
||||||
|
attr->highLightField = m_highlightedEnum.uiCapability();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(SmallDemoPdmObjectA, "SmallDemoPdmObjectA");
|
CAF_PDM_SOURCE_INIT(SmallDemoPdmObjectA, "SmallDemoPdmObjectA");
|
||||||
|
|||||||
Reference in new issue
Block a user