1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-15 10:33:59 +02:00

* Added anchors to artist page.

This commit is contained in:
Christian Muehlhaeuser
2014-08-20 08:24:22 +02:00
parent b5a029245d
commit 9e78aeb998
3 changed files with 67 additions and 19 deletions

View File

@@ -55,9 +55,9 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
, uiHeader( new Ui::HeaderWidget ) , uiHeader( new Ui::HeaderWidget )
, m_artist( artist ) , m_artist( artist )
{ {
QWidget* widget = new QWidget; m_widget = new QWidget;
QWidget* headerWidget = new QWidget; QWidget* headerWidget = new QWidget;
ui->setupUi( widget ); ui->setupUi( m_widget );
uiHeader->setupUi( headerWidget ); uiHeader->setupUi( headerWidget );
headerWidget->setFixedHeight( 160 ); headerWidget->setFixedHeight( 160 );
@@ -162,24 +162,43 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
uiHeader->artistLabel->setFont( f ); uiHeader->artistLabel->setFont( f );
uiHeader->artistLabel->setPalette( p ); 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(); m_stackedWidget = new QStackedWidget();
{ {
QScrollArea* area = new QScrollArea(); m_area = new QScrollArea();
area->setWidgetResizable( true ); m_area->setWidgetResizable( true );
area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn ); m_area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
area->setWidget( widget ); m_area->setWidget( m_widget );
QPalette pal = palette(); QPalette pal = palette();
pal.setBrush( backgroundRole(), Qt::white ); pal.setBrush( backgroundRole(), Qt::white );
area->setPalette( pal ); m_area->setPalette( pal );
area->setAutoFillBackground( true ); m_area->setAutoFillBackground( true );
area->setFrameShape( QFrame::NoFrame ); m_area->setFrameShape( QFrame::NoFrame );
area->setAttribute( Qt::WA_MacShowFocusRect, 0 ); m_area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
m_stackedWidget->addWidget( area ); m_stackedWidget->addWidget( m_area );
} }
{ {
ContextView* topHitsFullView = new ContextView( m_stackedWidget ); ContextView* topHitsFullView = new ContextView( m_stackedWidget );
@@ -310,6 +329,7 @@ ArtistInfoWidget::load( const artist_ptr& artist )
m_artist = artist; m_artist = artist;
m_title = artist->name(); m_title = artist->name();
uiHeader->artistLabel->setText( artist->name().toUpper() ); 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( biographyLoaded() ), SLOT( onBiographyLoaded() ) );
connect( m_artist.data(), SIGNAL( similarArtistsLoaded() ), SLOT( onSimilarArtistsLoaded() ) ); connect( m_artist.data(), SIGNAL( similarArtistsLoaded() ), SLOT( onSimilarArtistsLoaded() ) );
@@ -461,3 +481,24 @@ ArtistInfoWidget::onTopHitsMoreClosed()
{ {
m_stackedWidget->setCurrentIndex( 0 ); 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 );
}

View File

@@ -38,6 +38,7 @@
#include "DllMacro.h" #include "DllMacro.h"
class QScrollArea;
class QStackedWidget; class QStackedWidget;
class PlayableModel; class PlayableModel;
class PlaylistModel; class PlaylistModel;
@@ -107,12 +108,18 @@ private slots:
void onTopHitsMoreClicked(); void onTopHitsMoreClicked();
void onTopHitsMoreClosed(); void onTopHitsMoreClosed();
void onMusicAnchorClicked();
void onBioAnchorClicked();
void onRelatedArtistsAnchorClicked();
private: private:
Ui::ArtistInfoWidget *ui; Ui::ArtistInfoWidget *ui;
Ui::HeaderWidget* uiHeader; Ui::HeaderWidget* uiHeader;
Tomahawk::artist_ptr m_artist; QWidget* m_widget;
QScrollArea* m_area;
Tomahawk::artist_ptr m_artist;
PlayableModel* m_relatedModel; PlayableModel* m_relatedModel;
PlayableModel* m_albumsModel; PlayableModel* m_albumsModel;
PlayableModel* m_topHitsModel; PlayableModel* m_topHitsModel;

View File

@@ -168,7 +168,7 @@
<number>32</number> <number>32</number>
</property> </property>
<item> <item>
<widget class="CaptionLabel" name="label_4"> <widget class="CaptionLabel" name="biographyLabel">
<property name="text"> <property name="text">
<string>Biography</string> <string>Biography</string>
</property> </property>
@@ -250,7 +250,7 @@
<number>4</number> <number>4</number>
</property> </property>
<item> <item>
<widget class="CaptionLabel" name="label_3"> <widget class="CaptionLabel" name="relatedArtistsLabel">
<property name="text"> <property name="text">
<string>Related Artists</string> <string>Related Artists</string>
</property> </property>
@@ -281,6 +281,11 @@
</layout> </layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget>
<class>ClickableLabel</class>
<extends>QLabel</extends>
<header>widgets/ClickableLabel.h</header>
</customwidget>
<customwidget> <customwidget>
<class>GridView</class> <class>GridView</class>
<extends>QListView</extends> <extends>QListView</extends>
@@ -291,11 +296,6 @@
<extends>QLabel</extends> <extends>QLabel</extends>
<header>widgets/CaptionLabel.h</header> <header>widgets/CaptionLabel.h</header>
</customwidget> </customwidget>
<customwidget>
<class>ClickableLabel</class>
<extends>QLabel</extends>
<header>widgets/ClickableLabel.h</header>
</customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>