diff --git a/src/libtomahawk/Track.cpp b/src/libtomahawk/Track.cpp index aa68e2d51..df899d164 100644 --- a/src/libtomahawk/Track.cpp +++ b/src/libtomahawk/Track.cpp @@ -320,6 +320,20 @@ Track::playbackCount( const source_ptr& source ) } +unsigned int +Track::chartPosition() const +{ + return m_trackData->chartPosition(); +} + + +unsigned int +Track::chartCount() const +{ + return m_trackData->chartCount(); +} + + void Track::loadAttributes() { diff --git a/src/libtomahawk/Track.h b/src/libtomahawk/Track.h index 25e073df4..a5b05093a 100644 --- a/src/libtomahawk/Track.h +++ b/src/libtomahawk/Track.h @@ -99,6 +99,9 @@ public: QList< Tomahawk::PlaybackLog > playbackHistory( const Tomahawk::source_ptr& source = Tomahawk::source_ptr() ) const; unsigned int playbackCount( const Tomahawk::source_ptr& source = Tomahawk::source_ptr() ); + unsigned int chartPosition() const; + unsigned int chartCount() const; + void loadSocialActions(); QList< Tomahawk::SocialAction > allSocialActions() const; QString socialActionDescription( const QString& action, DescriptionMode mode ) const; diff --git a/src/libtomahawk/TrackData.cpp b/src/libtomahawk/TrackData.cpp index 7d79ff9c9..3a02d7a02 100644 --- a/src/libtomahawk/TrackData.cpp +++ b/src/libtomahawk/TrackData.cpp @@ -105,6 +105,8 @@ TrackData::TrackData( unsigned int id, const QString& artist, const QString& tra , m_attributesLoaded( false ) , m_socialActionsLoaded( false ) , m_playbackHistoryLoaded( false ) + , m_chartPosition( 0 ) + , m_chartCount( 0 ) , m_simTracksLoaded( false ) , m_lyricsLoaded( false ) , m_infoJobs( 0 ) @@ -339,6 +341,7 @@ TrackData::loadStats() m_playbackHistoryLoaded = true; DatabaseCommand_TrackStats* cmd = new DatabaseCommand_TrackStats( m_ownRef.toStrongRef() ); + connect( cmd, SIGNAL( trackStats( unsigned int, unsigned int ) ), SLOT( onTrackStatsLoaded( unsigned int, unsigned int ) ) ); Database::instance()->enqueue( QSharedPointer(cmd) ); } @@ -388,6 +391,30 @@ TrackData::playbackCount( const source_ptr& source ) } +void +TrackData::onTrackStatsLoaded( unsigned int chartPos, unsigned int chartCount ) +{ + m_chartPosition = chartPos; + m_chartCount = chartCount; + + emit statsLoaded(); +} + + +unsigned int +TrackData::chartPosition() const +{ + return m_chartPosition; +} + + +unsigned int +TrackData::chartCount() const +{ + return m_chartCount; +} + + QList TrackData::similarTracks() const { diff --git a/src/libtomahawk/TrackData.h b/src/libtomahawk/TrackData.h index 17729808c..807628f8d 100644 --- a/src/libtomahawk/TrackData.h +++ b/src/libtomahawk/TrackData.h @@ -100,6 +100,9 @@ public: void setPlaybackHistory( const QList< Tomahawk::PlaybackLog >& playbackData ); unsigned int playbackCount( const Tomahawk::source_ptr& source = Tomahawk::source_ptr() ); + unsigned int chartPosition() const; + unsigned int chartCount() const; + QList similarTracks() const; QStringList lyrics() const; @@ -114,6 +117,8 @@ signals: void lyricsLoaded(); private slots: + void onTrackStatsLoaded( unsigned int chartPos, unsigned int chartCount ); + void infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QVariant output ); void infoSystemFinished( QString target ); @@ -142,6 +147,8 @@ private: bool m_playbackHistoryLoaded; QList< PlaybackLog > m_playbackHistory; + unsigned int m_chartPosition; + unsigned int m_chartCount; bool m_simTracksLoaded; QList m_similarTracks;