]> uap-core.de Git - rssreader.git/commitdiff
simplify sourcelist context menu event handling
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 6 Nov 2025 18:14:35 +0000 (19:14 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 6 Nov 2025 18:14:35 +0000 (19:14 +0100)
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index b0b77245fb6680e21e457886f7859d9e62abd71c..5ea10e05cc6473bd2e0ea80362c2e0a1722f9699 100644 (file)
@@ -43,26 +43,26 @@ class MainWindow() {
     var currentSublistIndex = -1
     var currentFeedIndex = -1
 
-    var buttonCurrentSublistIndex = -1
-    var buttonCurrentFeedIndex = -1
-
     val contextMenu = menuBuilder {
-        menuItem("Reload") {
-            if(buttonCurrentFeedIndex >= 0 && buttonCurrentSublistIndex >= 0) {
-                val feed = sourceList.groups[buttonCurrentSublistIndex].feeds[buttonCurrentFeedIndex]
+        menuItem("Reload") { event ->
+            val evt = event.subListEventData
+            val feedIndex = evt.rowIndex
+            if(feedIndex >= 0 && evt.sublistIndex >= 0) {
+                val feed = sourceList.groups[evt.sublistIndex].feeds[feedIndex]
                 SyncJob({ Database.getCollectionFeeds(feed)}).sync() {
                     App.window?.reload()
                 }
             }
-            contextMenuReset()
         }
-        menuItem("Mark as read") {
-            if(buttonCurrentFeedIndex >= 0 && buttonCurrentSublistIndex >= 0) {
+        menuItem("Mark as read") { event ->
+            val evt = event.subListEventData
+            val feedIndex = evt.rowIndex
+            if(feedIndex >= 0 && evt.sublistIndex >= 0) {
                 try {
-                    val feed = sourceList.groups[buttonCurrentSublistIndex].feeds[buttonCurrentFeedIndex]
+                    val feed = sourceList.groups[evt.sublistIndex].feeds[feedIndex]
                     feed.unreadItemsCount = 0
                     feed.updateReadStatus(true)
-                    if(buttonCurrentSublistIndex == currentSublistIndex && buttonCurrentFeedIndex == currentFeedIndex) {
+                    if(evt.sublistIndex == currentSublistIndex && feedIndex == currentFeedIndex) {
                         feedList.reloadCurrentFeed()
                     }
                     GlobalScope.launch(Dispatchers.IO) {
@@ -73,25 +73,20 @@ class MainWindow() {
                 }
                 sourceList.feeds.update()
             }
-            contextMenuReset()
         }
         separator()
         menuItem("Move Up") { event ->
             val evt = event.subListEventData
             sourceList.swapFeedCollections(evt.sublistIndex, evt.rowIndex, evt.rowIndex-1)
-            contextMenuReset()
         }
         menuItem("Move Down") { event ->
             val evt = event.subListEventData
             sourceList.swapFeedCollections(evt.sublistIndex, evt.rowIndex, evt.rowIndex+1)
-            contextMenuReset()
         }
         menuItem("Delete") {
-            contextMenuReset()
         }
         separator()
         menuItem("Settings") {
-            contextMenuReset()
         }
     }
 
@@ -125,11 +120,6 @@ class MainWindow() {
                             } catch (e: Exception) {
                                 e.printStackTrace()
                             }
-                        },
-                        onButtonClick = { event ->
-                            val evt = event.subListEventData
-                            buttonCurrentSublistIndex = evt.sublistIndex
-                            buttonCurrentFeedIndex = evt.rowIndex
                         }
                     )
                     { elm: FeedCollection?, i, sublist ->
@@ -265,11 +255,6 @@ class MainWindow() {
         window.ui.attach(feedList)
     }
 
-    fun contextMenuReset() {
-        buttonCurrentFeedIndex = -1
-        buttonCurrentSublistIndex = -1
-    }
-
     fun reload() {
         sourceList.invalidateCache()
         sourceList.reloadStatus()