diff --git a/src/audiocontrols.cpp b/src/audiocontrols.cpp index 880385ff9..f231ef02d 100644 --- a/src/audiocontrols.cpp +++ b/src/audiocontrols.cpp @@ -19,9 +19,9 @@ #include "audiocontrols.h" #include "ui_audiocontrols.h" -#include <QNetworkReply> -#include <QDropEvent> -#include <QMouseEvent> +#include <QtNetwork/QNetworkReply> +#include <QtGui/QDropEvent> +#include <QtGui/QMouseEvent> #include "audio/audioengine.h" #include "playlist/playlistview.h" @@ -208,9 +208,11 @@ AudioControls::onPlaybackStarted( const Tomahawk::result_ptr& result ) m_sliderTimeLine.setFrameRange( 0, duration ); m_sliderTimeLine.setCurrentTime( 0 ); m_seekMsecs = -1; - + ui->seekSlider->setVisible( true ); + m_noTimeChange = false; + Tomahawk::InfoSystem::InfoStringHash trackInfo; trackInfo["artist"] = result->artist()->name(); trackInfo["album"] = result->album()->name(); @@ -377,9 +379,22 @@ AudioControls::onPlaybackTimer( qint64 msElapsed ) ui->timeLabel->setText( TomahawkUtils::timeToString( seconds ) ); ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( m_currentTrack->duration() - seconds ) ); - if ( m_sliderTimeLine.currentTime() > msElapsed || m_seekMsecs != -1 ) + if ( m_noTimeChange ) + { + if ( m_sliderTimeLine.currentTime() != msElapsed ) + { + m_noTimeChange = false; + m_sliderTimeLine.resume(); + } + } + else if ( m_sliderTimeLine.currentTime() >= msElapsed || m_seekMsecs != -1 ) { m_sliderTimeLine.setPaused( true ); + + m_noTimeChange = false; + if ( m_sliderTimeLine.currentTime() == msElapsed ) + m_noTimeChange = true; + m_sliderTimeLine.setCurrentTime( msElapsed ); m_seekMsecs = -1; if ( AudioEngine::instance()->state() != AudioEngine::Paused ) diff --git a/src/audiocontrols.h b/src/audiocontrols.h index 0d4c2a973..76c262c30 100644 --- a/src/audiocontrols.h +++ b/src/audiocontrols.h @@ -19,8 +19,8 @@ #ifndef AUDIOCONTROLS_H #define AUDIOCONTROLS_H -#include <QWidget> -#include <QTimeLine> +#include <QtGui/QWidget> +#include <QtCore/QTimeLine> #include "result.h" #include "playlistinterface.h" @@ -95,6 +95,7 @@ private: QTimeLine m_sliderTimeLine; qint64 m_seekMsecs; + bool m_noTimeChange; }; #endif // AUDIOCONTROLS_H diff --git a/src/libtomahawk/widgets/SeekSlider.cpp b/src/libtomahawk/widgets/SeekSlider.cpp index 87c4699a1..e9025d883 100644 --- a/src/libtomahawk/widgets/SeekSlider.cpp +++ b/src/libtomahawk/widgets/SeekSlider.cpp @@ -18,8 +18,8 @@ #include "SeekSlider.h" -#include <QMouseEvent> -#include <QTimeLine> +#include <QtGui/QMouseEvent> +#include <QtCore/QTimeLine> #include "utils/tomahawkutils.h" #include "utils/logger.h" diff --git a/src/libtomahawk/widgets/SeekSlider.h b/src/libtomahawk/widgets/SeekSlider.h index 034c214ce..925865eae 100644 --- a/src/libtomahawk/widgets/SeekSlider.h +++ b/src/libtomahawk/widgets/SeekSlider.h @@ -19,7 +19,7 @@ #ifndef SEEKSLIDER_H #define SEEKSLIDER_H -#include <QSlider> +#include <QtGui/QSlider> #include "dllmacro.h"