1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-06 06:07:37 +02:00

Various small performance improvements

This commit is contained in:
Uwe L. Korn
2014-10-12 12:54:18 +01:00
parent f85e34a3e9
commit f6503aba08

View File

@@ -230,25 +230,27 @@ PlayableProxyModel::nameFilterAcceptsRow( int sourceRow, PlayableItem* pi, const
} }
} }
if ( pi->query() ) const Tomahawk::query_ptr& query = pi->query();
if ( query )
{ {
Tomahawk::result_ptr r; Tomahawk::result_ptr r;
if ( pi->query()->numResults() ) if ( query->numResults() )
r = pi->query()->results().first(); r = query->results().first();
if ( !m_showOfflineResults && ( r.isNull() || !r->isOnline() ) ) if ( !m_showOfflineResults && ( r.isNull() || !r->isOnline() ) )
return false; return false;
if ( filterRegExp().isEmpty() ) const QRegExp regexp = filterRegExp();
if ( regexp.isEmpty() )
return true; return true;
QStringList sl = filterRegExp().pattern().split( " ", QString::SkipEmptyParts ); QStringList sl = regexp.pattern().split( " ", QString::SkipEmptyParts );
foreach( QString s, sl ) foreach( const QString& s, sl )
{ {
s = s.toLower(); const Tomahawk::track_ptr& track = query->track();
if ( !pi->query()->track()->artist().toLower().contains( s ) && if ( !track->artist().contains( s, Qt::CaseInsensitive ) &&
!pi->query()->track()->album().toLower().contains( s ) && !track->album().contains( s, Qt::CaseInsensitive ) &&
!pi->query()->track()->track().toLower().contains( s ) ) !track->track().contains( s, Qt::CaseInsensitive ) )
{ {
return false; return false;
} }
@@ -263,7 +265,8 @@ PlayableProxyModel::nameFilterAcceptsRow( int sourceRow, PlayableItem* pi, const
bool found = true; bool found = true;
foreach( const QString& s, sl ) foreach( const QString& s, sl )
{ {
if ( !al->name().contains( s, Qt::CaseInsensitive ) && !al->artist()->name().contains( s, Qt::CaseInsensitive ) ) if ( !al->name().contains( s, Qt::CaseInsensitive ) &&
!al->artist()->name().contains( s, Qt::CaseInsensitive ) )
{ {
found = false; found = false;
} }
@@ -280,7 +283,8 @@ PlayableProxyModel::nameFilterAcceptsRow( int sourceRow, PlayableItem* pi, const
bool found = true; bool found = true;
foreach( const QString& s, sl ) foreach( const QString& s, sl )
{ {
if ( !ar->name().contains( s, Qt::CaseInsensitive ) && !ar->artist()->name().contains( s, Qt::CaseInsensitive ) ) if ( !ar->name().contains( s, Qt::CaseInsensitive ) &&
!ar->artist()->name().contains( s, Qt::CaseInsensitive ) )
{ {
found = false; found = false;
} }