mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-20 07:49:42 +01:00
* PlayableProxyModel now supports setting a maximum amount of visible items.
This commit is contained in:
parent
264095d351
commit
5ff36d670f
@ -34,6 +34,7 @@ PlayableProxyModel::PlayableProxyModel( QObject* parent )
|
||||
: QSortFilterProxyModel( parent )
|
||||
, m_model( 0 )
|
||||
, m_showOfflineResults( true )
|
||||
, m_maxVisibleItems( -1 )
|
||||
{
|
||||
setFilterCaseSensitivity( Qt::CaseInsensitive );
|
||||
setSortCaseSensitivity( Qt::CaseInsensitive );
|
||||
@ -97,6 +98,9 @@ PlayableProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex& sourcePa
|
||||
PlayableItem* pi = itemFromIndex( sourceModel()->index( sourceRow, 0, sourceParent ) );
|
||||
if ( !pi )
|
||||
return false;
|
||||
|
||||
if ( m_maxVisibleItems >= 0 && sourceRow > m_maxVisibleItems - 1 )
|
||||
return false;
|
||||
|
||||
if ( pi->query() )
|
||||
{
|
||||
@ -211,6 +215,17 @@ PlayableProxyModel::remove( const QList< QPersistentModelIndex >& indexes )
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PlayableProxyModel::setMaxVisibleItems( int items )
|
||||
{
|
||||
if ( m_maxVisibleItems == items )
|
||||
return;
|
||||
|
||||
m_maxVisibleItems = items;
|
||||
invalidateFilter();
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
PlayableProxyModel::lessThan( int column, const Tomahawk::query_ptr& q1, const Tomahawk::query_ptr& q2 ) const
|
||||
{
|
||||
|
@ -50,6 +50,9 @@ public:
|
||||
|
||||
virtual bool showOfflineResults() const { return m_showOfflineResults; }
|
||||
virtual void setShowOfflineResults( bool b ) { m_showOfflineResults = b; }
|
||||
|
||||
virtual int maxVisibleItems() const { return m_maxVisibleItems; }
|
||||
virtual void setMaxVisibleItems( int items );
|
||||
|
||||
virtual void emitFilterChanged( const QString &pattern ) { emit filterChanged( pattern ); }
|
||||
|
||||
@ -76,7 +79,9 @@ private:
|
||||
virtual bool lessThan( int column, const Tomahawk::query_ptr& left, const Tomahawk::query_ptr& right ) const;
|
||||
|
||||
PlayableModel* m_model;
|
||||
|
||||
bool m_showOfflineResults;
|
||||
int m_maxVisibleItems;
|
||||
};
|
||||
|
||||
#endif // TRACKPROXYMODEL_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user