]> uap-core.de Git - rssreader.git/commitdiff
implement contextmenu "Mark as read"/"Mark as unread"
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 5 May 2026 18:10:37 +0000 (20:10 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 5 May 2026 18:10:37 +0000 (20:10 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index 95fb68c9cfe55c6b18bcfb6bc7e445dc74146c9c..b77e8cb3e6a7fa627c22371adabf85e6796bd719 100644 (file)
@@ -218,4 +218,18 @@ class FeedList(window: MainWindow) : Document() {
             starred.setBooleanValue(star)
         }
     }
+
+    fun updateCurrentReadStatus(read: Boolean) {
+        currentItem?.let { item ->
+            if (read == item.isRead) {
+                return
+            }
+            item.isRead = read
+            item.collection?.unreadItemsCount += if(read) -1 else 1
+            GlobalScope.launch(Dispatchers.IO) {
+                Database.updateReadState(item, read)
+            }
+            items.update(items.selectedIndex)
+        }
+    }
 }
\ No newline at end of file
index 0c3951d368a15155520089905c0867d912f8d2e0..700ff192713df9646937b54f115b262fe7c98be8 100644 (file)
@@ -40,10 +40,10 @@ class MainWindow() {
             feedList.bookmarkCurrentItem()
         }
         menuItem("Mark as read") { event ->
-
+            feedList.updateCurrentReadStatus(true)
         }
         menuItem("Mark as unread") { event ->
-
+            feedList.updateCurrentReadStatus(false)
         }
         menuItem("Open in browser") { event ->