From: Olaf Wintermann Date: Thu, 6 Nov 2025 18:14:35 +0000 (+0100) Subject: simplify sourcelist context menu event handling X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=15a941ceaa5db54bd049ea8ee476a715ec0497b3;p=rssreader.git simplify sourcelist context menu event handling --- diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt index b0b7724..5ea10e0 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt @@ -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()