diff --git a/src/AudioControls.cpp b/src/AudioControls.cpp index 1e45c23ce..bb7f092f7 100644 --- a/src/AudioControls.cpp +++ b/src/AudioControls.cpp @@ -87,9 +87,11 @@ AudioControls::AudioControls( QWidget* parent ) ui->socialButton->setPixmap( RESPATH "images/share.png" ); ui->loveButton->setPixmap( RESPATH "images/not-loved.png" ); ui->loveButton->setCheckable( true ); + ui->ownerButton->setPixmap( RESPATH "images/resolver-default.png" ); ui->socialButton->setFixedSize( QSize( 20, 20 ) ); ui->loveButton->setFixedSize( QSize( 20, 20 ) ); + ui->ownerButton->setFixedSize( QSize( 20, 20 ) ); #ifdef Q_WS_MAC ui->ownerLabel->setForegroundRole( QPalette::Text ); @@ -254,6 +256,8 @@ AudioControls::onPlaybackLoading( const Tomahawk::result_ptr& result ) ui->loveButton->setVisible( true ); ui->socialButton->setEnabled( true ); ui->socialButton->setVisible( true ); + ui->ownerButton->setEnabled( true ); + ui->ownerButton->setVisible( true ); ui->timeLabel->setToolTip( tr( "Time Elapsed" ) ); ui->timeLeftLabel->setToolTip( tr( "Time Remaining" ) ); @@ -262,6 +266,9 @@ AudioControls::onPlaybackLoading( const Tomahawk::result_ptr& result ) ui->repeatButton->setToolTip( tr( "Repeat" ) ); ui->socialButton->setToolTip( tr( "Share" ) ); ui->loveButton->setToolTip( tr( "Love" ) ); + ui->ownerButton->setToolTip( QString( tr( "Playing from %1" ) ).arg( result->friendlySource() ) ); + QPixmap sourceIcon = result->sourceIcon().scaled( ui->ownerButton->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + ui->ownerButton->setPixmap( sourceIcon ); setCover(); setSocialActions(); @@ -362,12 +369,15 @@ AudioControls::onPlaybackStopped() m_sliderTimeLine.stop(); m_sliderTimeLine.setCurrentTime( 0 ); m_phononTickCheckTimer.stop(); + ui->ownerButton->setPixmap( RESPATH "images/resolver-default.png" ); ui->stackedLayout->setCurrentWidget( ui->playPauseButton ); ui->loveButton->setEnabled( false ); ui->loveButton->setVisible( false ); ui->socialButton->setEnabled( false ); ui->socialButton->setVisible( false ); + ui->ownerButton->setEnabled( false ); + ui->ownerButton->setVisible( false ); ui->timeLabel->setToolTip( "" ); ui->timeLeftLabel->setToolTip( "" ); @@ -376,6 +386,7 @@ AudioControls::onPlaybackStopped() ui->repeatButton->setToolTip( "" ); ui->socialButton->setToolTip( "" ); ui->loveButton->setToolTip( "" ); + ui->ownerButton->setToolTip( "" ); } diff --git a/src/AudioControls.ui b/src/AudioControls.ui index 95e4d517f..9239cf6f0 100644 --- a/src/AudioControls.ui +++ b/src/AudioControls.ui @@ -331,6 +331,22 @@ + + + + + 0 + 0 + + + + PointingHandCursor + + + resolver + + + diff --git a/src/libtomahawk/Result.cpp b/src/libtomahawk/Result.cpp index d681cca3f..efaeb3dab 100644 --- a/src/libtomahawk/Result.cpp +++ b/src/libtomahawk/Result.cpp @@ -178,6 +178,7 @@ Result::toVariant() const m.insert( "album", album()->name() ); m.insert( "track", track() ); m.insert( "source", friendlySource() ); + m.insert( "sourceIcon", sourceIcon() ); m.insert( "mimetype", mimetype() ); m.insert( "size", size() ); m.insert( "bitrate", bitrate() ); @@ -294,6 +295,20 @@ Result::friendlySource() const } +QPixmap +Result::sourceIcon() const +{ + if ( collection().isNull() ) + { + return m_sourceIcon; + } + else + { + return collection()->source()->avatar( Source::FancyStyle ); + } +} + + Tomahawk::Resolver* Result::resolvedBy() const { diff --git a/src/libtomahawk/Result.h b/src/libtomahawk/Result.h index 89a799e4e..174520715 100644 --- a/src/libtomahawk/Result.h +++ b/src/libtomahawk/Result.h @@ -21,6 +21,7 @@ #define RESULT_H #include +#include #include #include @@ -71,6 +72,7 @@ public: QString url() const { return m_url; } QString mimetype() const { return m_mimetype; } QString friendlySource() const; + QPixmap sourceIcon() const; unsigned int duration() const { return m_duration; } unsigned int bitrate() const { return m_bitrate; } @@ -86,6 +88,7 @@ public: void setRID( RID id ) { m_rid = id; } void setCollection( const Tomahawk::collection_ptr& collection ); void setFriendlySource( const QString& s ) { m_friendlySource = s; } + void setSourceIcon( const QPixmap& i ) { m_sourceIcon = i; } void setArtist( const Tomahawk::artist_ptr& artist ); void setAlbum( const Tomahawk::album_ptr& album ); void setComposer( const Tomahawk::artist_ptr& composer ); @@ -137,6 +140,7 @@ private: QString m_url; QString m_mimetype; QString m_friendlySource; + QPixmap m_sourceIcon; unsigned int m_duration; unsigned int m_bitrate;