mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Add pin icon and rename to Pin Field to Quick Access
This commit is contained in:
@@ -31,6 +31,20 @@ RimFieldReference::RimFieldReference()
|
||||
CAF_PDM_InitFieldNoDefault( &m_fieldName, "FieldName", "FieldName" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFieldReference::setObject( caf::PdmObject* object )
|
||||
{
|
||||
m_object = object;
|
||||
|
||||
std::vector<QString> fieldNames = RimFieldReference::fieldNames( object );
|
||||
if ( !fieldNames.empty() )
|
||||
{
|
||||
m_fieldName = fieldNames[0];
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -38,10 +52,29 @@ void RimFieldReference::setField( caf::PdmFieldHandle* field )
|
||||
{
|
||||
if ( !field ) return;
|
||||
|
||||
auto ownerObject = field->ownerObject();
|
||||
auto ownerObject = dynamic_cast<caf::PdmObject*>( field->ownerObject() );
|
||||
if ( !ownerObject ) return;
|
||||
|
||||
setField( field->ownerObject(), field->keyword() );
|
||||
setField( ownerObject, field->keyword() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimFieldReference::fieldNames( caf::PdmObject* object )
|
||||
{
|
||||
std::vector<QString> names;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
auto allFields = object->fields();
|
||||
for ( auto field : allFields )
|
||||
{
|
||||
names.push_back( field->keyword() );
|
||||
}
|
||||
}
|
||||
|
||||
return names;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -49,12 +82,44 @@ void RimFieldReference::setField( caf::PdmFieldHandle* field )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFieldReference::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
if ( field() )
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> RimFieldReference::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
if ( fieldNeedingOptions == &m_fieldName )
|
||||
{
|
||||
uiOrdering.add( field() );
|
||||
auto fieldNames = RimFieldReference::fieldNames( m_object );
|
||||
for ( const auto& name : fieldNames )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( name, name ) );
|
||||
}
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_object )
|
||||
{
|
||||
if ( m_objectsForSelection.empty() )
|
||||
{
|
||||
if ( m_object )
|
||||
{
|
||||
QString text = m_object()->uiName();
|
||||
options.push_back( caf::PdmOptionItemInfo( text, m_object ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( auto obj : m_objectsForSelection )
|
||||
{
|
||||
QString text = obj->uiName();
|
||||
options.push_back( caf::PdmOptionItemInfo( text, obj ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uiOrdering.skipRemainingFields();
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -70,7 +135,7 @@ caf::PdmFieldHandle* RimFieldReference::field() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmObjectHandle* RimFieldReference::object() const
|
||||
caf::PdmObject* RimFieldReference::object() const
|
||||
{
|
||||
return m_object;
|
||||
}
|
||||
@@ -78,7 +143,15 @@ caf::PdmObjectHandle* RimFieldReference::object() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFieldReference::setField( caf::PdmObjectHandle* object, const QString& fieldName )
|
||||
void RimFieldReference::setObjectsForSelection( const std::vector<caf::PdmObject*>& objectsForSelection )
|
||||
{
|
||||
m_objectsForSelection = objectsForSelection;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFieldReference::setField( caf::PdmObject* object, const QString& fieldName )
|
||||
{
|
||||
m_object = object;
|
||||
m_fieldName = fieldName;
|
||||
|
||||
Reference in New Issue
Block a user