mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-19 23:39:42 +01:00
Less calls to itemFromIndex
This commit is contained in:
parent
8eab0442f2
commit
44ae9f7608
@ -145,25 +145,32 @@ PlayableProxyModel::setSourcePlayableModel( PlayableModel* sourceModel )
|
||||
bool
|
||||
PlayableProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const
|
||||
{
|
||||
if ( m_hideDupeItems && !dupeFilterAcceptsRow( sourceRow, sourceParent ) )
|
||||
return false;
|
||||
if ( m_maxVisibleItems > 0 && !visibilityFilterAcceptsRow( sourceRow, sourceParent ) )
|
||||
PlayableItem* pi = itemFromIndex( sourceModel()->index( sourceRow, 0, sourceParent ) );
|
||||
if ( !pi )
|
||||
return false;
|
||||
|
||||
return nameFilterAcceptsRow( sourceRow, sourceParent );
|
||||
return filterAcceptsRowInternal( sourceRow, pi, sourceParent );
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
PlayableProxyModel::dupeFilterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const
|
||||
PlayableProxyModel::filterAcceptsRowInternal( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const
|
||||
{
|
||||
if ( m_hideDupeItems && !dupeFilterAcceptsRow( sourceRow, pi, sourceParent ) )
|
||||
return false;
|
||||
if ( m_maxVisibleItems > 0 && !visibilityFilterAcceptsRow( sourceRow, sourceParent ) )
|
||||
return false;
|
||||
|
||||
return nameFilterAcceptsRow( sourceRow, pi, sourceParent );
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
PlayableProxyModel::dupeFilterAcceptsRow( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const
|
||||
{
|
||||
if ( !m_hideDupeItems )
|
||||
return true;
|
||||
|
||||
PlayableItem* pi = itemFromIndex( sourceModel()->index( sourceRow, 0, sourceParent ) );
|
||||
if ( !pi )
|
||||
return false;
|
||||
|
||||
for ( int i = 0; i < sourceRow; i++ )
|
||||
{
|
||||
PlayableItem* di = itemFromIndex( sourceModel()->index( i, 0, sourceParent ) );
|
||||
@ -174,7 +181,7 @@ PlayableProxyModel::dupeFilterAcceptsRow( int sourceRow, const QModelIndex& sour
|
||||
( pi->album() && pi->album() == di->album() ) ||
|
||||
( pi->artist() && pi->artist()->name() == di->artist()->name() );
|
||||
|
||||
if ( b && filterAcceptsRow( i, sourceParent ) )
|
||||
if ( b && filterAcceptsRowInternal( i, di, sourceParent ) )
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -191,7 +198,8 @@ PlayableProxyModel::visibilityFilterAcceptsRow( int sourceRow, const QModelIndex
|
||||
int items = 0;
|
||||
for ( int i = 0; ( i < sourceRow ) && ( items < m_maxVisibleItems ) ; i++ )
|
||||
{
|
||||
if ( dupeFilterAcceptsRow( i, sourceParent ) && nameFilterAcceptsRow( i, sourceParent ) )
|
||||
PlayableItem* pi = itemFromIndex( sourceModel()->index( i, 0, sourceParent ) );
|
||||
if ( pi && dupeFilterAcceptsRow( i, pi, sourceParent ) && nameFilterAcceptsRow( i, pi, sourceParent ) )
|
||||
{
|
||||
items++;
|
||||
}
|
||||
@ -202,12 +210,8 @@ PlayableProxyModel::visibilityFilterAcceptsRow( int sourceRow, const QModelIndex
|
||||
|
||||
|
||||
bool
|
||||
PlayableProxyModel::nameFilterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const
|
||||
PlayableProxyModel::nameFilterAcceptsRow( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const
|
||||
{
|
||||
PlayableItem* pi = itemFromIndex( sourceModel()->index( sourceRow, 0, sourceParent ) );
|
||||
if ( !pi )
|
||||
return false;
|
||||
|
||||
if ( m_hideEmptyParents && pi->source() )
|
||||
{
|
||||
if ( !sourceModel()->rowCount( sourceModel()->index( sourceRow, 0, sourceParent ) ) )
|
||||
|
@ -117,8 +117,9 @@ private slots:
|
||||
void onCurrentIndexChanged( const QModelIndex& newIndex, const QModelIndex& oldIndex );
|
||||
|
||||
private:
|
||||
bool nameFilterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const;
|
||||
bool dupeFilterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const;
|
||||
bool filterAcceptsRowInternal( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const;
|
||||
bool nameFilterAcceptsRow( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const;
|
||||
bool dupeFilterAcceptsRow( int sourceRow, PlayableItem* pi, const QModelIndex& sourceParent ) const;
|
||||
bool visibilityFilterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const;
|
||||
bool lessThan( int column, const Tomahawk::query_ptr& left, const Tomahawk::query_ptr& right ) const;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user