From: Olaf Wintermann Date: Sat, 21 Mar 2026 06:54:08 +0000 (+0100) Subject: add context menu to the item list X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=38b39d64cd269d1a434e98f13270b86e63d5931d;p=rssreader.git add context menu to the item list --- diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt index dda38df..b2e6ef6 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt @@ -209,4 +209,13 @@ class FeedList(window: MainWindow) : Document() { } } } + + fun bookmarkCurrentItem() { + currentItem?.let { item -> + val star = !item.isBookmark + Database.setBookmark(item, star) + item.isBookmark = star + starred.setBooleanValue(star) + } + } } \ No newline at end of file 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 fb9de0e..0c3951d 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt @@ -3,15 +3,11 @@ package de.unixwork.rssreader import de.unixwork.ui.UiObject import de.unixwork.ui.ColumnType import de.unixwork.ui.LabelStyle -import de.unixwork.ui.LinkButtonType -import de.unixwork.ui.Menu import de.unixwork.ui.SubListItem -import de.unixwork.ui.TabViewType import de.unixwork.ui.TableModel import de.unixwork.ui.UiInteger import de.unixwork.ui.UiList import de.unixwork.ui.UiString -import de.unixwork.ui.UiText import de.unixwork.ui.kotlin.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -39,7 +35,25 @@ class MainWindow() { var currentSublistIndex = -1 var currentFeedIndex = -1 - val contextMenu = menuBuilder { + val tableContextMenu = menuBuilder { + menuItem("Bookmark") { event -> + feedList.bookmarkCurrentItem() + } + menuItem("Mark as read") { event -> + + } + menuItem("Mark as unread") { event -> + + } + menuItem("Open in browser") { event -> + + } + menuItem("Delete") { event -> + + } + } + + val sidebarContextMenu = menuBuilder { menuItem("Reload") { event -> val evt = event.subListEventData val feedIndex = evt.rowIndex @@ -210,7 +224,7 @@ class MainWindow() { { elm: FeedCollection?, i, sublist -> val item = SubListItem() item.buttonIcon = "view-more" - item.buttonMenu = contextMenu + item.buttonMenu = sidebarContextMenu elm?.let { item.label = it.name if(it.unreadItemsCount > 0 && it.itemStateMode != 2) { @@ -238,6 +252,7 @@ class MainWindow() { table( model = model, varname = "items", + contextmenu = tableContextMenu, fill = true, onSelection = { event -> if(event.set) {