diff --git a/src/audiomanager.cpp b/src/audiomanager.cpp index 35449be4..870f4afa 100644 --- a/src/audiomanager.cpp +++ b/src/audiomanager.cpp @@ -181,6 +181,7 @@ QMediaPlayer::MediaStatus AudioManager::status() const void AudioManager::setEntry(Entry *entry) { d->m_lockPositionSaving = true; + bool continuePlayback = false; // First check if the previous track needs to be marked as read // TODO: make grace time a setting in SettingsManager @@ -193,6 +194,7 @@ void AudioManager::setEntry(Entry *entry) d->m_entry->setRead(true); d->m_entry->enclosure()->setPlayPosition(0); d->m_entry->setQueueStatus(false); // i.e. remove from queue TODO: make this a choice in settings + continuePlayback = SettingsManager::self()->continuePlayingNextEntry(); } } @@ -233,6 +235,7 @@ void AudioManager::setEntry(Entry *entry) d->m_entry->enclosure()->setDuration(d->m_player.duration() / 1000); // qDebug() << "Correcting duration of" << d->m_entry->id() << "to" << d->m_player.duration()/1000; } + if (continuePlayback) play(); } else { DataManager::instance().setLastPlayingEntry(QStringLiteral("none")); d->m_entry = nullptr; diff --git a/src/qml/SettingsPage.qml b/src/qml/SettingsPage.qml index 0ee777f3..d8a7c923 100644 --- a/src/qml/SettingsPage.qml +++ b/src/qml/SettingsPage.qml @@ -19,6 +19,19 @@ Kirigami.ScrollablePage { Kirigami.FormLayout { + Kirigami.Heading { + Kirigami.FormData.isSection: true + + text: i18n("Play Settings") + } + + Controls.CheckBox { + id: continuePlayingNextEntry + checked: SettingsManager.continuePlayingNextEntry + text: i18n("Continue playing next episode after current one finishes") + onToggled: SettingsManager.continuePlayingNextEntry = checked + } + Kirigami.Heading { Kirigami.FormData.isSection: true text: i18n("Queue Settings") @@ -59,6 +72,7 @@ Kirigami.ScrollablePage { text: i18n("Appearance") } + Controls.CheckBox { id: alwaysShowFeedTitles checked: SettingsManager.alwaysShowFeedTitles @@ -91,4 +105,4 @@ Kirigami.ScrollablePage { onToggled: SettingsManager.articleFontUseSystem = checked } } -} +} \ No newline at end of file diff --git a/src/settingsmanager.kcfg b/src/settingsmanager.kcfg index 83390996..6dca4c99 100644 --- a/src/settingsmanager.kcfg +++ b/src/settingsmanager.kcfg @@ -5,6 +5,14 @@ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > + + + false + + + + true + false @@ -17,10 +25,6 @@ false - - - false - false