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

* TrackData's cache keys need to use the proper DbImpl's sort-names.

This commit is contained in:
Christian Muehlhaeuser
2013-05-16 12:54:54 +02:00
parent a39a023f22
commit cbb5ac2f2b
2 changed files with 20 additions and 4 deletions

View File

@@ -50,11 +50,11 @@ static QReadWriteLock s_dataidMutex;
inline QString inline QString
datacacheKey( const QString& artist, const QString& track ) cacheKey( const QString& artist, const QString& track )
{ {
QString str; QString str;
QTextStream stream( &str ); QTextStream stream( &str );
stream << artist << track; stream << DatabaseImpl::sortname( artist ) << "\t" << DatabaseImpl::sortname( track );
return str; return str;
} }
@@ -74,7 +74,7 @@ TrackData::get( unsigned int id, const QString& artist, const QString& track )
s_dataidMutex.unlock(); s_dataidMutex.unlock();
QMutexLocker lock( &s_datanameCacheMutex ); QMutexLocker lock( &s_datanameCacheMutex );
const QString key = datacacheKey( artist, track ); const QString key = cacheKey( artist, track );
if ( s_trackDatasByName.contains( key ) ) if ( s_trackDatasByName.contains( key ) )
{ {
trackdata_wptr track = s_trackDatasByName.value( key ); trackdata_wptr track = s_trackDatasByName.value( key );
@@ -112,6 +112,8 @@ TrackData::TrackData( unsigned int id, const QString& artist, const QString& tra
, m_trackId( id ) , m_trackId( id )
{ {
m_waitingForId = ( id == 0 ); m_waitingForId = ( id == 0 );
updateSortNames();
} }
@@ -126,7 +128,7 @@ TrackData::deleteLater()
{ {
QMutexLocker lock( &s_datanameCacheMutex ); QMutexLocker lock( &s_datanameCacheMutex );
const QString key = datacacheKey( m_artist, m_track ); const QString key = cacheKey( m_artist, m_track );
if ( s_trackDatasByName.contains( key ) ) if ( s_trackDatasByName.contains( key ) )
{ {
s_trackDatasByName.remove( key ); s_trackDatasByName.remove( key );
@@ -146,6 +148,14 @@ TrackData::deleteLater()
} }
void
TrackData::updateSortNames()
{
m_artistSortname = DatabaseImpl::sortname( m_artist, true );
m_trackSortname = DatabaseImpl::sortname( m_track );
}
QString QString
TrackData::toString() const TrackData::toString() const
{ {

View File

@@ -68,6 +68,9 @@ public:
QString toString() const; QString toString() const;
Tomahawk::query_ptr toQuery(); Tomahawk::query_ptr toQuery();
QString artistSortname() const { return m_artistSortname; }
QString trackSortname() const { return m_trackSortname; }
QWeakPointer< Tomahawk::TrackData > weakRef() { return m_ownRef; } QWeakPointer< Tomahawk::TrackData > weakRef() { return m_ownRef; }
void setWeakRef( QWeakPointer< Tomahawk::TrackData > weakRef ) { m_ownRef = weakRef; } void setWeakRef( QWeakPointer< Tomahawk::TrackData > weakRef ) { m_ownRef = weakRef; }
@@ -121,9 +124,12 @@ private:
void updateAttributes(); void updateAttributes();
void parseSocialActions(); void parseSocialActions();
void updateSortNames();
QString m_artist; QString m_artist;
QString m_track; QString m_track;
QString m_artistSortname;
QString m_trackSortname;
int m_year; int m_year;