ResourcesTreeModel: encapsulate conversion from index to items

Encapsulate conversion from a QModelIndex to a ResourcesTreeItem
or a ResourcesItem into static methods.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This commit is contained in:
Tobias Doerffel
2009-06-03 15:29:06 +02:00
parent 39b489d522
commit c5bf76b98c
2 changed files with 17 additions and 10 deletions

View File

@@ -62,6 +62,19 @@ public:
void setFilter( const QString & _s );
// return ResourcesTreeItem belonging to a certain index
static inline ResourcesTreeItem * treeItem( const QModelIndex & _idx )
{
return static_cast<ResourcesTreeItem *>(
_idx.internalPointer() );
}
// return ResourcesItem belonging to a certain index
static inline ResourcesItem * item( const QModelIndex & _idx )
{
return treeItem( _idx )->item();
}
private:
bool filterItems( ResourcesTreeItem * _item,

View File

@@ -42,9 +42,7 @@ QVariant ResourcesTreeModel::data( const QModelIndex & _idx, int _role ) const
{
if( _idx.isValid() )
{
ResourcesTreeItem * item =
static_cast<ResourcesTreeItem *>(
_idx.internalPointer() );
ResourcesTreeItem * item = treeItem( _idx );
if( _role == Qt::DisplayRole )
{
if( item->parent() == m_db->topLevelNode() )
@@ -121,8 +119,7 @@ int ResourcesTreeModel::rowCount( const QModelIndex & _parent ) const
}
else
{
parentItem = static_cast<ResourcesTreeItem *>(
_parent.internalPointer() );
parentItem = treeItem( _parent );
}
return parentItem->rowCount();
}
@@ -146,8 +143,7 @@ QModelIndex ResourcesTreeModel::index( int _row, int _col,
}
else
{
parentItem = static_cast<ResourcesTreeItem *>(
_parent.internalPointer() );
parentItem = treeItem( _parent );
}
if( _row < parentItem->rowCount() )
@@ -167,9 +163,7 @@ QModelIndex ResourcesTreeModel::parent( const QModelIndex & _idx ) const
return QModelIndex();
}
ResourcesTreeItem * childItem =
static_cast<ResourcesTreeItem *>(
_idx.internalPointer() );
ResourcesTreeItem * childItem = treeItem( _idx );
ResourcesTreeItem * parentItem = childItem->parent();
if( parentItem == m_db->topLevelNode() )
{