1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-04-22 08:52:12 +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

@ -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 ) );
}

@ -28,12 +28,14 @@
#include <QTimer>
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();
}

@ -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