diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp
index 24ca75d88..d4dc9c2b4 100644
--- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp
+++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp
@@ -55,9 +55,9 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
, uiHeader( new Ui::HeaderWidget )
, m_artist( artist )
{
- QWidget* widget = new QWidget;
+ m_widget = new QWidget;
QWidget* headerWidget = new QWidget;
- ui->setupUi( widget );
+ ui->setupUi( m_widget );
uiHeader->setupUi( headerWidget );
headerWidget->setFixedHeight( 160 );
@@ -162,24 +162,43 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
uiHeader->artistLabel->setFont( f );
uiHeader->artistLabel->setPalette( p );
+
+ f.setPointSize( 11 );
+ uiHeader->anchor1Label->setFont( f );
+ uiHeader->anchor1Label->setPalette( p );
+ uiHeader->anchor2Label->setFont( f );
+ uiHeader->anchor2Label->setPalette( p );
+ uiHeader->anchor3Label->setFont( f );
+ uiHeader->anchor3Label->setPalette( p );
+
+ uiHeader->anchor1Label->setOpacity( 1 );
+ uiHeader->anchor2Label->setOpacity( 1 );
+ uiHeader->anchor3Label->setOpacity( 1 );
+ uiHeader->anchor1Label->setText( tr( "Music" ) );
+ uiHeader->anchor2Label->setText( tr( "Biography" ) );
+ uiHeader->anchor3Label->setText( tr( "Related Artists" ) );
+
+ connect( uiHeader->anchor1Label, SIGNAL( clicked() ), SLOT( onMusicAnchorClicked() ) );
+ connect( uiHeader->anchor2Label, SIGNAL( clicked() ), SLOT( onBioAnchorClicked() ) );
+ connect( uiHeader->anchor3Label, SIGNAL( clicked() ), SLOT( onRelatedArtistsAnchorClicked() ) );
}
m_stackedWidget = new QStackedWidget();
{
- QScrollArea* area = new QScrollArea();
- area->setWidgetResizable( true );
- area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
- area->setWidget( widget );
+ m_area = new QScrollArea();
+ m_area->setWidgetResizable( true );
+ m_area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
+ m_area->setWidget( m_widget );
QPalette pal = palette();
pal.setBrush( backgroundRole(), Qt::white );
- area->setPalette( pal );
- area->setAutoFillBackground( true );
- area->setFrameShape( QFrame::NoFrame );
- area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
+ m_area->setPalette( pal );
+ m_area->setAutoFillBackground( true );
+ m_area->setFrameShape( QFrame::NoFrame );
+ m_area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
- m_stackedWidget->addWidget( area );
+ m_stackedWidget->addWidget( m_area );
}
{
ContextView* topHitsFullView = new ContextView( m_stackedWidget );
@@ -310,6 +329,7 @@ ArtistInfoWidget::load( const artist_ptr& artist )
m_artist = artist;
m_title = artist->name();
uiHeader->artistLabel->setText( artist->name().toUpper() );
+ uiHeader->balanceSpacer->changeSize( uiHeader->artistLabel->sizeHint().width(), 1, QSizePolicy::Fixed, QSizePolicy::Fixed );
connect( m_artist.data(), SIGNAL( biographyLoaded() ), SLOT( onBiographyLoaded() ) );
connect( m_artist.data(), SIGNAL( similarArtistsLoaded() ), SLOT( onSimilarArtistsLoaded() ) );
@@ -461,3 +481,24 @@ ArtistInfoWidget::onTopHitsMoreClosed()
{
m_stackedWidget->setCurrentIndex( 0 );
}
+
+
+void
+ArtistInfoWidget::onMusicAnchorClicked()
+{
+ m_area->verticalScrollBar()->setValue( 0 );
+}
+
+
+void
+ArtistInfoWidget::onBioAnchorClicked()
+{
+ m_area->verticalScrollBar()->setValue( ui->biographyLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 );
+}
+
+
+void
+ArtistInfoWidget::onRelatedArtistsAnchorClicked()
+{
+ m_area->verticalScrollBar()->setValue( ui->relatedArtistsLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 );
+}
diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h
index 5c14a115a..6fb6d21cf 100644
--- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h
+++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h
@@ -38,6 +38,7 @@
#include "DllMacro.h"
+class QScrollArea;
class QStackedWidget;
class PlayableModel;
class PlaylistModel;
@@ -107,12 +108,18 @@ private slots:
void onTopHitsMoreClicked();
void onTopHitsMoreClosed();
+ void onMusicAnchorClicked();
+ void onBioAnchorClicked();
+ void onRelatedArtistsAnchorClicked();
+
private:
Ui::ArtistInfoWidget *ui;
Ui::HeaderWidget* uiHeader;
- Tomahawk::artist_ptr m_artist;
+ QWidget* m_widget;
+ QScrollArea* m_area;
+ Tomahawk::artist_ptr m_artist;
PlayableModel* m_relatedModel;
PlayableModel* m_albumsModel;
PlayableModel* m_topHitsModel;
diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui
index dfa112314..28f5438ea 100644
--- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui
+++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui
@@ -168,7 +168,7 @@
32
-
-
+
Biography
@@ -250,7 +250,7 @@
4
-
-
+
Related Artists
@@ -281,6 +281,11 @@
+
+ ClickableLabel
+ QLabel
+
+
GridView
QListView
@@ -291,11 +296,6 @@
QLabel
-
- ClickableLabel
- QLabel
-
-