Preparations for quick access features

* Add tool button editor with callback support
* Guard null pointer usage
* Allow proxy field with no getter
* Remove duplicated code
This commit is contained in:
Magne Sjaastad authored and GitHub committed 2024-10-21 14:08:15 +02:00
1 parent 5ffd7f3f61
commit b0d967ff40
7 files changed
+205 -29

No files matched your search

@@ -74,7 +74,8 @@ public:
}
DataType value() const
{
CAF_ASSERT( m_valueGetter );
if ( !m_valueGetter ) return DataType();
return m_valueGetter->getValue();
}
@@ -96,26 +96,6 @@ PdmObjectHandle* PdmReferenceHelper::objectFromReference( PdmObjectHandle* root,
return objectFromReferenceStringList( root, decodedReference );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
PdmFieldHandle* PdmReferenceHelper::findField( PdmObjectHandle* object, const QString& fieldKeyword )
{
if ( object == nullptr ) return nullptr;
std::vector<PdmFieldHandle*> fields = object->fields();
for ( size_t i = 0; i < fields.size(); i++ )
{
if ( fields[i]->keyword() == fieldKeyword )
{
return fields[i];
}
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -194,7 +174,9 @@ PdmFieldHandle* PdmReferenceHelper::fieldFromReference( PdmObjectHandle* root, c
decodedReference.pop_front();
PdmObjectHandle* parentObject = objectFromReferenceStringList( root, decodedReference );
return findField( parentObject, fieldKeyword );
if ( !parentObject ) return nullptr;
return parentObject->findField( fieldKeyword );
}
//--------------------------------------------------------------------------------------------------
@@ -209,9 +191,10 @@ PdmObjectHandle* PdmReferenceHelper::objectFromReferenceStringList( PdmObjectHan
int i = 0;
while ( i < reference.size() )
{
QString fieldKeyword = reference.at( i++ );
if ( !currentObject ) return nullptr;
PdmFieldHandle* fieldHandle = findField( currentObject, fieldKeyword );
QString fieldKeyword = reference.at( i++ );
auto fieldHandle = currentObject->findField( fieldKeyword );
if ( !fieldHandle )
{
return nullptr;
@@ -60,8 +60,6 @@ public:
private:
static QStringList referenceFromRootToObjectAsStringList( PdmObjectHandle* root, PdmObjectHandle* obj );
static PdmObjectHandle* objectFromReferenceStringList( PdmObjectHandle* root, const QStringList& reference );
static PdmFieldHandle* findField( PdmObjectHandle* object, const QString& fieldKeyword );
};
} // end namespace caf