]> uap-core.de Git - rssreader.git/commitdiff
add menubar
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 24 May 2026 11:28:58 +0000 (13:28 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 24 May 2026 11:28:58 +0000 (13:28 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/App.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Menu.kt

index b29fc47cfc14c6db0d90fa82db013fc240ed54b9..9d2a62cd848385fe68034ce45f3c6d1617367b0a 100644 (file)
@@ -6,6 +6,7 @@ import de.unixwork.ui.Toolkit
 import de.unixwork.ui.kotlin.ToolkitDispatcher
 import de.unixwork.ui.kotlin.toolbarItem
 import de.unixwork.ui.kotlin.addToolbarDefault
+import de.unixwork.ui.kotlin.applicationMenu
 import de.unixwork.ui.kotlin.menu
 import de.unixwork.ui.kotlin.menuItem
 import de.unixwork.ui.kotlin.radioItem
@@ -25,6 +26,7 @@ object App : Application {
     var configWindow: ConfigWindow? = null
 
     init {
+        initMenubar()
         initToolbar()
     }
 
@@ -85,6 +87,62 @@ object App : Application {
         }
     }
 
+    fun initMenubar() {
+        applicationMenu {
+            menu("Feeds") {
+                menuItem(label = "Add Feed") {
+                    window?.createFeedDialog()
+                }
+                menuItem(label = "Add Folder") {
+                    window?.createCategoryDialog()
+                }
+                separator()
+                menuItem(label = "Update All") {
+                    syncAll()
+                }
+                menuItem(label = "Update Current Feed") {
+                    syncCurrent()
+                }
+                separator()
+                menuItem(label = "Mark Current Feed as Read") {
+                    markCurrentFeedAsRead()
+                }
+                menuItem(label = "Mark All as Read") {
+                    markAllAsRead()
+                }
+                separator()
+                menuItem(label = "Settings") {
+                    if(configWindow == null) {
+                        configWindow = ConfigWindow()
+                    }
+                    configWindow!!.show()
+                }
+            }
+            menu("Filter") {
+                radioItem(label = "All items", varname = "filter") { event ->
+                    if(event.intValue == 1) {
+                        window?.feedList?.reloadCurrentFeed()
+                    }
+                }
+                radioItem(label = "Unread items", varname = "filter") { event ->
+                    if(event.intValue == 1) {
+                        window?.feedList?.reloadCurrentFeed()
+                    }
+                }
+                radioItem(label = "Bookmarked items", varname = "filter") { event ->
+                    if(event.intValue == 1) {
+                        window?.feedList?.reloadCurrentFeed()
+                    }
+                }
+            }
+            menu("View") {
+                radioItem(label = "Open item with default settings", varname = "browserSetting")
+                radioItem(label = "Open item description", varname = "browserSetting")
+                radioItem(label = "Open item link in internal browser", varname = "browserSetting")
+            }
+        }
+    }
+
     fun initToolbar() {
         toolbarItem(name = "reloadFeed", icon = "view-refresh", tooltip = "Refresh current feed") { event ->
             syncCurrent()
@@ -122,6 +180,7 @@ object App : Application {
                 markAllAsRead()
             }
             separator()
+            /*
             menu("Filter") {
                 radioItem(label = "All items", varname = "filter") { event ->
                     if(event.intValue == 1) {
@@ -139,6 +198,8 @@ object App : Application {
                     }
                 }
             }
+
+             */
             separator()
             radioItem(label = "Open item with default settings", varname = "browserSetting")
             radioItem(label = "Open item description", varname = "browserSetting")
index 0053a6550f3125190999a2fe369f5c3a94c1a943..8cb92d4dfc2a4e12a34ce69d18886e3dfc91c621 100644 (file)
@@ -77,8 +77,8 @@ class FeedList(window: MainWindow) : Document() {
         items.clear()
         feed.items.forEach { item ->
             when (filterMode) {
-                1 -> if(!item.isRead) items.add(item)
-                2 -> if(item.isBookmark) items.add(item)
+                2 -> if(!item.isRead) items.add(item)
+                3 -> if(item.isBookmark) items.add(item)
                 else -> items.add(item)
             }
 
index f97a9bdfc17f7ae81b2456c416a163d3f5810520..5b4faee5a911f87e895349aa3e2b50e9aa42f401 100644 (file)
@@ -42,6 +42,7 @@ fun Menu.separator() {
 }
 
 
+
 fun applicationMenu(block: Menu.() -> Unit) {
     Application.setAppMenu(menuBuilder(block))
 }