]> uap-core.de Git - rssreader.git/commitdiff
implement Mark as read menu item for feed groups
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 12 Nov 2025 16:42:45 +0000 (17:42 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 12 Nov 2025 16:42:45 +0000 (17:42 +0100)
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index 70131b678116d0eaf2ff14c577b9b83fb38a1031..dc779c91ad37e7c87154ec0b44f4fdac923deb4e 100644 (file)
@@ -57,16 +57,21 @@ class MainWindow() {
         menuItem("Mark as read") { event ->
             val evt = event.subListEventData
             val feedIndex = evt.rowIndex
-            if(feedIndex >= 0 && evt.sublistIndex >= 0) {
+            if(evt.sublistIndex >= 0) {
+                var feeds:List<FeedCollection> = sourceList.groups[evt.sublistIndex].feeds
+                if(feedIndex >= 0) {
+                    feeds = listOf(sourceList.groups[evt.sublistIndex].feeds[feedIndex])
+                }
                 try {
-                    val feed = sourceList.groups[evt.sublistIndex].feeds[feedIndex]
-                    feed.unreadItemsCount = 0
-                    feed.updateReadStatus(true)
-                    if(evt.sublistIndex == currentSublistIndex && feedIndex == currentFeedIndex) {
-                        feedList.reloadCurrentFeed()
-                    }
-                    GlobalScope.launch(Dispatchers.IO) {
-                        Database.updateFeedReadState(feed, true)
+                    for(feed in feeds) {
+                        feed.unreadItemsCount = 0
+                        feed.updateReadStatus(true)
+                        if(evt.sublistIndex == currentSublistIndex && feedIndex == currentFeedIndex) {
+                            feedList.reloadCurrentFeed()
+                        }
+                        GlobalScope.launch(Dispatchers.IO) {
+                            Database.updateFeedReadState(feed, true)
+                        }
                     }
                 } catch (e: Exception) {
                     e.printStackTrace()
@@ -93,7 +98,6 @@ class MainWindow() {
         }
         menuItem("Delete") { event ->
             val evt = event.subListEventData
-
         }
         separator()
         menuItem("Settings") { event ->