diff --git a/src/entry.cpp b/src/entry.cpp index 10a9c282..a8c7d311 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -148,8 +148,21 @@ void Entry::setRead(bool read) // Follow up actions if (read && hasEnclosure()) { - // 1) Delete episode if that setting is set - if (SettingsManager::self()->autoDelete() == 1) { + // 1) Reset play position + if (SettingsManager::self()->resetPositionOnPlayed()) { + m_enclosure->setPlayPosition(0); + } + + // 2) Remove item from queue + if (SettingsManager::self()->removeFromQueueOnPlayed()) { + setQueueStatus(false); + } + + // 3) Remove "new" label + setNew(false); + + // 4) Delete episode if that setting is set + if (SettingsManager::self()->autoDeleteOnPlayed() == 1) { m_enclosure->deleteFile(); } } diff --git a/src/qml/SettingsPage.qml b/src/qml/SettingsPage.qml index 91369e70..699dd5f1 100644 --- a/src/qml/SettingsPage.qml +++ b/src/qml/SettingsPage.qml @@ -86,12 +86,25 @@ Kirigami.ScrollablePage { model: [{"text": i18n("Do Not Delete"), "value": 0}, {"text": i18n("Delete Immediately"), "value": 1}, {"text": i18n("Delete at Next Startup"), "value": 2}] - Component.onCompleted: currentIndex = indexOfValue(SettingsManager.autoDelete) + Component.onCompleted: currentIndex = indexOfValue(SettingsManager.autoDeleteOnPlayed) onActivated: { - SettingsManager.autoDelete = currentValue; + SettingsManager.autoDeleteOnPlayed = currentValue; } } + Controls.CheckBox { + checked: SettingsManager.removeFromQueueOnPlayed + text: i18n("Remove from Queue") + onToggled: SettingsManager.removeFromQueueOnPlayed = checked + } + + Controls.CheckBox { + checked: SettingsManager.resetPositionOnPlayed + text: i18n("Reset Play Position") + onToggled: SettingsManager.resetPositionOnPlayed = checked + } + + Kirigami.Heading { Kirigami.FormData.isSection: true text: i18n("Network") diff --git a/src/qml/main.qml b/src/qml/main.qml index 624800fa..d5938d2e 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -61,7 +61,7 @@ Kirigami.ApplicationWindow { pageStack.initialPage = getPage(SettingsManager.lastOpenedPage) // Delete played enclosures if set in settings - if (SettingsManager.autoDelete == 2) { + if (SettingsManager.autoDeleteOnPlayed == 2) { DataManager.deletePlayedEnclosures(); } diff --git a/src/settingsmanager.kcfg b/src/settingsmanager.kcfg index fe22832d..91a82728 100644 --- a/src/settingsmanager.kcfg +++ b/src/settingsmanager.kcfg @@ -25,7 +25,7 @@ false - + @@ -40,6 +40,14 @@ OnNextStartup + + + true + + + + true + false @@ -73,4 +81,4 @@ FeedListPage - + \ No newline at end of file