Resource[Tree]Item: made hidden-flag multi-model capable
The hidden flag has been moved from ResourceTreeItem to ResourceItem and has been made multi-model capable, i.e. a ResourceModel pointer is being used for looking up the flag in a hash table.
This commit is contained in:
@@ -27,12 +27,13 @@
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QList>
|
||||
|
||||
#include "ResourceProvider.h"
|
||||
|
||||
class ResourceTreeItem;
|
||||
|
||||
class ResourceModel;
|
||||
|
||||
class ResourceItem
|
||||
{
|
||||
@@ -77,6 +78,17 @@ public:
|
||||
// copy constructor
|
||||
ResourceItem( const ResourceItem & _item );
|
||||
|
||||
inline void setHidden( bool _h, const ResourceModel * _model )
|
||||
{
|
||||
m_hidden[_model] = _h;
|
||||
}
|
||||
|
||||
inline bool isHidden( const ResourceModel * _model ) const
|
||||
{
|
||||
return m_hidden[_model];
|
||||
}
|
||||
|
||||
|
||||
const ResourceProvider * provider() const
|
||||
{
|
||||
return m_provider;
|
||||
@@ -230,6 +242,8 @@ private:
|
||||
QDateTime m_lastMod;
|
||||
QString m_tags;
|
||||
|
||||
QHash<const ResourceModel *, bool> m_hidden;
|
||||
|
||||
ResourceTreeItem * m_treeItem;
|
||||
|
||||
} ;
|
||||
|
||||
@@ -50,21 +50,12 @@ public:
|
||||
|
||||
~ResourceTreeItem();
|
||||
|
||||
inline void setHidden( bool _h )
|
||||
{
|
||||
m_hidden = _h;
|
||||
}
|
||||
int rowCount( const ResourceModel * _model = NULL ) const;
|
||||
|
||||
inline bool isHidden() const
|
||||
{
|
||||
return m_hidden;
|
||||
}
|
||||
ResourceTreeItem * getChild( int _row,
|
||||
const ResourceModel * _model = NULL );
|
||||
|
||||
int rowCount() const;
|
||||
|
||||
ResourceTreeItem * getChild( int _row );
|
||||
|
||||
int row() const;
|
||||
int row( const ResourceModel * _model = NULL ) const;
|
||||
|
||||
inline void addChild( ResourceTreeItem * _it )
|
||||
{
|
||||
@@ -127,7 +118,6 @@ private:
|
||||
ResourceTreeItem * m_parent;
|
||||
ResourceTreeItemList m_children;
|
||||
|
||||
bool m_hidden;
|
||||
bool m_temporaryMarker;
|
||||
|
||||
ResourceItem * m_item;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
ResourceTreeItem::ResourceTreeItem( ResourceTreeItem * _parent,
|
||||
ResourceItem * _item ) :
|
||||
m_parent( _parent ),
|
||||
m_hidden( false ),
|
||||
m_temporaryMarker( false ),
|
||||
m_item( _item )
|
||||
{
|
||||
@@ -67,12 +66,12 @@ ResourceTreeItem::~ResourceTreeItem()
|
||||
|
||||
|
||||
|
||||
int ResourceTreeItem::rowCount() const
|
||||
int ResourceTreeItem::rowCount( const ResourceModel * _model ) const
|
||||
{
|
||||
int rc = 0;
|
||||
foreachConstResourceTreeItem( m_children )
|
||||
{
|
||||
if( !(*it)->isHidden() )
|
||||
if( !(*it)->item()->isHidden( _model ) )
|
||||
{
|
||||
++rc;
|
||||
}
|
||||
@@ -83,12 +82,13 @@ int ResourceTreeItem::rowCount() const
|
||||
|
||||
|
||||
|
||||
ResourceTreeItem * ResourceTreeItem::getChild( int _row )
|
||||
ResourceTreeItem * ResourceTreeItem::getChild( int _row,
|
||||
const ResourceModel * _model )
|
||||
{
|
||||
int rc = 0;
|
||||
foreachResourceTreeItem( m_children )
|
||||
{
|
||||
if( !(*it)->isHidden() )
|
||||
if( !(*it)->item()->isHidden( _model ) )
|
||||
{
|
||||
if( rc == _row )
|
||||
{
|
||||
@@ -103,7 +103,7 @@ ResourceTreeItem * ResourceTreeItem::getChild( int _row )
|
||||
|
||||
|
||||
|
||||
int ResourceTreeItem::row() const
|
||||
int ResourceTreeItem::row( const ResourceModel * _model ) const
|
||||
{
|
||||
if( !m_parent )
|
||||
{
|
||||
@@ -113,7 +113,7 @@ int ResourceTreeItem::row() const
|
||||
int row = 0;
|
||||
foreachConstResourceTreeItem( m_parent->m_children )
|
||||
{
|
||||
if( !(*it)->isHidden() )
|
||||
if( !(*it)->item()->isHidden( _model ) )
|
||||
{
|
||||
if( *it == this )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user