mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-07-31 03:10:12 +02:00
Internally store trackIds instead of tracks
This commit is contained in:
@@ -28,9 +28,9 @@ DatabaseCommand_CalculatePlaytime::DatabaseCommand_CalculatePlaytime( const play
|
|||||||
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
foreach( plentry_ptr entry, playlist->entries() )
|
foreach( const plentry_ptr& entry, playlist->entries() )
|
||||||
{
|
{
|
||||||
d->tracks.append( entry->query()->track() );
|
d->trackIds.append( QString::number( entry->query()->track()->trackId() ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ DatabaseCommand_CalculatePlaytime::DatabaseCommand_CalculatePlaytime( const trac
|
|||||||
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
d->tracks.append( track );
|
d->trackIds.append( QString::number( track->trackId() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -46,7 +46,10 @@ DatabaseCommand_CalculatePlaytime::DatabaseCommand_CalculatePlaytime( const QLis
|
|||||||
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
d->tracks = tracks;
|
foreach ( const track_ptr& track, tracks )
|
||||||
|
{
|
||||||
|
d->trackIds.append( QString::number( track->trackId() ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -54,7 +57,7 @@ DatabaseCommand_CalculatePlaytime::DatabaseCommand_CalculatePlaytime( const quer
|
|||||||
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
d->tracks.append( query->track() );
|
d->trackIds.append( QString::number( query->track()->trackId() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -62,9 +65,9 @@ DatabaseCommand_CalculatePlaytime::DatabaseCommand_CalculatePlaytime( const QLis
|
|||||||
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
: DatabaseCommand( parent, new DatabaseCommand_CalculatePlaytimePrivate( this , from, to ) )
|
||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
foreach ( query_ptr query, queries )
|
foreach ( const query_ptr& query, queries )
|
||||||
{
|
{
|
||||||
d->tracks.append( query->track() );
|
d->trackIds.append( QString::number( query->track()->trackId() ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,24 +81,17 @@ DatabaseCommand_CalculatePlaytime::exec( DatabaseImpl *dbi )
|
|||||||
{
|
{
|
||||||
Q_D( DatabaseCommand_CalculatePlaytime );
|
Q_D( DatabaseCommand_CalculatePlaytime );
|
||||||
|
|
||||||
// Get all trackIds
|
|
||||||
QStringList trackIds;
|
|
||||||
foreach ( track_ptr track, d->tracks )
|
|
||||||
{
|
|
||||||
trackIds.append( QString::number( track->trackId() ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
QString sql = QString(
|
QString sql = QString(
|
||||||
" SELECT SUM(secs_played) "
|
" SELECT SUM(secs_played) "
|
||||||
" FROM playback_log "
|
" FROM playback_log "
|
||||||
" WHERE track in ( %1 ) AND playtime >= %2 AND playtime <= %3 "
|
" WHERE track in ( %1 ) AND playtime >= %2 AND playtime <= %3 "
|
||||||
).arg( trackIds.join(", ") ).arg( d->from.toTime_t() ).arg( d->to.toTime_t() );
|
).arg( d->trackIds.join(", ") ).arg( d->from.toTime_t() ).arg( d->to.toTime_t() );
|
||||||
|
|
||||||
TomahawkSqlQuery query = dbi->newquery();
|
TomahawkSqlQuery query = dbi->newquery();
|
||||||
query.prepare( sql );
|
query.prepare( sql );
|
||||||
query.exec();
|
query.exec();
|
||||||
|
|
||||||
uint playtime;
|
uint playtime = 0;
|
||||||
while ( query.next() )
|
while ( query.next() )
|
||||||
{
|
{
|
||||||
playtime = query.value( 0 ).toUInt();
|
playtime = query.value( 0 ).toUInt();
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
#include "database/DatabaseCommand_CalculatePlaytime.h"
|
#include "database/DatabaseCommand_CalculatePlaytime.h"
|
||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
namespace Tomahawk
|
namespace Tomahawk
|
||||||
{
|
{
|
||||||
@@ -42,7 +43,7 @@ class DatabaseCommand_CalculatePlaytimePrivate : public DatabaseCommandPrivate
|
|||||||
private:
|
private:
|
||||||
QDateTime from;
|
QDateTime from;
|
||||||
QDateTime to;
|
QDateTime to;
|
||||||
QList<track_ptr> tracks;
|
QStringList trackIds;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user