From 99e331d8cdda7893ab8ef390ef585efe1200e81e Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sat, 8 Jun 2013 10:20:01 +0200 Subject: [PATCH] * DbCmd_PlaybackHistory can now deal with date ranges. --- .../database/DatabaseCommand_PlaybackHistory.cpp | 10 ++++++++-- .../database/DatabaseCommand_PlaybackHistory.h | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.cpp b/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.cpp index fd5695997..51188e861 100644 --- a/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.cpp +++ b/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.cpp @@ -30,11 +30,17 @@ void DatabaseCommand_PlaybackHistory::exec( DatabaseImpl* dbi ) { TomahawkSqlQuery query = dbi->newquery(); - QString whereToken; + QString whereToken( "WHERE 1" ); if ( !source().isNull() ) { - whereToken = QString( "WHERE source %1" ).arg( source()->isLocal() ? "IS NULL" : QString( "= %1" ).arg( source()->id() ) ); + whereToken += QString( " AND source %1" ).arg( source()->isLocal() ? "IS NULL" : QString( "= %1" ).arg( source()->id() ) ); + } + if ( m_dateFrom.year() > 1900 && m_dateTo.year() > 1900 ) + { + whereToken += QString( " AND playtime >= %1 AND playtime <= %2" ) + .arg( QDateTime( m_dateFrom ).toUTC().toTime_t() ) + .arg( QDateTime( m_dateTo.addDays( 1 ) ).toUTC().toTime_t() ); } QString sql = QString( diff --git a/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.h b/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.h index 94d194969..289681497 100644 --- a/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.h +++ b/src/libtomahawk/database/DatabaseCommand_PlaybackHistory.h @@ -44,12 +44,16 @@ public: virtual QString commandname() const { return "playbackhistory"; } void setLimit( unsigned int amount ) { m_amount = amount; } + void setDateFrom( const QDate& date ) { m_dateFrom = date; } + void setDateTo( const QDate& date ) { m_dateTo = date; } signals: void tracks( const QList& tracks, QList logs ); private: unsigned int m_amount; + QDate m_dateFrom; + QDate m_dateTo; }; #endif // DATABASECOMMAND_PLAYBACKHISTORY_H