From 7c417f1076c08ef0e212d707b09e43627cf9adc8 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 23 May 2013 15:02:01 +0200 Subject: [PATCH] Notify sender of track that an inbox entry has been sent. --- .../database/DatabaseCommand_ShareTrack.cpp | 16 ++++++++++--- src/libtomahawk/jobview/InboxJobItem.cpp | 24 ++++++++++++++----- src/libtomahawk/jobview/InboxJobItem.h | 14 +++++++++-- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/libtomahawk/database/DatabaseCommand_ShareTrack.cpp b/src/libtomahawk/database/DatabaseCommand_ShareTrack.cpp index 5059538f3..1475f59b3 100644 --- a/src/libtomahawk/database/DatabaseCommand_ShareTrack.cpp +++ b/src/libtomahawk/database/DatabaseCommand_ShareTrack.cpp @@ -70,11 +70,19 @@ DatabaseCommand_ShareTrack::postCommitHook() if ( source()->isLocal() ) 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 ) return; - QString myDbid = SourceList::instance()->getLocal()->nodeId(); - QString sourceDbid = source()->nodeId(); if ( myDbid != m_recipient || sourceDbid == m_recipient ) return; @@ -101,7 +109,9 @@ DatabaseCommand_ShareTrack::postCommitHook() QString friendlyName = source()->friendlyName(); 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 ) ); } diff --git a/src/libtomahawk/jobview/InboxJobItem.cpp b/src/libtomahawk/jobview/InboxJobItem.cpp index 9b5160448..bc2c2f3b0 100644 --- a/src/libtomahawk/jobview/InboxJobItem.cpp +++ b/src/libtomahawk/jobview/InboxJobItem.cpp @@ -28,12 +28,14 @@ #include -InboxJobItem::InboxJobItem( const QString& sender, +InboxJobItem::InboxJobItem( Side side, + const QString& prettyName, const Tomahawk::trackdata_ptr& track, QObject* parent ) : JobStatusItem() , m_track( track ) - , m_sender( sender ) + , m_prettyName( prettyName ) + , m_side( side ) { m_timer = new QTimer( this ); m_timer->setInterval( 8000 ); @@ -51,10 +53,20 @@ InboxJobItem::~InboxJobItem() QString InboxJobItem::mainText() const { - return tr( "%1 sent you %2 by %3." ) - .arg( m_sender ) - .arg( m_track->track() ) - .arg( m_track->artist() ); + 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." ) + .arg( m_prettyName ) + .arg( m_track->track() ) + .arg( m_track->artist() ); + } + return QString(); } diff --git a/src/libtomahawk/jobview/InboxJobItem.h b/src/libtomahawk/jobview/InboxJobItem.h index b8f65311f..91dd243b6 100644 --- a/src/libtomahawk/jobview/InboxJobItem.h +++ b/src/libtomahawk/jobview/InboxJobItem.h @@ -30,7 +30,16 @@ class DLLEXPORT InboxJobItem : public JobStatusItem { Q_OBJECT 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 QString rightColumnText() const { return QString(); } @@ -42,10 +51,11 @@ public: private: Tomahawk::trackdata_ptr m_track; - QString m_sender; + QString m_prettyName; QTimer* m_timer; static QPixmap* s_pixmap; + Side m_side; }; #endif // INBOXJOBITEM_H