mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-20 07:49:42 +01:00
* These DBCmds don't need or want to use queries.
This commit is contained in:
parent
18f44f4e47
commit
9be6dfaad5
@ -39,12 +39,13 @@ DatabaseCommand_LoadSocialActions::exec( DatabaseImpl* dbi )
|
||||
|
||||
if ( m_actionOnly.isNull() )
|
||||
{
|
||||
//FIXME!
|
||||
// Load for just specified track
|
||||
int artid = dbi->artistId( m_artist, false );
|
||||
int artid = dbi->artistId( m_track->artist(), false );
|
||||
if( artid < 1 )
|
||||
return;
|
||||
|
||||
int trkid = dbi->trackId( artid, m_track, false );
|
||||
int trkid = dbi->trackId( artid, m_track->track(), false );
|
||||
if( trkid < 1 )
|
||||
return;
|
||||
|
||||
@ -72,7 +73,7 @@ DatabaseCommand_LoadSocialActions::exec( DatabaseImpl* dbi )
|
||||
allSocialActions.append( action );
|
||||
}
|
||||
|
||||
m_query->setAllSocialActions( allSocialActions );
|
||||
m_track->setAllSocialActions( allSocialActions );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -92,8 +93,7 @@ DatabaseCommand_LoadSocialActions::exec( DatabaseImpl* dbi )
|
||||
continue;
|
||||
|
||||
const QVariantMap artist = dbi->artist( track.value( "artist" ).toInt() );
|
||||
|
||||
const query_ptr trackQuery = Query::get( artist.value( "name" ).toString(), track.value( "name" ).toString(), QString(), QString(), false );
|
||||
const track_ptr t = Track::get( artist.value( "name" ).toString(), track.value( "name" ).toString(), QString() );
|
||||
|
||||
Tomahawk::SocialAction action;
|
||||
action.action = m_actionOnly; // action
|
||||
@ -101,7 +101,7 @@ DatabaseCommand_LoadSocialActions::exec( DatabaseImpl* dbi )
|
||||
action.timestamp = query.value( 2 ); // timestamp
|
||||
action.source = source(); // source
|
||||
|
||||
trackActions[ trackQuery ] = action;
|
||||
trackActions[ t ] = action;
|
||||
}
|
||||
|
||||
emit done( trackActions );
|
||||
|
@ -46,7 +46,7 @@ class DLLEXPORT DatabaseCommand_LoadSocialActions : public DatabaseCommand
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
typedef QMap<Tomahawk::query_ptr,Tomahawk::SocialAction> TrackActions;
|
||||
typedef QMap<Tomahawk::track_ptr,Tomahawk::SocialAction> TrackActions;
|
||||
/**
|
||||
* \brief Default constructor for DatabaseCommand_LoadSocialActions.
|
||||
*
|
||||
@ -63,12 +63,10 @@ public:
|
||||
*
|
||||
* Constructor which creates a new database command for loading all social actions.
|
||||
*/
|
||||
explicit DatabaseCommand_LoadSocialActions( const Tomahawk::query_ptr& query, QObject* parent = 0 )
|
||||
: DatabaseCommand( parent ), m_query( query )
|
||||
explicit DatabaseCommand_LoadSocialActions( const Tomahawk::track_ptr& track, QObject* parent = 0 )
|
||||
: DatabaseCommand( parent ), m_track( track )
|
||||
{
|
||||
setSource( SourceList::instance()->getLocal() );
|
||||
setArtist( query->artist() );
|
||||
setTrack( query->track() );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -98,35 +96,8 @@ public:
|
||||
*/
|
||||
virtual void exec( DatabaseImpl* );
|
||||
|
||||
/**
|
||||
* \brief Returns the artist associated with this database command.
|
||||
* \return Name of the artist.
|
||||
* \see setArtist()
|
||||
*/
|
||||
QString artist() const { return m_artist; }
|
||||
|
||||
/**
|
||||
* \brief Sets the artist name for this database command.
|
||||
* \param s QString containing the artist name.
|
||||
* \see artist()
|
||||
*/
|
||||
void setArtist( const QString& s ) { m_artist = s; }
|
||||
|
||||
/**
|
||||
* \brief Returns the track name associated with this social action.
|
||||
* \return QString containing the track name.
|
||||
* \see setTrack()
|
||||
*/
|
||||
QString track() const { return m_track; }
|
||||
|
||||
/**
|
||||
* \brief Sets the track name associated with this database command.
|
||||
* \param track QString containing the track name.
|
||||
* \see track()
|
||||
*/
|
||||
void setTrack( const QString& s ) { m_track = s; }
|
||||
|
||||
virtual bool doesMutates() const { return false; }
|
||||
|
||||
signals:
|
||||
/**
|
||||
* All loaded social actions for each track found, for queries that generate all tracks
|
||||
@ -135,9 +106,7 @@ signals:
|
||||
void done( DatabaseCommand_LoadSocialActions::TrackActions actionsForTracks );
|
||||
|
||||
private:
|
||||
Tomahawk::query_ptr m_query;
|
||||
QString m_artist;
|
||||
QString m_track;
|
||||
Tomahawk::track_ptr m_track;
|
||||
QString m_actionOnly;
|
||||
|
||||
};
|
||||
|
@ -37,37 +37,23 @@ using namespace Tomahawk;
|
||||
void
|
||||
DatabaseCommand_LogPlayback::postCommitHook()
|
||||
{
|
||||
if ( !m_query.isNull() )
|
||||
return;
|
||||
connect( this, SIGNAL( trackPlaying( Tomahawk::track_ptr, unsigned int ) ),
|
||||
source().data(), SLOT( onPlaybackStarted( Tomahawk::track_ptr, unsigned int ) ), Qt::QueuedConnection );
|
||||
connect( this, SIGNAL( trackPlayed( Tomahawk::track_ptr, unsigned int, unsigned int ) ),
|
||||
source().data(), SLOT( onPlaybackFinished( Tomahawk::track_ptr, unsigned int, unsigned int ) ), Qt::QueuedConnection );
|
||||
|
||||
connect( this, SIGNAL( trackPlaying( Tomahawk::query_ptr, unsigned int ) ),
|
||||
source().data(), SLOT( onPlaybackStarted( Tomahawk::query_ptr, unsigned int ) ), Qt::QueuedConnection );
|
||||
connect( this, SIGNAL( trackPlayed( Tomahawk::query_ptr ) ),
|
||||
source().data(), SLOT( onPlaybackFinished( Tomahawk::query_ptr ) ), Qt::QueuedConnection );
|
||||
|
||||
if ( !m_result.isNull() && m_query.isNull() )
|
||||
{
|
||||
m_query = m_result->toQuery();
|
||||
}
|
||||
else
|
||||
{
|
||||
// do not auto resolve this track
|
||||
m_query = Tomahawk::Query::get( m_artist, m_track, QString() );
|
||||
}
|
||||
|
||||
if ( m_query.isNull() )
|
||||
track_ptr track = Track::get( m_artist, m_track, QString() );
|
||||
if ( !track )
|
||||
return;
|
||||
|
||||
m_query->setPlayedBy( source(), m_playtime );
|
||||
|
||||
if ( m_action == Finished )
|
||||
{
|
||||
emit trackPlayed( m_query );
|
||||
emit trackPlayed( track, m_playtime, m_secsPlayed );
|
||||
}
|
||||
// if the play time is more than 10 minutes in the past, ignore
|
||||
else if ( m_action == Started && QDateTime::fromTime_t( playtime() ).secsTo( QDateTime::currentDateTime() ) < STARTED_THRESHOLD )
|
||||
{
|
||||
emit trackPlaying( m_query, m_trackDuration );
|
||||
emit trackPlaying( track, m_trackDuration );
|
||||
}
|
||||
|
||||
if ( source()->isLocal() )
|
||||
@ -91,8 +77,8 @@ DatabaseCommand_LogPlayback::exec( DatabaseImpl* dbi )
|
||||
|
||||
QVariant srcid = source()->isLocal() ? QVariant( QVariant::Int ) : source()->id();
|
||||
TomahawkSqlQuery query = dbi->newquery();
|
||||
|
||||
if ( !m_query.isNull() )
|
||||
|
||||
if ( m_playtime > 0 )
|
||||
{
|
||||
query.prepare( QString( "SELECT * FROM playback_log WHERE source %1 AND playtime = %2" ).arg( srcid.isNull() ? "IS NULL" : srcid.toString() ).arg( m_playtime ) );
|
||||
query.exec();
|
||||
@ -102,6 +88,8 @@ DatabaseCommand_LogPlayback::exec( DatabaseImpl* dbi )
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
m_playtime = QDateTime::currentDateTimeUtc().toTime_t();
|
||||
|
||||
// tDebug() << "Logging playback of" << m_artist << "-" << m_track << "for source" << srcid << "- timestamp:" << m_playtime;
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "SourceList.h"
|
||||
#include "Typedefs.h"
|
||||
#include "Artist.h"
|
||||
#include "Query.h"
|
||||
#include "Track.h"
|
||||
|
||||
#include "DllMacro.h"
|
||||
|
||||
@ -48,29 +48,17 @@ public:
|
||||
};
|
||||
|
||||
explicit DatabaseCommand_LogPlayback( QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_playtime( 0 ), m_secsPlayed( 0 ), m_trackDuration( 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_secsPlayed( 0 ), m_playtime( 0 ), m_trackDuration( 0 )
|
||||
{}
|
||||
|
||||
explicit DatabaseCommand_LogPlayback( const Tomahawk::query_ptr& query, Action action, uint timeStamp, QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_query( query ), m_secsPlayed( 0 ), m_action( action )
|
||||
explicit DatabaseCommand_LogPlayback( const Tomahawk::track_ptr& track, Action action, unsigned int secsPlayed = 0, unsigned int timeStamp = 0, QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_secsPlayed( secsPlayed ), m_playtime( timeStamp ), m_action( action )
|
||||
{
|
||||
m_playtime = timeStamp;
|
||||
m_trackDuration = 0;
|
||||
m_trackDuration = track->duration();
|
||||
setSource( SourceList::instance()->getLocal() );
|
||||
|
||||
setArtist( query->artist() );
|
||||
setTrack( query->track() );
|
||||
}
|
||||
|
||||
explicit DatabaseCommand_LogPlayback( const Tomahawk::result_ptr& result, Action action, unsigned int secsPlayed = 0, QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_result( result ), m_secsPlayed( secsPlayed ), m_action( action )
|
||||
{
|
||||
m_playtime = QDateTime::currentDateTimeUtc().toTime_t();
|
||||
m_trackDuration = result->duration();
|
||||
setSource( SourceList::instance()->getLocal() );
|
||||
|
||||
setArtist( result->artist()->name() );
|
||||
setTrack( result->track() );
|
||||
setArtist( track->artist() );
|
||||
setTrack( track->track() );
|
||||
}
|
||||
|
||||
virtual QString commandname() const { return "logplayback"; }
|
||||
@ -102,17 +90,14 @@ public:
|
||||
void setAction( int a ) { m_action = (Action)a; }
|
||||
|
||||
signals:
|
||||
void trackPlaying( const Tomahawk::query_ptr& query, unsigned int duration );
|
||||
void trackPlayed( const Tomahawk::query_ptr& query );
|
||||
void trackPlaying( const Tomahawk::track_ptr& track, unsigned int duration );
|
||||
void trackPlayed( const Tomahawk::track_ptr& track, unsigned int playtime, unsigned int secsPlayed );
|
||||
|
||||
private:
|
||||
Tomahawk::result_ptr m_result;
|
||||
Tomahawk::query_ptr m_query;
|
||||
|
||||
QString m_artist;
|
||||
QString m_track;
|
||||
unsigned int m_playtime;
|
||||
unsigned int m_secsPlayed;
|
||||
unsigned int m_playtime;
|
||||
unsigned int m_trackDuration;
|
||||
Action m_action;
|
||||
};
|
||||
|
@ -48,7 +48,8 @@ DatabaseCommand_PlaybackHistory::exec( DatabaseImpl* dbi )
|
||||
query.prepare( sql );
|
||||
query.exec();
|
||||
|
||||
QList<Tomahawk::query_ptr> ql;
|
||||
QList<Tomahawk::track_ptr> tl;
|
||||
QList<Tomahawk::PlaybackLog> logs;
|
||||
while ( query.next() )
|
||||
{
|
||||
TomahawkSqlQuery query_track = dbi->newquery();
|
||||
@ -65,22 +66,27 @@ DatabaseCommand_PlaybackHistory::exec( DatabaseImpl* dbi )
|
||||
|
||||
if ( query_track.next() )
|
||||
{
|
||||
Tomahawk::query_ptr q = Tomahawk::Query::get( query_track.value( 1 ).toString(), query_track.value( 0 ).toString(), QString() );
|
||||
if ( q.isNull() )
|
||||
Tomahawk::track_ptr track = Tomahawk::Track::get( query_track.value( 1 ).toString(), query_track.value( 0 ).toString(), QString() );
|
||||
if ( !track )
|
||||
continue;
|
||||
|
||||
Tomahawk::PlaybackLog log;
|
||||
log.timestamp = query.value( 1 ).toUInt();
|
||||
log.secsPlayed = query.value( 2 ).toUInt();
|
||||
|
||||
if ( query.value( 3 ).toUInt() == 0 )
|
||||
{
|
||||
q->setPlayedBy( SourceList::instance()->getLocal(), query.value( 1 ).toUInt() );
|
||||
log.source = SourceList::instance()->getLocal();
|
||||
}
|
||||
else
|
||||
{
|
||||
q->setPlayedBy( SourceList::instance()->get( query.value( 3 ).toUInt() ), query.value( 1 ).toUInt() );
|
||||
log.source = SourceList::instance()->get( query.value( 3 ).toUInt() );
|
||||
}
|
||||
|
||||
ql << q;
|
||||
logs << log;
|
||||
tl << track;
|
||||
}
|
||||
}
|
||||
|
||||
emit tracks( ql );
|
||||
emit tracks( tl, logs );
|
||||
}
|
||||
|
@ -23,8 +23,8 @@
|
||||
#include <QVariantMap>
|
||||
|
||||
#include "DatabaseCommand.h"
|
||||
#include "Track.h"
|
||||
#include "Typedefs.h"
|
||||
|
||||
#include "DllMacro.h"
|
||||
|
||||
class DLLEXPORT DatabaseCommand_PlaybackHistory : public DatabaseCommand
|
||||
@ -46,7 +46,7 @@ public:
|
||||
void setLimit( unsigned int amount ) { m_amount = amount; }
|
||||
|
||||
signals:
|
||||
void tracks( const QList<Tomahawk::query_ptr>& queries );
|
||||
void tracks( const QList<Tomahawk::track_ptr>& tracks, QList<Tomahawk::PlaybackLog> logs );
|
||||
|
||||
private:
|
||||
unsigned int m_amount;
|
||||
|
@ -33,18 +33,10 @@ DatabaseCommand_ShareTrack::DatabaseCommand_ShareTrack( QObject* parent )
|
||||
{}
|
||||
|
||||
|
||||
DatabaseCommand_ShareTrack::DatabaseCommand_ShareTrack( const Tomahawk::query_ptr& query,
|
||||
DatabaseCommand_ShareTrack::DatabaseCommand_ShareTrack( const Tomahawk::track_ptr& track,
|
||||
const QString& recipientDbid,
|
||||
QObject* parent )
|
||||
: DatabaseCommand_SocialAction( query, "Inbox", "", parent )
|
||||
, m_recipient( recipientDbid )
|
||||
{}
|
||||
|
||||
|
||||
DatabaseCommand_ShareTrack::DatabaseCommand_ShareTrack( const Tomahawk::result_ptr& result,
|
||||
const QString& recipientDbid,
|
||||
QObject* parent )
|
||||
: DatabaseCommand_SocialAction( result->toQuery(), "Inbox", "", parent )
|
||||
: DatabaseCommand_SocialAction( track, "Inbox", "", parent )
|
||||
, m_recipient( recipientDbid )
|
||||
{}
|
||||
|
||||
@ -55,6 +47,7 @@ DatabaseCommand_ShareTrack::commandname() const
|
||||
return "sharetrack";
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
DatabaseCommand_ShareTrack::exec( DatabaseImpl* dbi )
|
||||
{
|
||||
@ -70,13 +63,14 @@ DatabaseCommand_ShareTrack::exec( DatabaseImpl* dbi )
|
||||
DatabaseCommand_SocialAction::exec( dbi );
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
DatabaseCommand_ShareTrack::postCommitHook()
|
||||
{
|
||||
if ( source()->isLocal() )
|
||||
Servent::instance()->triggerDBSync();
|
||||
|
||||
if ( !m_query.isNull() )
|
||||
if ( !m_track.isNull() )
|
||||
return;
|
||||
|
||||
QString myDbid = SourceList::instance()->getLocal()->nodeId();
|
||||
@ -85,9 +79,9 @@ DatabaseCommand_ShareTrack::postCommitHook()
|
||||
return;
|
||||
|
||||
//From here on, everything happens only on the recipient, and only if recipient!=source
|
||||
m_query = Tomahawk::Query::get( artist(), track(), QString() );
|
||||
m_track = Tomahawk::Track::get( artist(), track(), QString() );
|
||||
|
||||
if ( m_query.isNull() )
|
||||
if ( m_track.isNull() )
|
||||
return;
|
||||
|
||||
Tomahawk::SocialAction action;
|
||||
@ -98,17 +92,17 @@ DatabaseCommand_ShareTrack::postCommitHook()
|
||||
|
||||
QList< Tomahawk::SocialAction > actions;
|
||||
actions << action;
|
||||
m_query->setAllSocialActions( actions );
|
||||
m_track->setAllSocialActions( actions );
|
||||
|
||||
QMetaObject::invokeMethod( ViewManager::instance()->inboxModel(),
|
||||
"insertQuery",
|
||||
Qt::QueuedConnection,
|
||||
Q_ARG( const Tomahawk::query_ptr&, m_query ),
|
||||
Q_ARG( const Tomahawk::query_ptr&, m_track->toQuery() ),
|
||||
Q_ARG( int, 0 ) /*row*/ );
|
||||
|
||||
QString friendlyName = source()->friendlyName();
|
||||
if( ViewManager::instance()->currentPage() != ViewManager::instance()->inboxWidget() )
|
||||
JobStatusView::instance()->model()->addJob( new InboxJobItem( friendlyName, m_query ) );
|
||||
JobStatusView::instance()->model()->addJob( new InboxJobItem( friendlyName, m_track ) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,16 +36,10 @@ class DLLEXPORT DatabaseCommand_ShareTrack : public DatabaseCommand_SocialAction
|
||||
public:
|
||||
explicit DatabaseCommand_ShareTrack( QObject* parent = 0 );
|
||||
|
||||
explicit DatabaseCommand_ShareTrack( const Tomahawk::query_ptr& query,
|
||||
explicit DatabaseCommand_ShareTrack( const Tomahawk::track_ptr& track,
|
||||
const QString& recipientDbid,
|
||||
QObject* parent = 0 );
|
||||
|
||||
explicit DatabaseCommand_ShareTrack( const Tomahawk::result_ptr& result,
|
||||
const QString& recipientDbid,
|
||||
QObject* parent = 0 );
|
||||
|
||||
//TODO: construct from result instead?
|
||||
|
||||
virtual QString commandname() const;
|
||||
|
||||
virtual void exec( DatabaseImpl* );
|
||||
|
@ -51,13 +51,13 @@ DatabaseCommand_SocialAction::exec( DatabaseImpl* dbi )
|
||||
|
||||
QVariant srcid = source()->isLocal() ? QVariant( QVariant::Int ) : source()->id();
|
||||
|
||||
if ( m_artist.isNull() || m_track.isEmpty() || m_action.isEmpty() )
|
||||
if ( m_artist.isNull() || m_title.isEmpty() || m_action.isEmpty() )
|
||||
return;
|
||||
|
||||
int artid = dbi->artistId( m_artist, true );
|
||||
if ( artid < 1 )
|
||||
return;
|
||||
int trkid = dbi->trackId( artid, m_track, true );
|
||||
int trkid = dbi->trackId( artid, m_title, true );
|
||||
if ( trkid < 1 )
|
||||
return;
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "SourceList.h"
|
||||
#include "Typedefs.h"
|
||||
#include "Artist.h"
|
||||
#include "Track.h"
|
||||
|
||||
#include "DllMacro.h"
|
||||
|
||||
@ -61,20 +62,20 @@ public:
|
||||
|
||||
/**
|
||||
* \brief Overloaded constructor for DatabaseCommand_SocialAction.
|
||||
* \param query A Tomahawk Query object.
|
||||
* \param track A Tomahawk Track object.
|
||||
* \param action Name of the social action to be written to the database.
|
||||
* \param comment Comment associated with this social action.
|
||||
* \param parent Parent class.
|
||||
*
|
||||
* Constructor which creates a new database command for the specified social action.
|
||||
*/
|
||||
explicit DatabaseCommand_SocialAction( const Tomahawk::query_ptr& query, QString action, QString comment = "", QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_query( query ), m_action( action )
|
||||
explicit DatabaseCommand_SocialAction( const Tomahawk::track_ptr& track, QString action, QString comment = "", QObject* parent = 0 )
|
||||
: DatabaseCommandLoggable( parent ), m_track( track ), m_action( action )
|
||||
{
|
||||
setSource( SourceList::instance()->getLocal() );
|
||||
|
||||
setArtist( query->artist() );
|
||||
setTrack( query->track() );
|
||||
setArtist( track->artist() );
|
||||
setTrack( track->track() );
|
||||
setComment( comment );
|
||||
setTimestamp( QDateTime::currentDateTime().toTime_t() );
|
||||
}
|
||||
@ -118,14 +119,14 @@ public:
|
||||
* \return QString containing the track name.
|
||||
* \see setTrack()
|
||||
*/
|
||||
virtual QString track() const { return m_track; }
|
||||
virtual QString track() const { return m_title; }
|
||||
|
||||
/**
|
||||
* \brief Sets the track name associated with this database command.
|
||||
* \param track QString containing the track name.
|
||||
* \see track()
|
||||
*/
|
||||
virtual void setTrack( const QString& track ) { m_track = track; }
|
||||
virtual void setTrack( const QString& title ) { m_title = title; }
|
||||
|
||||
/**
|
||||
* \brief Returns the social action for this database command instance.
|
||||
@ -173,11 +174,11 @@ public:
|
||||
virtual bool groupable() const { return true; }
|
||||
|
||||
protected:
|
||||
Tomahawk::query_ptr m_query;
|
||||
Tomahawk::track_ptr m_track;
|
||||
|
||||
private:
|
||||
QString m_artist;
|
||||
QString m_track;
|
||||
QString m_title;
|
||||
int m_timestamp;
|
||||
QString m_comment;
|
||||
QString m_action; //! currently used values: Love, Inbox
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "DatabaseCommand_TrackStats.h"
|
||||
|
||||
#include "Artist.h"
|
||||
#include "DatabaseImpl.h"
|
||||
#include "SourceList.h"
|
||||
#include "utils/Logger.h"
|
||||
@ -25,9 +26,9 @@
|
||||
using namespace Tomahawk;
|
||||
|
||||
|
||||
DatabaseCommand_TrackStats::DatabaseCommand_TrackStats( const query_ptr& query, QObject* parent )
|
||||
DatabaseCommand_TrackStats::DatabaseCommand_TrackStats( const track_ptr& track, QObject* parent )
|
||||
: DatabaseCommand( parent )
|
||||
, m_query( query )
|
||||
, m_track( track )
|
||||
{
|
||||
}
|
||||
|
||||
@ -44,13 +45,13 @@ DatabaseCommand_TrackStats::exec( DatabaseImpl* dbi )
|
||||
{
|
||||
TomahawkSqlQuery query = dbi->newquery();
|
||||
|
||||
if ( !m_query.isNull() )
|
||||
if ( !m_track.isNull() )
|
||||
{
|
||||
int artid = dbi->artistId( m_query->artist(), false );
|
||||
int artid = dbi->artistId( m_track->artist(), false );
|
||||
if( artid < 1 )
|
||||
return;
|
||||
|
||||
int trkid = dbi->trackId( artid, m_query->track(), false );
|
||||
int trkid = dbi->trackId( artid, m_track->track(), false );
|
||||
if( trkid < 1 )
|
||||
return;
|
||||
|
||||
@ -81,8 +82,8 @@ DatabaseCommand_TrackStats::exec( DatabaseImpl* dbi )
|
||||
playbackData.append( log );
|
||||
}
|
||||
|
||||
if ( !m_query.isNull() )
|
||||
m_query->setPlaybackHistory( playbackData );
|
||||
if ( !m_track.isNull() )
|
||||
m_track->setPlaybackHistory( playbackData );
|
||||
else
|
||||
m_artist->setPlaybackHistory( playbackData );
|
||||
|
||||
|
@ -23,9 +23,7 @@
|
||||
|
||||
#include "DatabaseCommand.h"
|
||||
#include "Typedefs.h"
|
||||
#include "Query.h"
|
||||
#include "Artist.h"
|
||||
|
||||
#include "Track.h"
|
||||
#include "DllMacro.h"
|
||||
|
||||
class DLLEXPORT DatabaseCommand_TrackStats : public DatabaseCommand
|
||||
@ -33,7 +31,7 @@ class DLLEXPORT DatabaseCommand_TrackStats : public DatabaseCommand
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DatabaseCommand_TrackStats( const Tomahawk::query_ptr& query, QObject* parent = 0 );
|
||||
explicit DatabaseCommand_TrackStats( const Tomahawk::track_ptr& track, QObject* parent = 0 );
|
||||
explicit DatabaseCommand_TrackStats( const Tomahawk::artist_ptr& artist, QObject* parent = 0 );
|
||||
|
||||
virtual void exec( DatabaseImpl* lib );
|
||||
@ -41,10 +39,10 @@ public:
|
||||
virtual QString commandname() const { return "trackstats"; }
|
||||
|
||||
signals:
|
||||
void done( QList< Tomahawk::PlaybackLog >& playbackData );
|
||||
|
||||
void done( const QList< Tomahawk::PlaybackLog >& playbackData );
|
||||
|
||||
private:
|
||||
Tomahawk::query_ptr m_query;
|
||||
Tomahawk::track_ptr m_track;
|
||||
Tomahawk::artist_ptr m_artist;
|
||||
};
|
||||
|
||||
|
@ -29,10 +29,10 @@
|
||||
|
||||
|
||||
InboxJobItem::InboxJobItem( const QString& sender,
|
||||
const Tomahawk::query_ptr& query,
|
||||
const Tomahawk::track_ptr& track,
|
||||
QObject* parent )
|
||||
: JobStatusItem()
|
||||
, m_query( query )
|
||||
, m_track( track )
|
||||
, m_sender( sender )
|
||||
{
|
||||
m_timer = new QTimer( this );
|
||||
@ -53,8 +53,8 @@ InboxJobItem::mainText() const
|
||||
{
|
||||
return tr( "%1 sent you %2 by %3." )
|
||||
.arg( m_sender )
|
||||
.arg( m_query->track() )
|
||||
.arg( m_query->artist() );
|
||||
.arg( m_track->track() )
|
||||
.arg( m_track->artist() );
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ class DLLEXPORT InboxJobItem : public JobStatusItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit InboxJobItem( const QString& sender, const Tomahawk::query_ptr& query, QObject* parent = 0 );
|
||||
explicit InboxJobItem( const QString& sender, const Tomahawk::track_ptr& track, QObject* parent = 0 );
|
||||
virtual ~InboxJobItem();
|
||||
|
||||
virtual QString rightColumnText() const { return QString(); }
|
||||
@ -41,7 +41,7 @@ public:
|
||||
bool allowMultiLine() const { return true; }
|
||||
|
||||
private:
|
||||
Tomahawk::query_ptr m_query;
|
||||
Tomahawk::track_ptr m_track;
|
||||
QString m_sender;
|
||||
|
||||
QTimer* m_timer;
|
||||
|
Loading…
x
Reference in New Issue
Block a user