Caf: PtrFields must not return any childObjects. Fixed Legend definition Object below EclipseCellColor as a consequence. Discovered due to Summary Plot case pointer

This commit is contained in:
Jacob Støren 2016-06-16 15:59:20 +02:00
parent 6f7432c0e7
commit 45cf15a941
4 changed files with 10 additions and 19 deletions

View File

@ -27,6 +27,7 @@
#include "RimViewLinker.h"
#include "RiuMainWindow.h"
#include "cafPdmUiTreeOrdering.h"
CAF_PDM_SOURCE_INIT(RimEclipseCellColors, "ResultSlot");
@ -181,6 +182,14 @@ void RimEclipseCellColors::initAfterRead()
updateIconState();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseCellColors::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
{
uiTreeOrdering.add(m_legendConfigPtrField());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -54,6 +54,7 @@ public:
protected:
// Overridden methods
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
friend class RimEclipseFaultColors;
virtual void initAfterRead();

View File

@ -61,10 +61,6 @@ public:
bool operator==(const DataTypePtr& fieldValue) { return m_fieldValue == fieldValue; }
// Child objects
virtual void childObjects(std::vector<PdmObjectHandle*>*);
// Ptr referenced objects
virtual void ptrReferencedObjects(std::vector<PdmObjectHandle*>* objectsToFill);

View File

@ -81,21 +81,6 @@ caf::PdmPtrField<DataType*>& PdmPtrField<DataType*>::operator=(const FieldDataTy
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
template<typename DataType >
void caf::PdmPtrField<DataType*>::childObjects(std::vector<PdmObjectHandle*>* objects)
{
assert(objects);
PdmObjectHandle* obj = m_fieldValue.rawPtr();
if (obj)
{
objects->push_back(obj);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------