From 715da8909f16635bd9d03880e068129aeb5ff99d Mon Sep 17 00:00:00 2001 From: Thor Merlin Lervik Date: Sat, 14 Dec 2019 17:05:08 +0100 Subject: [PATCH] Fix resuming playback position on startup --- src/ui/mainwindow.cpp | 14 +++++++++++++- src/ui/mainwindow.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 9fac5b60f..f51526936 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -1342,7 +1342,19 @@ void MainWindow::ResumePlayback() { app_->player()->Play(); - app_->player()->SeekTo(saved_playback_position_); + connect(track_position_timer_, SIGNAL(timeout()), + SLOT(ResumePlaybackPosition())); +} + +void MainWindow::ResumePlaybackPosition() { + // We must wait until the song has a length because + // seeking a song without length does not work + if (app_->player()->engine()->length_nanosec() > 0) { + disconnect(track_position_timer_, SIGNAL(timeout()), this, + SLOT(ResumePlaybackPosition())); + + app_->player()->SeekTo(saved_playback_position_); + } } void MainWindow::PlayIndex(const QModelIndex& index) { diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 74a6ff8cb..0b3cf6738 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -271,6 +271,7 @@ signals: void SavePlaybackStatus(QSettings* settings); void LoadPlaybackStatus(); void ResumePlayback(); + void ResumePlaybackPosition(); void AddSongInfoGenerator(smart_playlists::GeneratorPtr gen);