mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-01 03:40:16 +02:00
* Update header-anchors' opacity as you scroll down the page.
This commit is contained in:
@@ -71,13 +71,13 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
|
|||||||
ui->relatedArtists->setAutoResize( true );
|
ui->relatedArtists->setAutoResize( true );
|
||||||
ui->relatedArtists->setAutoFitItems( true );
|
ui->relatedArtists->setAutoFitItems( true );
|
||||||
ui->relatedArtists->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
ui->relatedArtists->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
||||||
|
ui->relatedArtists->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
||||||
ui->relatedArtists->setItemSize( QSize( 170, 170 + 32 ) );
|
ui->relatedArtists->setItemSize( QSize( 170, 170 + 32 ) );
|
||||||
|
|
||||||
m_relatedModel = new PlayableModel( ui->relatedArtists );
|
m_relatedModel = new PlayableModel( ui->relatedArtists );
|
||||||
ui->relatedArtists->setPlayableModel( m_relatedModel );
|
ui->relatedArtists->setPlayableModel( m_relatedModel );
|
||||||
ui->relatedArtists->proxyModel()->sort( -1 );
|
ui->relatedArtists->proxyModel()->sort( -1 );
|
||||||
ui->relatedArtists->setEmptyTip( tr( "Sorry, we could not find any related artists!" ) );
|
ui->relatedArtists->setEmptyTip( tr( "Sorry, we could not find any related artists!" ) );
|
||||||
ui->relatedArtists->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
|
||||||
|
|
||||||
TomahawkStyle::stylePageFrame( ui->relatedArtists );
|
TomahawkStyle::stylePageFrame( ui->relatedArtists );
|
||||||
TomahawkStyle::stylePageFrame( ui->artistFrame );
|
TomahawkStyle::stylePageFrame( ui->artistFrame );
|
||||||
@@ -199,6 +199,8 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
|
|||||||
m_area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
|
m_area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
|
||||||
|
|
||||||
m_stackedWidget->addWidget( m_area );
|
m_stackedWidget->addWidget( m_area );
|
||||||
|
|
||||||
|
connect( m_area->verticalScrollBar(), SIGNAL( valueChanged(int ) ), SLOT( onSliderValueChanged( int ) ) );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
ContextView* topHitsFullView = new ContextView( m_stackedWidget );
|
ContextView* topHitsFullView = new ContextView( m_stackedWidget );
|
||||||
@@ -256,6 +258,7 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget*
|
|||||||
mpl->addChildInterface( ui->albums->playlistInterface() );
|
mpl->addChildInterface( ui->albums->playlistInterface() );
|
||||||
m_plInterface = playlistinterface_ptr( mpl );
|
m_plInterface = playlistinterface_ptr( mpl );
|
||||||
|
|
||||||
|
onSliderValueChanged( 0 );
|
||||||
load( artist );
|
load( artist );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -505,3 +508,32 @@ ArtistInfoWidget::onRelatedArtistsAnchorClicked()
|
|||||||
m_area->verticalScrollBar()->setValue( ui->relatedArtistsLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 );
|
m_area->verticalScrollBar()->setValue( ui->relatedArtistsLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 );
|
||||||
onPageClosed();
|
onPageClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ArtistInfoWidget::onSliderValueChanged( int value )
|
||||||
|
{
|
||||||
|
const int midPoint = m_area->viewport()->size().height() / 2;
|
||||||
|
const bool bio = ( ( ui->biographyLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 ) - value ) < midPoint ;
|
||||||
|
const bool ra = ( ( ui->relatedArtistsLabel->mapTo( m_widget, QPoint( 0, 0 ) ).y() - 32 ) - value ) < midPoint;
|
||||||
|
|
||||||
|
const float lowOpacity = 0.7;
|
||||||
|
if ( ra )
|
||||||
|
{
|
||||||
|
uiHeader->anchor3Label->setOpacity( 1 );
|
||||||
|
uiHeader->anchor1Label->setOpacity( lowOpacity );
|
||||||
|
uiHeader->anchor2Label->setOpacity( lowOpacity );
|
||||||
|
}
|
||||||
|
else if ( bio )
|
||||||
|
{
|
||||||
|
uiHeader->anchor2Label->setOpacity( 1 );
|
||||||
|
uiHeader->anchor1Label->setOpacity( lowOpacity );
|
||||||
|
uiHeader->anchor3Label->setOpacity( lowOpacity );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uiHeader->anchor1Label->setOpacity( 1 );
|
||||||
|
uiHeader->anchor2Label->setOpacity( lowOpacity );
|
||||||
|
uiHeader->anchor3Label->setOpacity( lowOpacity );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -112,6 +112,8 @@ private slots:
|
|||||||
void onBioAnchorClicked();
|
void onBioAnchorClicked();
|
||||||
void onRelatedArtistsAnchorClicked();
|
void onRelatedArtistsAnchorClicked();
|
||||||
|
|
||||||
|
void onSliderValueChanged( int value );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::ArtistInfoWidget *ui;
|
Ui::ArtistInfoWidget *ui;
|
||||||
Ui::HeaderWidget* uiHeader;
|
Ui::HeaderWidget* uiHeader;
|
||||||
|
Reference in New Issue
Block a user