From b09089773c386d5398582f0593f124b62389196a Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 2 Oct 2014 18:00:53 +0200 Subject: [PATCH] * Make sure image on artist-page doesn't get squashed and reacts to resize events. --- .../widgets/infowidgets/ArtistInfoWidget.cpp | 28 +++++++++++++++---- .../widgets/infowidgets/ArtistInfoWidget.h | 1 + .../widgets/infowidgets/ArtistInfoWidget.ui | 21 ++++++++++++-- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp index 4ee7b4335..e127cb758 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp @@ -60,9 +60,6 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget* m_headerWidget = new BasicHeader; ui->setupUi( m_widget ); - m_pixmap = TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultArtistImage, TomahawkUtils::Original, scaled( QSize( 48, 48 ) ) ); - ui->cover->setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultArtistImage, TomahawkUtils::Grid, ui->cover->size() ) ); - { ui->relatedArtists->setAutoResize( true ); ui->relatedArtists->setAutoFitItems( true ); @@ -95,7 +92,6 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget* ui->albums->proxyModel()->sort( -1 ); ui->albums->setEmptyTip( tr( "Sorry, we could not find any albums for this artist!" ) ); - ui->albums->setStyleSheet( QString( "QListView { background-color: white; }" ) ); TomahawkStyle::stylePageFrame( ui->albumFrame ); TomahawkStyle::styleScrollBar( ui->albums->verticalScrollBar() ); TomahawkStyle::styleScrollBar( ui->albums->horizontalScrollBar() ); @@ -116,7 +112,6 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget* ui->topHits->proxyModel()->sort( -1 ); ui->topHits->setEmptyTip( tr( "Sorry, we could not find any top hits for this artist!" ) ); - ui->topHits->setStyleSheet( QString( "QListView { background-color: white; }" ) ); TomahawkStyle::stylePageFrame( ui->trackFrame ); } @@ -238,9 +233,11 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget* m_plInterface = playlistinterface_ptr( mpl ); onSliderValueChanged( 0 ); - load( artist ); TomahawkUtils::fixMargins( this ); + + m_pixmap = TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultArtistImage, TomahawkUtils::Original, scaled( QSize( 48, 48 ) ) ); + load( artist ); } @@ -559,3 +556,22 @@ ArtistInfoWidget::eventFilter( QObject* obj, QEvent* event ) else return QObject::eventFilter( obj, event ); } + + +void +ArtistInfoWidget::resizeEvent( QResizeEvent* event ) +{ + QWidget::resizeEvent( event ); + + const QSize coverSize = QSize( ui->cover->width(), ui->cover->width() ); + if ( !m_artist || m_artist->cover( QSize( 0, 0 ) ).isNull() ) + { + ui->cover->setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultArtistImage, TomahawkUtils::Grid, coverSize ) ); + } + else + { + ui->cover->setPixmap( m_artist->cover( coverSize ) ); + } + + ui->biography->setFixedHeight( ui->cover->width() ); +} diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h index ca1662327..003d7d762 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h @@ -92,6 +92,7 @@ signals: void pixmapChanged( const QPixmap& pixmap ); protected: + void resizeEvent( QResizeEvent* event ); void changeEvent( QEvent* e ); bool eventFilter( QObject* obj, QEvent* event ); diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui index 87ad2d96f..f49fcd5aa 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui @@ -7,7 +7,7 @@ 0 0 796 - 1132 + 1455 @@ -210,14 +210,26 @@ - + 0 0 + + + 192 + 192 + + TextLabel + + false + + + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing + @@ -281,6 +293,11 @@ + + QWebView + QWidget +
QtWebKit/QWebView
+
ClickableLabel QLabel