mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-09 23:57:34 +02:00
Moved Inbox social action updating to Track.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||||
*
|
*
|
||||||
* Copyright 2013, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
* Copyright 2013, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||||
|
* Copyright 2013, Teo Mrnjavac <teo@kde.org>
|
||||||
*
|
*
|
||||||
* Tomahawk is free software: you can redistribute it and/or modify
|
* Tomahawk is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -24,6 +25,7 @@
|
|||||||
#include "database/Database.h"
|
#include "database/Database.h"
|
||||||
#include "database/DatabaseImpl.h"
|
#include "database/DatabaseImpl.h"
|
||||||
#include "database/DatabaseCommand_LogPlayback.h"
|
#include "database/DatabaseCommand_LogPlayback.h"
|
||||||
|
#include "database/DatabaseCommand_ModifyInboxEntry.h"
|
||||||
#include "Album.h"
|
#include "Album.h"
|
||||||
#include "collection/Collection.h"
|
#include "collection/Collection.h"
|
||||||
#include "Pipeline.h"
|
#include "Pipeline.h"
|
||||||
@@ -169,6 +171,8 @@ Track::startPlaying()
|
|||||||
DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( weakRef().toStrongRef(),
|
DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( weakRef().toStrongRef(),
|
||||||
DatabaseCommand_LogPlayback::Started );
|
DatabaseCommand_LogPlayback::Started );
|
||||||
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -180,6 +184,33 @@ Track::finishPlaying( int timeElapsed )
|
|||||||
timeElapsed );
|
timeElapsed );
|
||||||
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
||||||
|
|
||||||
|
bool isUnlistened = false;
|
||||||
|
foreach ( Tomahawk::SocialAction action, allSocialActions() )
|
||||||
|
{
|
||||||
|
if ( action.action == "Inbox" && action.value.toBool() == true )
|
||||||
|
{
|
||||||
|
isUnlistened = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isUnlistened )
|
||||||
|
{
|
||||||
|
DatabaseCommand_ModifyInboxEntry* cmd = new DatabaseCommand_ModifyInboxEntry( toQuery(), false );
|
||||||
|
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
||||||
|
|
||||||
|
// The dbcmd does this in the DB, but let's update the TrackData ASAP
|
||||||
|
QList< Tomahawk::SocialAction > actions = allSocialActions();
|
||||||
|
for ( QList< Tomahawk::SocialAction >::iterator it = actions.begin();
|
||||||
|
it != actions.end(); ++it )
|
||||||
|
{
|
||||||
|
if ( it->action == "Inbox" )
|
||||||
|
{
|
||||||
|
it->value = false; //listened!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_trackData->setAllSocialActions( actions ); //emits socialActionsLoaded which gets propagated here
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||||
*
|
*
|
||||||
* Copyright 2013, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
* Copyright 2013, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||||
|
* Copyright 2013, Teo Mrnjavac <teo@kde.org>
|
||||||
*
|
*
|
||||||
* Tomahawk is free software: you can redistribute it and/or modify
|
* Tomahawk is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@@ -35,9 +35,6 @@ InboxModel::InboxModel( QObject* parent )
|
|||||||
else
|
else
|
||||||
NewClosure( SourceList::instance(), SIGNAL( ready() ),
|
NewClosure( SourceList::instance(), SIGNAL( ready() ),
|
||||||
this, SLOT( loadTracks() ) );
|
this, SLOT( loadTracks() ) );
|
||||||
|
|
||||||
connect( this, SIGNAL( currentIndexChanged() ),
|
|
||||||
SLOT( onCurrentIndexChanged() ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -215,8 +212,7 @@ InboxModel::tracksLoaded( QList< Tomahawk::query_ptr > incoming )
|
|||||||
|
|
||||||
QList< Tomahawk::SocialAction > actions;
|
QList< Tomahawk::SocialAction > actions;
|
||||||
actions << action;
|
actions << action;
|
||||||
//FIXME
|
newQuery->queryTrack()->loadSocialActions();
|
||||||
// newQuery->queryTrack()->setAllSocialActions( actions );
|
|
||||||
|
|
||||||
newQuery->setProperty( "data", QVariant() ); //clear
|
newQuery->setProperty( "data", QVariant() ); //clear
|
||||||
}
|
}
|
||||||
@@ -233,32 +229,3 @@ InboxModel::tracksLoaded( QList< Tomahawk::query_ptr > incoming )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
InboxModel::onCurrentIndexChanged()
|
|
||||||
{
|
|
||||||
QPersistentModelIndex idx = currentItem();
|
|
||||||
if ( idx.isValid() )
|
|
||||||
{
|
|
||||||
PlayableItem* item = itemFromIndex( idx );
|
|
||||||
if ( item && !item->query().isNull() )
|
|
||||||
{
|
|
||||||
Tomahawk::query_ptr qry = item->query();
|
|
||||||
DatabaseCommand_ModifyInboxEntry* cmd = new DatabaseCommand_ModifyInboxEntry( qry, false );
|
|
||||||
Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) );
|
|
||||||
|
|
||||||
QList< Tomahawk::SocialAction > actions = item->query()->queryTrack()->allSocialActions();
|
|
||||||
for ( QList< Tomahawk::SocialAction >::iterator it = actions.begin();
|
|
||||||
it != actions.end(); ++it )
|
|
||||||
{
|
|
||||||
if ( it->action == "Inbox" )
|
|
||||||
{
|
|
||||||
it->value = false; //listened!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//FIXME
|
|
||||||
// item->query()->queryTrack()->setAllSocialActions( actions );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -49,7 +49,6 @@ private slots:
|
|||||||
void loadTracks();
|
void loadTracks();
|
||||||
|
|
||||||
void tracksLoaded( QList< Tomahawk::query_ptr > );
|
void tracksLoaded( QList< Tomahawk::query_ptr > );
|
||||||
void onCurrentIndexChanged();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static QList< Tomahawk::SocialAction > mergeSocialActions( QList< Tomahawk::SocialAction > first,
|
static QList< Tomahawk::SocialAction > mergeSocialActions( QList< Tomahawk::SocialAction > first,
|
||||||
|
Reference in New Issue
Block a user