1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-01 06:22:43 +01: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
datacacheKey( const QString& artist, const QString& track )
cacheKey( const QString& artist, const QString& track )
{
QString str;
QTextStream stream( &str );
stream << artist << track;
stream << DatabaseImpl::sortname( artist ) << "\t" << DatabaseImpl::sortname( track );
return str;
}
@ -74,7 +74,7 @@ TrackData::get( unsigned int id, const QString& artist, const QString& track )
s_dataidMutex.unlock();
QMutexLocker lock( &s_datanameCacheMutex );
const QString key = datacacheKey( artist, track );
const QString key = cacheKey( artist, track );
if ( s_trackDatasByName.contains( 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_waitingForId = ( id == 0 );
updateSortNames();
}
@ -126,7 +128,7 @@ TrackData::deleteLater()
{
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 ) )
{
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
TrackData::toString() const
{

View File

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