2015-07-29 14:19:43 +02:00
|
|
|
#include "cafPdmUiFieldHandle.h"
|
2017-03-08 08:19:51 +01:00
|
|
|
|
|
|
|
|
#include "cafAssert.h"
|
2015-07-29 14:19:43 +02:00
|
|
|
#include "cafPdmFieldHandle.h"
|
2017-04-19 22:25:31 +02:00
|
|
|
#include "cafPdmUiModelChangeDetector.h"
|
2015-07-29 14:19:43 +02:00
|
|
|
#include "cafPdmUiObjectHandle.h"
|
|
|
|
|
|
|
|
|
|
namespace caf
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2016-06-09 10:29:59 +02:00
|
|
|
PdmUiFieldHandle::PdmUiFieldHandle(PdmFieldHandle* owner, bool giveOwnership):
|
|
|
|
|
m_isAutoAddingOptionFromValue(true)
|
2015-07-29 14:19:43 +02:00
|
|
|
{
|
|
|
|
|
m_owner = owner;
|
|
|
|
|
owner->addCapability(this, giveOwnership);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
void PdmUiFieldHandle::notifyFieldChanged(const QVariant& oldFieldValue, const QVariant& newFieldValue)
|
|
|
|
|
{
|
|
|
|
|
if (oldFieldValue != newFieldValue)
|
|
|
|
|
{
|
|
|
|
|
PdmFieldHandle* fieldHandle = this->fieldHandle();
|
2017-03-08 08:19:51 +01:00
|
|
|
CAF_ASSERT(fieldHandle && fieldHandle->ownerObject());
|
2015-07-29 14:19:43 +02:00
|
|
|
|
|
|
|
|
PdmUiObjectHandle* uiObjHandle = uiObj(fieldHandle->ownerObject());
|
|
|
|
|
if (uiObjHandle)
|
|
|
|
|
{
|
|
|
|
|
uiObjHandle->fieldChangedByUi(fieldHandle, oldFieldValue, newFieldValue);
|
|
|
|
|
uiObjHandle->updateConnectedEditors();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Update field editors
|
|
|
|
|
this->updateConnectedEditors();
|
2017-04-19 22:25:31 +02:00
|
|
|
|
|
|
|
|
PdmUiModelChangeDetector::instance()->setModelIsChanged();
|
2015-07-29 14:19:43 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-08-05 12:34:07 +02:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
/// Implementation of uiCapability() defined in cafPdmFieldHandle.h
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
PdmUiFieldHandle* PdmFieldHandle::uiCapability()
|
|
|
|
|
{
|
2015-10-23 15:21:23 +02:00
|
|
|
PdmUiFieldHandle* uiField = capability<PdmUiFieldHandle>();
|
2017-03-08 08:19:51 +01:00
|
|
|
CAF_ASSERT(uiField);
|
2015-08-05 12:34:07 +02:00
|
|
|
|
2015-10-23 15:21:23 +02:00
|
|
|
return uiField;
|
2015-08-05 12:34:07 +02:00
|
|
|
}
|
2015-07-29 14:19:43 +02:00
|
|
|
|
|
|
|
|
} // End of namespace caf
|