1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-05 13:47:26 +02:00

Finish making the seekslider the sleekslider

This commit is contained in:
Jeff Mitchell
2011-08-28 14:38:33 -04:00
parent e5f6f40289
commit 4b4cecc027
3 changed files with 27 additions and 26 deletions

View File

@@ -186,8 +186,30 @@ AudioControls::onPlaybackStarted( const Tomahawk::result_ptr& result )
{ {
tDebug() << Q_FUNC_INFO; tDebug() << Q_FUNC_INFO;
onPlaybackLoading( result ); if ( result.isNull() )
return;
if ( m_currentTrack.isNull() || ( !m_currentTrack.isNull() && m_currentTrack.data()->id() != result.data()->id() ) )
onPlaybackLoading( result );
qint64 duration = AudioEngine::instance()->currentTrackTotalTime();
if ( duration == -1 )
duration = result.data()->duration() * 1000;
ui->seekSlider->setRange( 0, duration );
ui->seekSlider->setValue( 0 );
tLog() << Q_FUNC_INFO << " setting sliderTimeLine duration to " << (duration);
tLog() << Q_FUNC_INFO << " setting sliderTimeLine frames to " << (duration);
m_sliderTimeLine.stop();
m_sliderTimeLine.setDuration( duration );
m_sliderTimeLine.setFrameRange( 0, duration );
m_sliderTimeLine.setCurrentTime( 0 );
ui->seekSlider->setVisible( true );
Tomahawk::InfoSystem::InfoCriteriaHash trackInfo; Tomahawk::InfoSystem::InfoCriteriaHash trackInfo;
trackInfo["artist"] = result->artist()->name(); trackInfo["artist"] = result->artist()->name();
trackInfo["album"] = result->album()->name(); trackInfo["album"] = result->album()->name();
@@ -257,19 +279,7 @@ AudioControls::onPlaybackLoading( const Tomahawk::result_ptr& result )
ui->coverImage->setPixmap( m_defaultCover ); ui->coverImage->setPixmap( m_defaultCover );
ui->timeLabel->setText( TomahawkUtils::timeToString( 0 ) ); ui->timeLabel->setText( TomahawkUtils::timeToString( 0 ) );
ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( result->duration() ) ); ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( result.data()->duration() ) );
ui->seekSlider->setRange( 0, result->duration() * 1000 );
ui->seekSlider->setValue( 0 );
tLog() << Q_FUNC_INFO << " setting sliderTimeLine duration to " << (result->duration() * 1000);
tLog() << Q_FUNC_INFO << " setting sliderTimeLine frames to " << (result->duration() * 1000);
m_sliderTimeLine.setDuration( result->duration() * 1000 );
m_sliderTimeLine.setFrameRange( 0, result->duration() * 1000 );
m_sliderTimeLine.setCurrentTime( 0 );
ui->seekSlider->setVisible( true );
ui->stackedLayout->setCurrentWidget( ui->pauseButton ); ui->stackedLayout->setCurrentWidget( ui->pauseButton );
@@ -317,7 +327,6 @@ AudioControls::onPlaybackResumed()
tDebug() << Q_FUNC_INFO; tDebug() << Q_FUNC_INFO;
ui->stackedLayout->setCurrentWidget( ui->pauseButton ); ui->stackedLayout->setCurrentWidget( ui->pauseButton );
ui->loveButton->setVisible( true ); ui->loveButton->setVisible( true );
ui->seekSlider->setNeedsUpdate( true );
m_sliderTimeLine.resume(); m_sliderTimeLine.resume();
} }
@@ -358,13 +367,10 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( m_currentTrack->duration() - seconds ) ); ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( m_currentTrack->duration() - seconds ) );
tLog() << Q_FUNC_INFO << " setting sliderTimeLine elapsed time to " << msElapsed; tLog() << Q_FUNC_INFO << " setting sliderTimeLine elapsed time to " << msElapsed;
if ( ui->seekSlider->needsUpdate() ) if ( m_sliderTimeLine.currentTime() > msElapsed )
{
m_sliderTimeLine.setCurrentTime( msElapsed ); m_sliderTimeLine.setCurrentTime( msElapsed );
ui->seekSlider->setNeedsUpdate( false ); else if ( m_sliderTimeLine.duration() > msElapsed && m_sliderTimeLine.state() == QTimeLine::NotRunning )
} m_sliderTimeLine.resume();
else if ( m_sliderTimeLine.state() == QTimeLine::NotRunning )
m_sliderTimeLine.start();
ui->seekSlider->blockSignals( false ); ui->seekSlider->blockSignals( false );
} }

View File

@@ -28,7 +28,6 @@
SeekSlider::SeekSlider( QWidget* parent ) SeekSlider::SeekSlider( QWidget* parent )
: QSlider( parent ) : QSlider( parent )
, m_timeLine( 0 ) , m_timeLine( 0 )
, m_needsUpdate( false )
{ {
setFixedHeight( 20 ); setFixedHeight( 20 );
setStyleSheet( "QSlider::groove::horizontal {" setStyleSheet( "QSlider::groove::horizontal {"

View File

@@ -35,9 +35,6 @@ public:
void setTimeLine( QTimeLine* timeline ) { m_timeLine = timeline; } void setTimeLine( QTimeLine* timeline ) { m_timeLine = timeline; }
void setNeedsUpdate( bool needsUpdate ) { m_needsUpdate = needsUpdate; }
bool needsUpdate() { return m_needsUpdate; }
public slots: public slots:
void setValue( int value ); void setValue( int value );
@@ -46,7 +43,6 @@ protected:
private: private:
QTimeLine* m_timeLine; QTimeLine* m_timeLine;
bool m_needsUpdate;
}; };
#endif // SEEKSLIDER_H #endif // SEEKSLIDER_H