mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3222 AppFwk : Improve robustness/maintainability
This commit is contained in:
@@ -7,16 +7,43 @@
|
|||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
PdmUiFieldHandle::PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership)
|
||||||
|
: m_isAutoAddingOptionFromValue(true)
|
||||||
|
{
|
||||||
|
m_owner = owner;
|
||||||
|
owner->addCapability(this, giveOwnership);
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
PdmUiFieldHandle::PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership):
|
PdmUiFieldHandle::~PdmUiFieldHandle() {}
|
||||||
m_isAutoAddingOptionFromValue(true)
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
caf::PdmFieldHandle* PdmUiFieldHandle::fieldHandle()
|
||||||
{
|
{
|
||||||
m_owner = owner;
|
return m_owner;
|
||||||
owner->addCapability(this, giveOwnership);
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QVariant PdmUiFieldHandle::uiValue() const
|
||||||
|
{
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QList<caf::PdmOptionItemInfo> PdmUiFieldHandle::valueOptions(bool* useOptionsOnly) const
|
||||||
|
{
|
||||||
|
return QList<PdmOptionItemInfo>();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -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
|
/// Implementation of uiCapability() defined in cafPdmFieldHandle.h
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -1,43 +1,40 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "cafPdmUiItem.h"
|
|
||||||
#include "cafPdmFieldCapability.h"
|
#include "cafPdmFieldCapability.h"
|
||||||
#include "cafPdmUiFieldHandleInterface.h"
|
#include "cafPdmUiFieldHandleInterface.h"
|
||||||
|
#include "cafPdmUiItem.h"
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
|
||||||
class PdmFieldHandle;
|
class PdmFieldHandle;
|
||||||
|
|
||||||
class PdmUiFieldHandle : public PdmUiItem, public PdmFieldCapability, public PdmUiFieldHandleInterface
|
class PdmUiFieldHandle : public PdmUiItem, public PdmFieldCapability, public PdmUiFieldHandleInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership);
|
PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership);
|
||||||
virtual ~PdmUiFieldHandle() { }
|
virtual ~PdmUiFieldHandle();
|
||||||
|
|
||||||
PdmFieldHandle* fieldHandle() { return m_owner; }
|
PdmFieldHandle* fieldHandle();
|
||||||
|
|
||||||
// Generalized access methods for User interface
|
// Generalized access methods for User interface
|
||||||
// The QVariant encapsulates the real value, or an index into the valueOptions
|
// The QVariant encapsulates the real value, or an index into the valueOptions
|
||||||
|
|
||||||
virtual QVariant uiValue() const { return QVariant(); }
|
virtual QVariant uiValue() const;
|
||||||
virtual QList<PdmOptionItemInfo>
|
virtual QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly) const;
|
||||||
valueOptions(bool* useOptionsOnly) { return QList<PdmOptionItemInfo>(); }
|
|
||||||
|
|
||||||
virtual void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant);
|
void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant) override;
|
||||||
|
|
||||||
bool isAutoAddingOptionFromValue() const { return m_isAutoAddingOptionFromValue; }
|
bool isAutoAddingOptionFromValue() const;
|
||||||
void setAutoAddingOptionFromValue(bool isAddingValue) { m_isAutoAddingOptionFromValue = isAddingValue;}
|
void setAutoAddingOptionFromValue(bool isAddingValue);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class PdmUiCommandSystemProxy;
|
friend class PdmUiCommandSystemProxy;
|
||||||
friend class CmdFieldChangeExec;
|
friend class CmdFieldChangeExec;
|
||||||
virtual void setValueFromUiEditor(const QVariant& uiValue) { }
|
virtual void setValueFromUiEditor(const QVariant& uiValue);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PdmFieldHandle* m_owner;
|
PdmFieldHandle* m_owner;
|
||||||
bool m_isAutoAddingOptionFromValue;
|
bool m_isAutoAddingOptionFromValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
} // End of namespace caf
|
} // End of namespace caf
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public:
|
|||||||
void setKeyword(const QString& keyword);
|
void setKeyword(const QString& keyword);
|
||||||
QString keyword() const;
|
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.
|
/// 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);
|
void setCollapsedByDefault(bool doCollapse);
|
||||||
|
|||||||
@@ -34,36 +34,39 @@
|
|||||||
//
|
//
|
||||||
//##################################################################################################
|
//##################################################################################################
|
||||||
|
|
||||||
|
|
||||||
#include "cafPdmUiItem.h"
|
#include "cafPdmUiItem.h"
|
||||||
#include "cafPdmUiEditorHandle.h"
|
|
||||||
#include "cafPdmPtrField.h"
|
#include "cafPdmPtrField.h"
|
||||||
|
#include "cafPdmUiEditorHandle.h"
|
||||||
#include "cafPdmUiObjectEditorHandle.h"
|
#include "cafPdmUiObjectEditorHandle.h"
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool isReadOnly /* = false */, QIcon anIcon /* = QIcon()*/)
|
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText,
|
||||||
: m_optionUiText(anOptionUiText),
|
const QVariant& aValue,
|
||||||
m_value(aValue),
|
bool isReadOnly /* = false */,
|
||||||
m_isReadOnly(isReadOnly),
|
QIcon anIcon /* = QIcon()*/)
|
||||||
m_icon(anIcon),
|
: m_optionUiText(anOptionUiText)
|
||||||
m_level(0)
|
, 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()*/)
|
PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText,
|
||||||
: m_optionUiText(anOptionUiText),
|
caf::PdmObjectHandle* obj,
|
||||||
m_isReadOnly(isReadOnly),
|
bool isReadOnly /*= false*/,
|
||||||
m_icon(anIcon),
|
QIcon anIcon /*= QIcon()*/)
|
||||||
m_level(0)
|
: m_optionUiText(anOptionUiText)
|
||||||
|
, m_isReadOnly(isReadOnly)
|
||||||
|
, m_icon(anIcon)
|
||||||
|
, m_level(0)
|
||||||
{
|
{
|
||||||
m_value = QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(obj));
|
m_value = QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(obj));
|
||||||
}
|
}
|
||||||
@@ -71,7 +74,8 @@ PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObje
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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);
|
PdmOptionItemInfo header(anOptionUiText, QVariant(), isReadOnly, anIcon);
|
||||||
|
|
||||||
@@ -141,7 +145,7 @@ QStringList PdmOptionItemInfo::extractUiTexts(const QList<PdmOptionItemInfo>& op
|
|||||||
{
|
{
|
||||||
QStringList texts;
|
QStringList texts;
|
||||||
|
|
||||||
for (auto option : optionList)
|
for (const auto& option : optionList)
|
||||||
{
|
{
|
||||||
texts.push_back(option.optionUiText());
|
texts.push_back(option.optionUiText());
|
||||||
}
|
}
|
||||||
@@ -149,7 +153,6 @@ QStringList PdmOptionItemInfo::extractUiTexts(const QList<PdmOptionItemInfo>& op
|
|||||||
return texts;
|
return texts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
/// PdmUiItem
|
/// PdmUiItem
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@@ -159,7 +162,7 @@ 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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -175,7 +178,15 @@ const QString PdmUiItem::uiName(QString uiConfigName) const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -191,7 +202,15 @@ const QIcon PdmUiItem::uiIcon(QString uiConfigName) const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -232,7 +251,15 @@ const QString PdmUiItem::uiToolTip(QString uiConfigName) const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -248,7 +275,15 @@ const QString PdmUiItem::uiWhatsThis(QString uiConfigName) const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -264,7 +299,15 @@ 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
|
// TODO: Must be separated from uiHidden when childField object embedding is implemented
|
||||||
|
|
||||||
@@ -274,7 +317,15 @@ 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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -290,7 +341,15 @@ 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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -303,6 +362,14 @@ bool PdmUiItem::isUiReadOnly(QString uiConfigName /*= ""*/) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void PdmUiItem::setUiReadOnly(bool isReadOnly, const QString& uiConfigName /*= ""*/)
|
||||||
|
{
|
||||||
|
m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -322,7 +389,23 @@ 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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -338,7 +421,15 @@ 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* conInfo = configInfo(uiConfigName);
|
||||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||||
@@ -354,8 +445,16 @@ 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;
|
if (uiConfigName == "" || uiConfigName.isNull()) return nullptr;
|
||||||
|
|
||||||
@@ -418,18 +517,32 @@ 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";
|
static const QString iconStorageConfigNamePostfix = "_Internally_StoredNormalIcon";
|
||||||
const PdmUiItemInfo* conInfo = configInfo(uiConfigName + iconStorageConfigNamePostfix);
|
const PdmUiItemInfo* conInfo = configInfo(uiConfigName + iconStorageConfigNamePostfix);
|
||||||
QIcon normalIcon;
|
QIcon normalIcon;
|
||||||
|
|
||||||
if (conInfo) normalIcon = conInfo->m_icon;
|
if (conInfo)
|
||||||
else normalIcon = this->uiIcon(uiConfigName);
|
{
|
||||||
|
normalIcon = conInfo->m_icon;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
normalIcon = this->uiIcon(uiConfigName);
|
||||||
|
}
|
||||||
|
|
||||||
this->setUiIcon(normalIcon, uiConfigName + iconStorageConfigNamePostfix);
|
this->setUiIcon(normalIcon, uiConfigName + iconStorageConfigNamePostfix);
|
||||||
|
|
||||||
if ( isActive )
|
if (isActive)
|
||||||
{
|
{
|
||||||
this->setUiIcon(normalIcon, uiConfigName);
|
this->setUiIcon(normalIcon, uiConfigName);
|
||||||
m_configItemInfos.erase(uiConfigName + iconStorageConfigNamePostfix);
|
m_configItemInfos.erase(uiConfigName + iconStorageConfigNamePostfix);
|
||||||
@@ -472,5 +585,28 @@ void PdmUiItem::enableExtraDebugText(bool enable)
|
|||||||
sm_showExtraDebugText = 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
|
||||||
|
|||||||
@@ -192,47 +192,47 @@ bool PdmOptionItemInfo::findValues(const QList<PdmOptionItemInfo>& optionList, Q
|
|||||||
class PdmUiItem
|
class PdmUiItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PdmUiItem() : m_staticItemInfo(nullptr) { }
|
PdmUiItem();
|
||||||
virtual ~PdmUiItem();
|
virtual ~PdmUiItem();
|
||||||
|
|
||||||
PdmUiItem(const PdmUiItem&) = delete;
|
PdmUiItem(const PdmUiItem&) = delete;
|
||||||
PdmUiItem& operator=(const PdmUiItem&) = delete;
|
PdmUiItem& operator=(const PdmUiItem&) = delete;
|
||||||
|
|
||||||
const QString uiName(QString uiConfigName = "") const;
|
const QString uiName(const QString& uiConfigName = "") const;
|
||||||
void setUiName(const QString& uiName, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_uiName = uiName; }
|
void setUiName(const QString& uiName, const QString& uiConfigName = "");
|
||||||
|
|
||||||
const QIcon uiIcon(QString uiConfigName = "") const;
|
const QIcon uiIcon(const QString& uiConfigName = "") const;
|
||||||
void setUiIcon(const QIcon& uiIcon, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_icon = uiIcon; }
|
void setUiIcon(const QIcon& uiIcon, const QString& uiConfigName = "");
|
||||||
|
|
||||||
const QString uiToolTip(QString uiConfigName = "") const;
|
const QString uiToolTip(const QString& uiConfigName = "") const;
|
||||||
void setUiToolTip(const QString& uiToolTip, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_toolTip = uiToolTip; }
|
void setUiToolTip(const QString& uiToolTip, const QString& uiConfigName = "");
|
||||||
|
|
||||||
const QString uiWhatsThis(QString uiConfigName = "") const;
|
const QString uiWhatsThis(const QString& uiConfigName = "") const;
|
||||||
void setUiWhatsThis(const QString& uiWhatsThis, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_whatsThis = uiWhatsThis; }
|
void setUiWhatsThis(const QString& uiWhatsThis, const QString& uiConfigName = "");
|
||||||
|
|
||||||
bool isUiHidden(QString uiConfigName = "") const;
|
bool isUiHidden(const QString& uiConfigName = "") const;
|
||||||
void setUiHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
|
void setUiHidden(bool isHidden, const QString& uiConfigName = "");
|
||||||
|
|
||||||
bool isUiTreeHidden(QString uiConfigName = "") const;
|
bool isUiTreeHidden(const QString& uiConfigName = "") const;
|
||||||
void setUiTreeHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
|
void setUiTreeHidden(bool isHidden, const QString& uiConfigName = "");
|
||||||
|
|
||||||
bool isUiTreeChildrenHidden(QString uiConfigName = "") const;
|
bool isUiTreeChildrenHidden(const QString& uiConfigName = "") const;
|
||||||
void setUiTreeChildrenHidden(bool isTreeChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isTreeChildrenHidden = isTreeChildrenHidden; }
|
void setUiTreeChildrenHidden(bool isTreeChildrenHidden, const QString& uiConfigName = "");
|
||||||
|
|
||||||
bool isUiReadOnly(QString uiConfigName = "") const;
|
bool isUiReadOnly(const QString& uiConfigName = "") const;
|
||||||
void setUiReadOnly(bool isReadOnly, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly; }
|
void setUiReadOnly(bool isReadOnly, const QString& uiConfigName = "");
|
||||||
|
|
||||||
PdmUiItemInfo::LabelPosType
|
PdmUiItemInfo::LabelPosType
|
||||||
uiLabelPosition(QString uiConfigName = "") const;
|
uiLabelPosition(const QString& uiConfigName = "") const;
|
||||||
void setUiLabelPosition(PdmUiItemInfo::LabelPosType alignment, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_labelAlignment = alignment; }
|
void setUiLabelPosition(PdmUiItemInfo::LabelPosType alignment, const QString& uiConfigName = "");
|
||||||
|
|
||||||
bool isCustomContextMenuEnabled(QString uiConfigName = "") const;
|
bool isCustomContextMenuEnabled(const QString& uiConfigName = "") const;
|
||||||
void setCustomContextMenuEnabled(bool enableCustomContextMenu, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isCustomContextMenuEnabled = enableCustomContextMenu; }
|
void setCustomContextMenuEnabled(bool enableCustomContextMenu, const QString& uiConfigName = "");
|
||||||
|
|
||||||
QString uiEditorTypeName(const QString& uiConfigName) const;
|
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
|
/// Intended to be called when fields in an object has been changed
|
||||||
void updateConnectedEditors();
|
void updateConnectedEditors();
|
||||||
@@ -240,7 +240,7 @@ public:
|
|||||||
/// Intended to be called when an object has been created or deleted
|
/// Intended to be called when an object has been created or deleted
|
||||||
void updateAllRequiredEditors();
|
void updateAllRequiredEditors();
|
||||||
|
|
||||||
void updateUiIconFromState(bool isActive, QString uiConfigName = "");
|
void updateUiIconFromState(bool isActive, const QString& uiConfigName = "");
|
||||||
|
|
||||||
std::vector<PdmUiEditorHandle*>
|
std::vector<PdmUiEditorHandle*>
|
||||||
connectedEditors() const;
|
connectedEditors() const;
|
||||||
@@ -255,17 +255,17 @@ public: // Pdm-Private only
|
|||||||
/// Consider as PRIVATE to the PdmSystem
|
/// 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 removeFieldEditor(PdmUiEditorHandle* fieldView);
|
||||||
void addFieldEditor(PdmUiEditorHandle* fieldView) { m_editors.insert(fieldView); }
|
void addFieldEditor(PdmUiEditorHandle* fieldView);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::set<PdmUiEditorHandle*> m_editors;
|
std::set<PdmUiEditorHandle*> m_editors;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const PdmUiItemInfo* defaultInfo() const;
|
const PdmUiItemInfo* defaultInfo() const;
|
||||||
const PdmUiItemInfo* configInfo(QString uiConfigName) const;
|
const PdmUiItemInfo* configInfo(const QString& uiConfigName) const;
|
||||||
|
|
||||||
PdmUiItemInfo* m_staticItemInfo;
|
PdmUiItemInfo* m_staticItemInfo;
|
||||||
std::map< QString, PdmUiItemInfo > m_configItemInfos;
|
std::map< QString, PdmUiItemInfo > m_configItemInfos;
|
||||||
|
|||||||
@@ -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
|
// Restore state for includeRemainingFields, as this flag
|
||||||
// can be changed in defineUiOrdering()
|
// 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);
|
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);
|
this->defineObjectEditorAttribute(uiConfigName, attribute);
|
||||||
}
|
}
|
||||||
@@ -88,7 +88,7 @@ void PdmUiObjectHandle::objectEditorAttribute(QString uiConfigName, PdmUiEditorA
|
|||||||
///
|
///
|
||||||
/// The caller is responsible to delete the returned PdmUiTreeOrdering
|
/// 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.
|
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
|
/// Builds the sPdmUiTree for all the children of @param root recursively, and stores the result
|
||||||
/// in root
|
/// in root
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigName /*= "" */)
|
void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, const QString& uiConfigName /*= "" */)
|
||||||
{
|
{
|
||||||
#if 1
|
#if 1
|
||||||
if (!root || !root->isValid()) return;
|
if (!root || !root->isValid()) return;
|
||||||
|
|||||||
@@ -27,20 +27,20 @@ public:
|
|||||||
|
|
||||||
/// Method to be called from the Ui classes creating Auto Gui to get the group information
|
/// 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
|
/// 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
|
/// Method to be called by Ui displaying a tree representation of the object hierarchy
|
||||||
/// Caller must delete the returned object.
|
/// 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
|
/// 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.
|
/// 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.
|
/// 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
|
/// Field used to control if field change of and object should be covered by undo/redo framework
|
||||||
virtual bool useUndoRedoForFieldChanged() { return true; }
|
virtual bool useUndoRedoForFieldChanged() { return true; }
|
||||||
|
|||||||
Reference in New Issue
Block a user