#3222 AppFwk : Improve robustness/maintainability

This commit is contained in:
Magne Sjaastad 2018-08-16 21:42:52 +02:00
parent 37369cb0fb
commit cd63332514
7 changed files with 313 additions and 132 deletions

View File

@ -7,20 +7,47 @@
namespace caf
{
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmUiFieldHandle::PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership):
m_isAutoAddingOptionFromValue(true)
PdmUiFieldHandle::PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership)
: m_isAutoAddingOptionFromValue(true)
{
m_owner = owner;
m_owner = owner;
owner->addCapability(this, giveOwnership);
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmUiFieldHandle::~PdmUiFieldHandle() {}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* PdmUiFieldHandle::fieldHandle()
{
return m_owner;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QVariant PdmUiFieldHandle::uiValue() const
{
return QVariant();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> PdmUiFieldHandle::valueOptions(bool* useOptionsOnly) const
{
return QList<PdmOptionItemInfo>();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiFieldHandle::notifyFieldChanged(const QVariant& oldFieldValue, const QVariant& newFieldValue)
{
@ -45,6 +72,27 @@ void PdmUiFieldHandle::notifyFieldChanged(const QVariant& oldFieldValue, const Q
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiFieldHandle::isAutoAddingOptionFromValue() const
{
return m_isAutoAddingOptionFromValue;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiFieldHandle::setAutoAddingOptionFromValue(bool isAddingValue)
{
m_isAutoAddingOptionFromValue = isAddingValue;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiFieldHandle::setValueFromUiEditor(const QVariant& uiValue) {}
//--------------------------------------------------------------------------------------------------
/// Implementation of uiCapability() defined in cafPdmFieldHandle.h
//--------------------------------------------------------------------------------------------------

View File

@ -1,43 +1,40 @@
#pragma once
#include "cafPdmUiItem.h"
#include "cafPdmFieldCapability.h"
#include "cafPdmUiFieldHandleInterface.h"
#include "cafPdmUiItem.h"
namespace caf
{
class PdmFieldHandle;
class PdmUiFieldHandle : public PdmUiItem, public PdmFieldCapability, public PdmUiFieldHandleInterface
{
public:
PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership);
virtual ~PdmUiFieldHandle() { }
virtual ~PdmUiFieldHandle();
PdmFieldHandle* fieldHandle() { return m_owner; }
PdmFieldHandle* fieldHandle();
// Generalized access methods for User interface
// The QVariant encapsulates the real value, or an index into the valueOptions
virtual QVariant uiValue() const { return QVariant(); }
virtual QList<PdmOptionItemInfo>
valueOptions(bool* useOptionsOnly) { return QList<PdmOptionItemInfo>(); }
virtual QVariant uiValue() const;
virtual QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly) const;
virtual void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant);
void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant) override;
bool isAutoAddingOptionFromValue() const { return m_isAutoAddingOptionFromValue; }
void setAutoAddingOptionFromValue(bool isAddingValue) { m_isAutoAddingOptionFromValue = isAddingValue;}
bool isAutoAddingOptionFromValue() const;
void setAutoAddingOptionFromValue(bool isAddingValue);
private:
friend class PdmUiCommandSystemProxy;
friend class CmdFieldChangeExec;
virtual void setValueFromUiEditor(const QVariant& uiValue) { }
virtual void setValueFromUiEditor(const QVariant& uiValue);
private:
PdmFieldHandle* m_owner;
bool m_isAutoAddingOptionFromValue;
PdmFieldHandle* m_owner;
bool m_isAutoAddingOptionFromValue;
};
} // End of namespace caf

View File

@ -54,7 +54,7 @@ public:
void setKeyword(const QString& keyword);
QString keyword() const;
virtual bool isUiGroup();
bool isUiGroup() override;
/// Set this group to be collapsed by default. When the user expands the group, the default no longer has any effect.
void setCollapsedByDefault(bool doCollapse);

View File

@ -34,44 +34,48 @@
//
//##################################################################################################
#include "cafPdmUiItem.h"
#include "cafPdmUiEditorHandle.h"
#include "cafPdmPtrField.h"
#include "cafPdmUiEditorHandle.h"
#include "cafPdmUiObjectEditorHandle.h"
namespace caf
{
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool isReadOnly /* = false */, QIcon anIcon /* = QIcon()*/)
: m_optionUiText(anOptionUiText),
m_value(aValue),
m_isReadOnly(isReadOnly),
m_icon(anIcon),
m_level(0)
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText,
const QVariant& aValue,
bool isReadOnly /* = false */,
QIcon anIcon /* = QIcon()*/)
: m_optionUiText(anOptionUiText)
, m_value(aValue)
, m_isReadOnly(isReadOnly)
, m_icon(anIcon)
, m_level(0)
{
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObjectHandle* obj, bool isReadOnly /*= false*/, QIcon anIcon /*= QIcon()*/)
: m_optionUiText(anOptionUiText),
m_isReadOnly(isReadOnly),
m_icon(anIcon),
m_level(0)
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText,
caf::PdmObjectHandle* obj,
bool isReadOnly /*= false*/,
QIcon anIcon /*= QIcon()*/)
: m_optionUiText(anOptionUiText)
, m_isReadOnly(isReadOnly)
, m_icon(anIcon)
, m_level(0)
{
m_value = QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(obj));
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmOptionItemInfo PdmOptionItemInfo::createHeader(const QString& anOptionUiText, bool isReadOnly /*= false*/, QIcon anIcon /*= QIcon()*/)
PdmOptionItemInfo
PdmOptionItemInfo::createHeader(const QString& anOptionUiText, bool isReadOnly /*= false*/, QIcon anIcon /*= QIcon()*/)
{
PdmOptionItemInfo header(anOptionUiText, QVariant(), isReadOnly, anIcon);
@ -79,7 +83,7 @@ PdmOptionItemInfo PdmOptionItemInfo::createHeader(const QString& anOptionUiText,
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmOptionItemInfo::setLevel(int level)
{
@ -87,7 +91,7 @@ void PdmOptionItemInfo::setLevel(int level)
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QString PdmOptionItemInfo::optionUiText() const
{
@ -95,7 +99,7 @@ const QString PdmOptionItemInfo::optionUiText() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QVariant PdmOptionItemInfo::value() const
{
@ -103,7 +107,7 @@ const QVariant PdmOptionItemInfo::value() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmOptionItemInfo::isReadOnly() const
{
@ -111,7 +115,7 @@ bool PdmOptionItemInfo::isReadOnly() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmOptionItemInfo::isHeading() const
{
@ -119,7 +123,7 @@ bool PdmOptionItemInfo::isHeading() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QIcon PdmOptionItemInfo::icon() const
{
@ -127,7 +131,7 @@ const QIcon PdmOptionItemInfo::icon() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
int PdmOptionItemInfo::level() const
{
@ -135,13 +139,13 @@ int PdmOptionItemInfo::level() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
QStringList PdmOptionItemInfo::extractUiTexts(const QList<PdmOptionItemInfo>& optionList)
{
QStringList texts;
for (auto option : optionList)
for (const auto& option : optionList)
{
texts.push_back(option.optionUiText());
}
@ -149,7 +153,6 @@ QStringList PdmOptionItemInfo::extractUiTexts(const QList<PdmOptionItemInfo>& op
return texts;
}
//==================================================================================================
/// PdmUiItem
//==================================================================================================
@ -157,9 +160,9 @@ QStringList PdmOptionItemInfo::extractUiTexts(const QList<PdmOptionItemInfo>& op
bool PdmUiItem::sm_showExtraDebugText = false;
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QString PdmUiItem::uiName(QString uiConfigName) const
const QString PdmUiItem::uiName(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -169,13 +172,21 @@ const QString PdmUiItem::uiName(QString uiConfigName) const
if (defInfo && !(defInfo->m_uiName.isNull())) return defInfo->m_uiName;
if (sttInfo && !(sttInfo->m_uiName.isNull())) return sttInfo->m_uiName;
return QString("");
return QString("");
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QIcon PdmUiItem::uiIcon(QString uiConfigName) const
void PdmUiItem::setUiName(const QString& uiName, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_uiName = uiName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const QIcon PdmUiItem::uiIcon(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -185,13 +196,21 @@ const QIcon PdmUiItem::uiIcon(QString uiConfigName) const
if (defInfo && !(defInfo->m_icon.isNull())) return defInfo->m_icon;
if (sttInfo && !(sttInfo->m_icon.isNull())) return sttInfo->m_icon;
return QIcon();
return QIcon();
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QString PdmUiItem::uiToolTip(QString uiConfigName) const
void PdmUiItem::setUiIcon(const QIcon& uiIcon, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_icon = uiIcon;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const QString PdmUiItem::uiToolTip(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -226,13 +245,21 @@ const QString PdmUiItem::uiToolTip(QString uiConfigName) const
}
}
return text;
return text;
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const QString PdmUiItem::uiWhatsThis(QString uiConfigName) const
void PdmUiItem::setUiToolTip(const QString& uiToolTip, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_toolTip = uiToolTip;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const QString PdmUiItem::uiWhatsThis(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -242,13 +269,21 @@ const QString PdmUiItem::uiWhatsThis(QString uiConfigName) const
if (defInfo && !(defInfo->m_whatsThis.isNull())) return defInfo->m_whatsThis;
if (sttInfo && !(sttInfo->m_whatsThis.isNull())) return sttInfo->m_whatsThis;
return QString("");
return QString("");
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiHidden(QString uiConfigName) const
void PdmUiItem::setUiWhatsThis(const QString& uiWhatsThis, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_whatsThis = uiWhatsThis;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiHidden(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -262,9 +297,17 @@ bool PdmUiItem::isUiHidden(QString uiConfigName) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiTreeHidden(QString uiConfigName) const
void PdmUiItem::setUiHidden(bool isHidden, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_isHidden = isHidden;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiTreeHidden(const QString& uiConfigName) const
{
// TODO: Must be separated from uiHidden when childField object embedding is implemented
@ -272,9 +315,17 @@ bool PdmUiItem::isUiTreeHidden(QString uiConfigName) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiTreeChildrenHidden(QString uiConfigName) const
void PdmUiItem::setUiTreeHidden(bool isHidden, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_isHidden = isHidden;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiTreeChildrenHidden(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -288,9 +339,17 @@ bool PdmUiItem::isUiTreeChildrenHidden(QString uiConfigName) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiReadOnly(QString uiConfigName /*= ""*/) const
void PdmUiItem::setUiTreeChildrenHidden(bool isTreeChildrenHidden, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_isTreeChildrenHidden = isTreeChildrenHidden;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiReadOnly(const QString& uiConfigName /*= ""*/) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -304,7 +363,15 @@ bool PdmUiItem::isUiReadOnly(QString uiConfigName /*= ""*/) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::setUiReadOnly(bool isReadOnly, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString PdmUiItem::uiEditorTypeName(const QString& uiConfigName) const
{
@ -320,9 +387,25 @@ QString PdmUiItem::uiEditorTypeName(const QString& uiConfigName) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmUiItemInfo::LabelPosType PdmUiItem::uiLabelPosition(QString uiConfigName) const
void PdmUiItem::setUiEditorTypeName(const QString& editorTypeName, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_editorTypeName = editorTypeName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiGroup()
{
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
PdmUiItemInfo::LabelPosType PdmUiItem::uiLabelPosition(const QString& uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -336,9 +419,17 @@ PdmUiItemInfo::LabelPosType PdmUiItem::uiLabelPosition(QString uiConfigName) con
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isCustomContextMenuEnabled(QString uiConfigName /*= ""*/) const
void PdmUiItem::setUiLabelPosition(PdmUiItemInfo::LabelPosType alignment, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_labelAlignment = alignment;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isCustomContextMenuEnabled(const QString& uiConfigName /*= ""*/) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
@ -352,10 +443,18 @@ bool PdmUiItem::isCustomContextMenuEnabled(QString uiConfigName /*= ""*/) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::setCustomContextMenuEnabled(bool enableCustomContextMenu, const QString& uiConfigName /*= ""*/)
{
m_configItemInfos[uiConfigName].m_isCustomContextMenuEnabled = enableCustomContextMenu;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const PdmUiItemInfo* PdmUiItem::configInfo(QString uiConfigName) const
const PdmUiItemInfo* PdmUiItem::configInfo(const QString& uiConfigName) const
{
if (uiConfigName == "" || uiConfigName.isNull()) return nullptr;
@ -368,7 +467,7 @@ const PdmUiItemInfo* PdmUiItem::configInfo(QString uiConfigName) const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
const PdmUiItemInfo* PdmUiItem::defaultInfo() const
@ -382,7 +481,7 @@ const PdmUiItemInfo* PdmUiItem::defaultInfo() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::updateConnectedEditors()
{
@ -394,7 +493,7 @@ void PdmUiItem::updateConnectedEditors()
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::updateAllRequiredEditors()
{
@ -404,7 +503,7 @@ void PdmUiItem::updateAllRequiredEditors()
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
PdmUiItem::~PdmUiItem()
{
@ -416,20 +515,34 @@ PdmUiItem::~PdmUiItem()
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::updateUiIconFromState(bool isActive, QString uiConfigName)
PdmUiItem::PdmUiItem()
: m_staticItemInfo(nullptr)
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::updateUiIconFromState(bool isActive, const QString& uiConfigName)
{
static const QString iconStorageConfigNamePostfix = "_Internally_StoredNormalIcon";
const PdmUiItemInfo* conInfo = configInfo(uiConfigName + iconStorageConfigNamePostfix);
QIcon normalIcon;
const PdmUiItemInfo* conInfo = configInfo(uiConfigName + iconStorageConfigNamePostfix);
QIcon normalIcon;
if (conInfo) normalIcon = conInfo->m_icon;
else normalIcon = this->uiIcon(uiConfigName);
if (conInfo)
{
normalIcon = conInfo->m_icon;
}
else
{
normalIcon = this->uiIcon(uiConfigName);
}
this->setUiIcon(normalIcon, uiConfigName + iconStorageConfigNamePostfix);
if ( isActive )
if (isActive)
{
this->setUiIcon(normalIcon, uiConfigName);
m_configItemInfos.erase(uiConfigName + iconStorageConfigNamePostfix);
@ -443,7 +556,7 @@ void PdmUiItem::updateUiIconFromState(bool isActive, QString uiConfigName)
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
std::vector<PdmUiEditorHandle*> PdmUiItem::connectedEditors() const
{
@ -457,7 +570,7 @@ std::vector<PdmUiEditorHandle*> PdmUiItem::connectedEditors() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::showExtraDebugText()
{
@ -465,12 +578,35 @@ bool PdmUiItem::showExtraDebugText()
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::enableExtraDebugText(bool enable)
{
sm_showExtraDebugText = enable;
}
} //End of namespace caf
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::setUiItemInfo(PdmUiItemInfo* itemInfo)
{
m_staticItemInfo = itemInfo;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::removeFieldEditor(PdmUiEditorHandle* fieldView)
{
m_editors.erase(fieldView);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiItem::addFieldEditor(PdmUiEditorHandle* fieldView)
{
m_editors.insert(fieldView);
}
} // End of namespace caf

View File

@ -192,47 +192,47 @@ bool PdmOptionItemInfo::findValues(const QList<PdmOptionItemInfo>& optionList, Q
class PdmUiItem
{
public:
PdmUiItem() : m_staticItemInfo(nullptr) { }
PdmUiItem();
virtual ~PdmUiItem();
PdmUiItem(const PdmUiItem&) = delete;
PdmUiItem& operator=(const PdmUiItem&) = delete;
const QString uiName(QString uiConfigName = "") const;
void setUiName(const QString& uiName, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_uiName = uiName; }
const QString uiName(const QString& uiConfigName = "") const;
void setUiName(const QString& uiName, const QString& uiConfigName = "");
const QIcon uiIcon(QString uiConfigName = "") const;
void setUiIcon(const QIcon& uiIcon, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_icon = uiIcon; }
const QIcon uiIcon(const QString& uiConfigName = "") const;
void setUiIcon(const QIcon& uiIcon, const QString& uiConfigName = "");
const QString uiToolTip(QString uiConfigName = "") const;
void setUiToolTip(const QString& uiToolTip, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_toolTip = uiToolTip; }
const QString uiToolTip(const QString& uiConfigName = "") const;
void setUiToolTip(const QString& uiToolTip, const QString& uiConfigName = "");
const QString uiWhatsThis(QString uiConfigName = "") const;
void setUiWhatsThis(const QString& uiWhatsThis, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_whatsThis = uiWhatsThis; }
const QString uiWhatsThis(const QString& uiConfigName = "") const;
void setUiWhatsThis(const QString& uiWhatsThis, const QString& uiConfigName = "");
bool isUiHidden(QString uiConfigName = "") const;
void setUiHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
bool isUiHidden(const QString& uiConfigName = "") const;
void setUiHidden(bool isHidden, const QString& uiConfigName = "");
bool isUiTreeHidden(QString uiConfigName = "") const;
void setUiTreeHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
bool isUiTreeHidden(const QString& uiConfigName = "") const;
void setUiTreeHidden(bool isHidden, const QString& uiConfigName = "");
bool isUiTreeChildrenHidden(QString uiConfigName = "") const;
void setUiTreeChildrenHidden(bool isTreeChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isTreeChildrenHidden = isTreeChildrenHidden; }
bool isUiTreeChildrenHidden(const QString& uiConfigName = "") const;
void setUiTreeChildrenHidden(bool isTreeChildrenHidden, const QString& uiConfigName = "");
bool isUiReadOnly(QString uiConfigName = "") const;
void setUiReadOnly(bool isReadOnly, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly; }
bool isUiReadOnly(const QString& uiConfigName = "") const;
void setUiReadOnly(bool isReadOnly, const QString& uiConfigName = "");
PdmUiItemInfo::LabelPosType
uiLabelPosition(QString uiConfigName = "") const;
void setUiLabelPosition(PdmUiItemInfo::LabelPosType alignment, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_labelAlignment = alignment; }
uiLabelPosition(const QString& uiConfigName = "") const;
void setUiLabelPosition(PdmUiItemInfo::LabelPosType alignment, const QString& uiConfigName = "");
bool isCustomContextMenuEnabled(QString uiConfigName = "") const;
void setCustomContextMenuEnabled(bool enableCustomContextMenu, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isCustomContextMenuEnabled = enableCustomContextMenu; }
bool isCustomContextMenuEnabled(const QString& uiConfigName = "") const;
void setCustomContextMenuEnabled(bool enableCustomContextMenu, const QString& uiConfigName = "");
QString uiEditorTypeName(const QString& uiConfigName) const;
void setUiEditorTypeName(const QString& editorTypeName, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_editorTypeName = editorTypeName; }
void setUiEditorTypeName(const QString& editorTypeName, const QString& uiConfigName = "");
virtual bool isUiGroup() { return false; }
virtual bool isUiGroup();
/// Intended to be called when fields in an object has been changed
void updateConnectedEditors();
@ -240,7 +240,7 @@ public:
/// Intended to be called when an object has been created or deleted
void updateAllRequiredEditors();
void updateUiIconFromState(bool isActive, QString uiConfigName = "");
void updateUiIconFromState(bool isActive, const QString& uiConfigName = "");
std::vector<PdmUiEditorHandle*>
connectedEditors() const;
@ -255,17 +255,17 @@ public: // Pdm-Private only
/// Consider as PRIVATE to the PdmSystem
//==================================================================================================
void setUiItemInfo(PdmUiItemInfo* itemInfo) { m_staticItemInfo = itemInfo; }
void setUiItemInfo(PdmUiItemInfo* itemInfo);
void removeFieldEditor(PdmUiEditorHandle* fieldView) { m_editors.erase(fieldView); }
void addFieldEditor(PdmUiEditorHandle* fieldView) { m_editors.insert(fieldView); }
void removeFieldEditor(PdmUiEditorHandle* fieldView);
void addFieldEditor(PdmUiEditorHandle* fieldView);
protected:
std::set<PdmUiEditorHandle*> m_editors;
private:
const PdmUiItemInfo* defaultInfo() const;
const PdmUiItemInfo* configInfo(QString uiConfigName) const;
const PdmUiItemInfo* configInfo(const QString& uiConfigName) const;
PdmUiItemInfo* m_staticItemInfo;
std::map< QString, PdmUiItemInfo > m_configItemInfos;

View File

@ -35,7 +35,7 @@ PdmUiObjectHandle* uiObj(const PdmObjectHandle* obj)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiObjectHandle::uiOrdering(QString uiConfigName, PdmUiOrdering& uiOrdering)
void PdmUiObjectHandle::uiOrdering(const QString& uiConfigName, PdmUiOrdering& uiOrdering)
{
// Restore state for includeRemainingFields, as this flag
// can be changed in defineUiOrdering()
@ -66,7 +66,7 @@ void PdmUiObjectHandle::uiOrdering(QString uiConfigName, PdmUiOrdering& uiOrderi
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiObjectHandle::editorAttribute(const PdmFieldHandle* field, QString uiConfigName, PdmUiEditorAttribute * attribute)
void PdmUiObjectHandle::editorAttribute(const PdmFieldHandle* field, const QString& uiConfigName, PdmUiEditorAttribute * attribute)
{
this->defineEditorAttribute(field, uiConfigName, attribute);
}
@ -74,7 +74,7 @@ void PdmUiObjectHandle::editorAttribute(const PdmFieldHandle* field, QString uiC
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiObjectHandle::objectEditorAttribute(QString uiConfigName, PdmUiEditorAttribute* attribute)
void PdmUiObjectHandle::objectEditorAttribute(const QString& uiConfigName, PdmUiEditorAttribute* attribute)
{
this->defineObjectEditorAttribute(uiConfigName, attribute);
}
@ -88,7 +88,7 @@ void PdmUiObjectHandle::objectEditorAttribute(QString uiConfigName, PdmUiEditorA
///
/// The caller is responsible to delete the returned PdmUiTreeOrdering
//--------------------------------------------------------------------------------------------------
PdmUiTreeOrdering* PdmUiObjectHandle::uiTreeOrdering(QString uiConfigName /*= ""*/)
PdmUiTreeOrdering* PdmUiObjectHandle::uiTreeOrdering(const QString& uiConfigName /*= ""*/) const
{
CAF_ASSERT(this); // This method actually is possible to call on a NULL ptr without getting a crash, so we assert instead.
@ -168,7 +168,7 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren(PdmUiTreeOrdering* uiTreeOrderi
/// Builds the sPdmUiTree for all the children of @param root recursively, and stores the result
/// in root
//--------------------------------------------------------------------------------------------------
void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigName /*= "" */)
void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, const QString& uiConfigName /*= "" */)
{
#if 1
if (!root || !root->isValid()) return;

View File

@ -27,20 +27,20 @@ public:
/// Method to be called from the Ui classes creating Auto Gui to get the group information
/// supplied by the \sa defineUiOrdering method that can be reimplemented
void uiOrdering(QString uiConfigName, PdmUiOrdering& uiOrdering) ;
void uiOrdering(const QString& uiConfigName, PdmUiOrdering& uiOrdering);
/// Method to be called by Ui displaying a tree representation of the object hierarchy
/// Caller must delete the returned object.
PdmUiTreeOrdering* uiTreeOrdering(QString uiConfigName = "");
PdmUiTreeOrdering* uiTreeOrdering(const QString& uiConfigName = "") const;
/// Helper function to expand a pre-defined tree start
static void expandUiTree(PdmUiTreeOrdering* root, QString uiConfigName = "");
static void expandUiTree(PdmUiTreeOrdering* root, const QString& uiConfigName = "");
/// For a specific field, return editor specific parameters used to customize the editor behavior.
void editorAttribute(const PdmFieldHandle* field, QString uiConfigName, PdmUiEditorAttribute* attribute);
void editorAttribute(const PdmFieldHandle* field, const QString& uiConfigName, PdmUiEditorAttribute* attribute);
/// Return object editor specific parameters used to customize the editor behavior.
void objectEditorAttribute(QString uiConfigName, PdmUiEditorAttribute* attribute);
void objectEditorAttribute(const QString& uiConfigName, PdmUiEditorAttribute* attribute);
/// Field used to control if field change of and object should be covered by undo/redo framework
virtual bool useUndoRedoForFieldChanged() { return true; }