]> uap-core.de Git - rssreader.git/commitdiff
add context menu to the item list
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 21 Mar 2026 06:54:08 +0000 (07:54 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 21 Mar 2026 06:54:08 +0000 (07:54 +0100)
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index dda38df534f477d7a586c07ffbf9f2126b5cfa09..b2e6ef656ae9c127e5e1416ce7b14afee5ca4974 100644 (file)
@@ -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
index fb9de0e0f3c5a15b6592a0ef3dce7545b8479bd3..0c3951d368a15155520089905c0867d912f8d2e0 100644 (file)
@@ -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<Item>(
                         model = model,
                         varname = "items",
+                        contextmenu = tableContextMenu,
                         fill = true,
                         onSelection = { event ->
                             if(event.set) {