#1340 AppFwk : Improve how defineUiOrdering handles remaining fields

This commit is contained in:
Magne Sjaastad
2017-03-21 13:47:53 +01:00
parent 98bb97ea34
commit df3ef7106d
17 changed files with 29 additions and 22 deletions

View File

@@ -37,9 +37,12 @@ PdmUiObjectHandle* uiObj(PdmObjectHandle* obj)
//--------------------------------------------------------------------------------------------------
void PdmUiObjectHandle::uiOrdering(QString uiConfigName, PdmUiOrdering& uiOrdering)
{
#if 1
// Restore state for includeRemainingFields, as this flag
// can be changed in defineUiOrdering()
bool includeRemaining_originalState = uiOrdering.includeRemainingFields();
this->defineUiOrdering(uiConfigName, uiOrdering);
if (!uiOrdering.forgetRemainingFields())
if (uiOrdering.includeRemainingFields())
{
// Add the remaining Fields To UiConfig
std::vector<PdmFieldHandle*> fields;
@@ -53,7 +56,11 @@ void PdmUiObjectHandle::uiOrdering(QString uiConfigName, PdmUiOrdering& uiOrderi
}
}
}
#endif
// Restore incoming value
uiOrdering.skipRemainingFields(!includeRemaining_originalState);
CAF_ASSERT(includeRemaining_originalState == uiOrdering.includeRemainingFields());
}
//--------------------------------------------------------------------------------------------------

View File

@@ -55,7 +55,7 @@ class PdmObjectHandle;
class PdmUiOrdering
{
public:
PdmUiOrdering(): m_forgetRemainingFields(false) { };
PdmUiOrdering(): m_skipRemainingFields(false) { };
virtual ~PdmUiOrdering();
PdmUiOrdering(const PdmUiOrdering&) = delete;
@@ -68,8 +68,8 @@ public:
void add(const PdmFieldHandle* field);
void add(const PdmObjectHandle* obj);
bool forgetRemainingFields() const { return m_forgetRemainingFields; }
void setForgetRemainingFields(bool val) { m_forgetRemainingFields = val; }
bool includeRemainingFields() const { return !m_skipRemainingFields; }
void skipRemainingFields(bool val) { m_skipRemainingFields = val; }
const std::vector<PdmUiItem*>& uiItems() const { return m_ordering; }
bool contains(const PdmUiItem* item) const;
@@ -77,7 +77,7 @@ public:
private:
std::vector<PdmUiItem*> m_ordering; ///< The order of groups and fields
std::vector<PdmUiGroup*> m_createdGroups; ///< Owned PdmUiGroups, for mem management
bool m_forgetRemainingFields;
bool m_skipRemainingFields;
};
//==================================================================================================