mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Fwk: separate uiTreeHidden and uiHidden properties for PdmUiItem.
This commit is contained in:
parent
8c7ff445b6
commit
0db0cbe8ac
@ -56,6 +56,7 @@ PdmUiItemInfo::PdmUiItemInfo( const QString& uiName,
|
||||
, m_extraDebugText( extraDebugText )
|
||||
, m_editorTypeName( "" )
|
||||
, m_isHidden( false )
|
||||
, m_isTreeHidden( false )
|
||||
, m_isTreeChildrenHidden( false )
|
||||
, m_isReadOnly( false )
|
||||
, m_labelAlignment( LEFT )
|
||||
@ -78,6 +79,7 @@ PdmUiItemInfo::PdmUiItemInfo( const QString& uiName,
|
||||
, m_extraDebugText( extraDebugText )
|
||||
, m_editorTypeName( "" )
|
||||
, m_isHidden( false )
|
||||
, m_isTreeHidden( false )
|
||||
, m_isTreeChildrenHidden( false )
|
||||
, m_isReadOnly( false )
|
||||
, m_labelAlignment( LEFT )
|
||||
@ -409,17 +411,23 @@ void PdmUiItem::setUiHidden( bool isHidden, const QString& uiConfigName /*= ""*/
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool PdmUiItem::isUiTreeHidden( const QString& uiConfigName ) const
|
||||
{
|
||||
// TODO: Must be separated from uiHidden when childField object embedding is implemented
|
||||
const PdmUiItemInfo* conInfo = configInfo( uiConfigName );
|
||||
const PdmUiItemInfo* defInfo = defaultInfo();
|
||||
const PdmUiItemInfo* sttInfo = m_staticItemInfo;
|
||||
|
||||
return isUiHidden( uiConfigName );
|
||||
if ( conInfo && !( conInfo->m_isTreeHidden == -1 ) ) return conInfo->m_isTreeHidden;
|
||||
if ( defInfo && !( defInfo->m_isTreeHidden == -1 ) ) return defInfo->m_isTreeHidden;
|
||||
if ( sttInfo && !( sttInfo->m_isTreeHidden == -1 ) ) return sttInfo->m_isTreeHidden;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiItem::setUiTreeHidden( bool isHidden, const QString& uiConfigName /*= ""*/ )
|
||||
void PdmUiItem::setUiTreeHidden( bool isTreeHidden, const QString& uiConfigName /*= ""*/ )
|
||||
{
|
||||
m_configItemInfos[uiConfigName].m_isHidden = isHidden;
|
||||
m_configItemInfos[uiConfigName].m_isTreeHidden = isTreeHidden;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -66,6 +66,7 @@ public:
|
||||
PdmUiItemInfo()
|
||||
: m_editorTypeName( "" )
|
||||
, m_isHidden( -1 )
|
||||
, m_isTreeHidden( -1 )
|
||||
, m_isTreeChildrenHidden( -1 )
|
||||
, m_isReadOnly( -1 )
|
||||
, m_labelAlignment( LEFT )
|
||||
@ -99,6 +100,7 @@ private:
|
||||
QString m_editorTypeName; ///< Use this exact type of editor to edit this UiItem
|
||||
QString m_3dEditorTypeName; ///< If set, use this editor type to edit this UiItem in 3D
|
||||
int m_isHidden; ///< UiItem should be hidden. -1 means not set
|
||||
int m_isTreeHidden; ///< UiItem should be hidden in tree. -1 means not set
|
||||
int m_isTreeChildrenHidden; ///< Children of UiItem should be hidden. -1 means not set
|
||||
int m_isReadOnly; ///< UiItem should be insensitive, or read only. -1 means not set.
|
||||
LabelPosType m_labelAlignment;
|
||||
@ -267,7 +269,7 @@ public:
|
||||
void setUiHidden( bool isHidden, const QString& uiConfigName = "" );
|
||||
|
||||
bool isUiTreeHidden( const QString& uiConfigName = "" ) const;
|
||||
void setUiTreeHidden( bool isHidden, const QString& uiConfigName = "" );
|
||||
void setUiTreeHidden( bool isTreeHidden, const QString& uiConfigName = "" );
|
||||
|
||||
bool isUiTreeChildrenHidden( const QString& uiConfigName = "" ) const;
|
||||
void setUiTreeChildrenHidden( bool isTreeChildrenHidden, const QString& uiConfigName = "" );
|
||||
|
@ -94,7 +94,7 @@ PdmUiTreeOrdering* PdmUiObjectHandle::uiTreeOrdering( const QString& uiConfigNam
|
||||
|
||||
PdmUiTreeOrdering* uiTreeOrdering = new PdmUiTreeOrdering( nullptr, m_owner );
|
||||
|
||||
expandUiTree( uiTreeOrdering, uiConfigName );
|
||||
if ( !m_owner->uiCapability()->isUiTreeHidden() ) expandUiTree( uiTreeOrdering, uiConfigName );
|
||||
|
||||
return uiTreeOrdering;
|
||||
}
|
||||
@ -120,7 +120,8 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren( PdmUiTreeOrdering* uiTreeOrder
|
||||
{
|
||||
if ( fields[fIdx]->hasChildObjects() && !uiTreeOrdering->containsField( fields[fIdx] ) )
|
||||
{
|
||||
if ( fields[fIdx]->uiCapability()->isUiHidden() && !fields[fIdx]->uiCapability()->isUiTreeChildrenHidden() )
|
||||
if ( fields[fIdx]->uiCapability()->isUiTreeHidden() &&
|
||||
!fields[fIdx]->uiCapability()->isUiTreeChildrenHidden() )
|
||||
{
|
||||
std::vector<PdmObjectHandle*> children;
|
||||
fields[fIdx]->childObjects( &children );
|
||||
@ -128,7 +129,8 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren( PdmUiTreeOrdering* uiTreeOrder
|
||||
std::set<PdmObjectHandle*> objectsAddedByApplication;
|
||||
for ( int i = 0; i < uiTreeOrdering->childCount(); i++ )
|
||||
{
|
||||
if ( uiTreeOrdering->child( i )->isRepresentingObject() )
|
||||
if ( uiTreeOrdering->child( i )->isRepresentingObject() &&
|
||||
!uiTreeOrdering->child( i )->object()->uiCapability()->isUiTreeHidden() )
|
||||
{
|
||||
objectsAddedByApplication.insert( uiTreeOrdering->child( i )->object() );
|
||||
}
|
||||
@ -146,14 +148,14 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren( PdmUiTreeOrdering* uiTreeOrder
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !isAlreadyAdded )
|
||||
if ( !isAlreadyAdded && !children[cIdx]->uiCapability()->isUiTreeHidden() )
|
||||
{
|
||||
uiTreeOrdering->add( children[cIdx] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( !fields[fIdx]->uiCapability()->isUiHidden() )
|
||||
else if ( !fields[fIdx]->uiCapability()->isUiTreeHidden() )
|
||||
{
|
||||
uiTreeOrdering->add( fields[fIdx] );
|
||||
}
|
||||
@ -177,7 +179,7 @@ void PdmUiObjectHandle::expandUiTree( PdmUiTreeOrdering* root, const QString& ui
|
||||
for ( int cIdx = 0; cIdx < root->childCount(); ++cIdx )
|
||||
{
|
||||
PdmUiTreeOrdering* child = root->child( cIdx );
|
||||
if ( child->isValid() && !child->ignoreSubTree() )
|
||||
if ( child->isValid() && !child->ignoreSubTree() && !child->activeItem()->isUiTreeHidden( uiConfigName ) )
|
||||
{
|
||||
expandUiTree( child, uiConfigName );
|
||||
}
|
||||
@ -187,20 +189,21 @@ void PdmUiObjectHandle::expandUiTree( PdmUiTreeOrdering* root, const QString& ui
|
||||
{
|
||||
if ( !root->ignoreSubTree() )
|
||||
{
|
||||
if ( root->isRepresentingField() && !root->field()->uiCapability()->isUiTreeChildrenHidden( uiConfigName ) )
|
||||
if ( root->isRepresentingField() && !root->field()->uiCapability()->isUiTreeHidden( uiConfigName ) &&
|
||||
!root->field()->uiCapability()->isUiTreeChildrenHidden( uiConfigName ) )
|
||||
{
|
||||
std::vector<PdmObjectHandle*> fieldsChildObjects;
|
||||
root->field()->childObjects( &fieldsChildObjects );
|
||||
for ( size_t cIdx = 0; cIdx < fieldsChildObjects.size(); ++cIdx )
|
||||
{
|
||||
PdmObjectHandle* childObject = fieldsChildObjects[cIdx];
|
||||
if ( childObject )
|
||||
if ( childObject && !childObject->uiCapability()->isUiTreeHidden() )
|
||||
{
|
||||
root->appendChild( uiObj( childObject )->uiTreeOrdering( uiConfigName ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( root->isRepresentingObject() &&
|
||||
else if ( root->isRepresentingObject() && !root->object()->uiCapability()->isUiTreeHidden( uiConfigName ) &&
|
||||
!root->object()->uiCapability()->isUiTreeChildrenHidden( uiConfigName ) )
|
||||
{
|
||||
uiObj( root->object() )->defineUiTreeOrdering( *root, uiConfigName );
|
||||
|
@ -63,7 +63,7 @@ void PdmUiTreeOrdering::add( PdmFieldHandle* field, QString uiConfigName )
|
||||
|
||||
for ( PdmObjectHandle* objHandle : children )
|
||||
{
|
||||
this->add( objHandle );
|
||||
if ( !objHandle->uiCapability()->isUiTreeHidden() ) this->add( objHandle );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user