1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-03 12:47:45 +02:00

Notify sender of track that an inbox entry has been sent.

This commit is contained in:
Teo Mrnjavac
2013-05-23 15:02:01 +02:00
parent 2bab13789a
commit 0295ce5c38
3 changed files with 43 additions and 11 deletions

View File

@@ -70,11 +70,19 @@ DatabaseCommand_ShareTrack::postCommitHook()
if ( source()->isLocal() ) if ( source()->isLocal() )
Servent::instance()->triggerDBSync(); Servent::instance()->triggerDBSync();
QString myDbid = SourceList::instance()->getLocal()->nodeId();
QString sourceDbid = source()->nodeId();
if ( source()->isLocal() || sourceDbid != m_recipient ) //if I just sent a track
{
JobStatusView::instance()->model()->addJob( new InboxJobItem( InboxJobItem::Sending,
SourceList::instance()->get( m_recipient )->friendlyName(),
m_track ) );
}
if ( m_track ) if ( m_track )
return; return;
QString myDbid = SourceList::instance()->getLocal()->nodeId();
QString sourceDbid = source()->nodeId();
if ( myDbid != m_recipient || sourceDbid == m_recipient ) if ( myDbid != m_recipient || sourceDbid == m_recipient )
return; return;
@@ -101,7 +109,9 @@ DatabaseCommand_ShareTrack::postCommitHook()
QString friendlyName = source()->friendlyName(); QString friendlyName = source()->friendlyName();
if ( ViewManager::instance()->currentPage() != ViewManager::instance()->inboxWidget() ) if ( ViewManager::instance()->currentPage() != ViewManager::instance()->inboxWidget() )
JobStatusView::instance()->model()->addJob( new InboxJobItem( friendlyName, m_track ) ); JobStatusView::instance()->model()->addJob( new InboxJobItem( InboxJobItem::Receiving,
friendlyName,
m_track ) );
} }

View File

@@ -28,12 +28,14 @@
#include <QTimer> #include <QTimer>
InboxJobItem::InboxJobItem( const QString& sender, InboxJobItem::InboxJobItem( Side side,
const QString& prettyName,
const Tomahawk::trackdata_ptr& track, const Tomahawk::trackdata_ptr& track,
QObject* parent ) QObject* parent )
: JobStatusItem() : JobStatusItem()
, m_track( track ) , m_track( track )
, m_sender( sender ) , m_prettyName( prettyName )
, m_side( side )
{ {
m_timer = new QTimer( this ); m_timer = new QTimer( this );
m_timer->setInterval( 8000 ); m_timer->setInterval( 8000 );
@@ -51,10 +53,20 @@ InboxJobItem::~InboxJobItem()
QString QString
InboxJobItem::mainText() const InboxJobItem::mainText() const
{ {
switch ( m_side )
{
case Sending:
return tr( "Sent %1 by %2 to %3." )
.arg( m_track->track() )
.arg( m_track->artist() )
.arg( m_prettyName );
case Receiving:
return tr( "%1 sent you %2 by %3." ) return tr( "%1 sent you %2 by %3." )
.arg( m_sender ) .arg( m_prettyName )
.arg( m_track->track() ) .arg( m_track->track() )
.arg( m_track->artist() ); .arg( m_track->artist() );
}
return QString();
} }

View File

@@ -30,7 +30,16 @@ class DLLEXPORT InboxJobItem : public JobStatusItem
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit InboxJobItem( const QString& sender, const Tomahawk::trackdata_ptr& track, QObject* parent = 0 ); enum Side
{
Sending = 0,
Receiving
};
explicit InboxJobItem( Side side,
const QString& prettyName,
const Tomahawk::trackdata_ptr& track,
QObject* parent = 0 );
virtual ~InboxJobItem(); virtual ~InboxJobItem();
virtual QString rightColumnText() const { return QString(); } virtual QString rightColumnText() const { return QString(); }
@@ -42,10 +51,11 @@ public:
private: private:
Tomahawk::trackdata_ptr m_track; Tomahawk::trackdata_ptr m_track;
QString m_sender; QString m_prettyName;
QTimer* m_timer; QTimer* m_timer;
static QPixmap* s_pixmap; static QPixmap* s_pixmap;
Side m_side;
}; };
#endif // INBOXJOBITEM_H #endif // INBOXJOBITEM_H