mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#922 AppFwk : Introduced PdmUiFieldHandleInterface and made setValueFromUiEditor private
This commit is contained in:
parent
1106bd4381
commit
454805b9de
@ -97,13 +97,17 @@ void CmdFieldChangeExec::redo()
|
||||
{
|
||||
if (m_commandData->m_redoFieldValueSerialized.isEmpty())
|
||||
{
|
||||
// We end up here only when the user actually has done something in the actual living Gui editor.
|
||||
{
|
||||
QXmlStreamWriter xmlStream(&m_commandData->m_undoFieldValueSerialized);
|
||||
writeFieldDataToValidXmlDocument(xmlStream, xmlFieldHandle);
|
||||
}
|
||||
|
||||
// This function will notify field change, no need to explicitly call notification
|
||||
uiFieldHandle->setValueFromUi(m_commandData->m_newUiValue);
|
||||
// The ui value might be an index into the option entry cache, so we need to set the value
|
||||
// and be aware of the option entries, and then serialize the actual field value we ended up with.
|
||||
|
||||
uiFieldHandle->setValueFromUiEditor(m_commandData->m_newUiValue);
|
||||
|
||||
{
|
||||
QXmlStreamWriter xmlStream(&m_commandData->m_redoFieldValueSerialized);
|
||||
|
@ -36,6 +36,7 @@ set( PROJECT_FILES
|
||||
cafPdmPtrField.inl
|
||||
cafPdmReferenceHelper.cpp
|
||||
cafPdmReferenceHelper.h
|
||||
cafPdmUiFieldHandleInterface.h
|
||||
cafPdmValueField.h
|
||||
|
||||
cafNotificationCenter.cpp
|
||||
|
@ -38,10 +38,13 @@
|
||||
#endif
|
||||
|
||||
#include "cafPdmValueField.h"
|
||||
|
||||
#include "cafInternalPdmValueFieldSpecializations.h"
|
||||
#include "cafPdmUiFieldHandleInterface.h"
|
||||
|
||||
#include <QVariant>
|
||||
|
||||
#include <vector>
|
||||
#include <QVariant>
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
@ -116,16 +119,16 @@ void caf::PdmDataValueField<DataType>::setValueWithFieldChanged(const DataType&
|
||||
{
|
||||
assert(isInitializedByInitFieldMacro());
|
||||
|
||||
PdmUiFieldHandle* uiFieldHandle = uiCapability();
|
||||
if (uiFieldHandle)
|
||||
PdmUiFieldHandleInterface* uiFieldHandleInterface = capability<PdmUiFieldHandleInterface>();
|
||||
if (uiFieldHandleInterface)
|
||||
{
|
||||
QVariant oldValue = uiFieldHandle->toUiBasedQVariant();
|
||||
QVariant oldValue = uiFieldHandleInterface->toUiBasedQVariant();
|
||||
|
||||
m_fieldValue = fieldValue;
|
||||
|
||||
QVariant newUiBasedQVariant = uiFieldHandle->toUiBasedQVariant();
|
||||
QVariant newUiBasedQVariant = uiFieldHandleInterface->toUiBasedQVariant();
|
||||
|
||||
uiFieldHandle->notifyFieldChanged(oldValue, newUiBasedQVariant);
|
||||
uiFieldHandleInterface->notifyFieldChanged(oldValue, newUiBasedQVariant);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include <QVariant>
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
class PdmUiFieldHandleInterface
|
||||
{
|
||||
public:
|
||||
PdmUiFieldHandleInterface() {}
|
||||
virtual ~PdmUiFieldHandleInterface() {}
|
||||
|
||||
virtual QVariant toUiBasedQVariant() const { return QVariant(); }
|
||||
virtual void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant) { };
|
||||
};
|
||||
|
||||
} // End of namespace caf
|
@ -16,7 +16,7 @@ public:
|
||||
// Gui generalized interface
|
||||
public:
|
||||
virtual QVariant uiValue() const;
|
||||
virtual void setValueFromUi(const QVariant& uiValue);
|
||||
virtual void setValueFromUiEditor(const QVariant& uiValue);
|
||||
virtual QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly);
|
||||
|
||||
virtual QVariant toUiBasedQVariant() const;
|
||||
@ -43,7 +43,7 @@ public:
|
||||
// Gui generalized interface
|
||||
public:
|
||||
virtual QVariant uiValue() const { return QVariant();}
|
||||
virtual void setValueFromUi(const QVariant& uiValue) { }
|
||||
virtual void setValueFromUiEditor(const QVariant& uiValue) { }
|
||||
virtual QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly) { return QList<PdmOptionItemInfo>(); }
|
||||
|
||||
virtual QVariant toUiBasedQVariant() const { return QVariant(); }
|
||||
@ -62,7 +62,7 @@ public:
|
||||
// Gui generalized interface
|
||||
public:
|
||||
virtual QVariant uiValue() const { return QVariant(); }
|
||||
virtual void setValueFromUi(const QVariant& uiValue) { }
|
||||
virtual void setValueFromUiEditor(const QVariant& uiValue) { }
|
||||
virtual QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly) { return QList<PdmOptionItemInfo>(); }
|
||||
|
||||
virtual QVariant toUiBasedQVariant() const { return QVariant(); }
|
||||
|
@ -16,7 +16,7 @@ namespace caf
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
template<typename FieldType >
|
||||
void caf::PdmFieldUiCap<FieldType>::setValueFromUi(const QVariant& uiValue)
|
||||
void caf::PdmFieldUiCap<FieldType>::setValueFromUiEditor(const QVariant& uiValue)
|
||||
{
|
||||
QVariant oldUiBasedQVariant = toUiBasedQVariant();
|
||||
|
||||
|
@ -89,7 +89,7 @@ void PdmUiCommandSystemProxy::setUiValueToField(PdmUiFieldHandle* uiFieldHandle,
|
||||
}
|
||||
else
|
||||
{
|
||||
uiFieldHandle->setValueFromUi(newUiValue);
|
||||
uiFieldHandle->setValueFromUiEditor(newUiValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -93,9 +93,7 @@ void PdmUiFieldEditorHandle::createWidgets(QWidget * parent)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Well this is food for thought. How do we spawn commands, without making us
|
||||
/// dependent on the command system. It should be optional to use, and not depending on the command "library"
|
||||
/// JJS
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiFieldEditorHandle::setValueToField(const QVariant& newUiValue)
|
||||
{
|
||||
|
@ -2,13 +2,14 @@
|
||||
|
||||
#include "cafPdmUiItem.h"
|
||||
#include "cafPdmFieldCapability.h"
|
||||
#include "cafPdmUiFieldHandleInterface.h"
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
class PdmFieldHandle;
|
||||
|
||||
class PdmUiFieldHandle : public PdmUiItem, public PdmFieldCapability
|
||||
class PdmUiFieldHandle : public PdmUiItem, public PdmFieldCapability, public PdmUiFieldHandleInterface
|
||||
{
|
||||
public:
|
||||
PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership);
|
||||
@ -20,15 +21,19 @@ public:
|
||||
// The QVariant encapsulates the real value, or an index into the valueOptions
|
||||
|
||||
virtual QVariant uiValue() const { return QVariant(); }
|
||||
virtual void setValueFromUi(const QVariant& uiValue) { }
|
||||
virtual QList<PdmOptionItemInfo>
|
||||
valueOptions(bool* useOptionsOnly) { return QList<PdmOptionItemInfo>(); }
|
||||
|
||||
virtual QVariant toUiBasedQVariant() const { return QVariant(); }
|
||||
void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant);
|
||||
virtual void notifyFieldChanged(const QVariant& oldUiBasedQVariant, const QVariant& newUiBasedQVariant);
|
||||
|
||||
bool isAutoAddingOptionFromValue() const { return m_isAutoAddingOptionFromValue; }
|
||||
void setAutoAddingOptionFromValue(bool isAddingValue) { m_isAutoAddingOptionFromValue = isAddingValue;}
|
||||
|
||||
private:
|
||||
friend class PdmUiCommandSystemProxy;
|
||||
friend class CmdFieldChangeExec;
|
||||
virtual void setValueFromUiEditor(const QVariant& uiValue) { }
|
||||
|
||||
private:
|
||||
PdmFieldHandle* m_owner;
|
||||
bool m_isAutoAddingOptionFromValue;
|
||||
|
Loading…
Reference in New Issue
Block a user