]> uap-core.de Git - rssreader.git/commitdiff
reload feed list when a feed is moved to another group
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 30 Jun 2026 17:25:26 +0000 (19:25 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 30 Jun 2026 17:25:26 +0000 (19:25 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedSourceList.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt
ui-java/src/main/java/de/unixwork/ui/ListFuncs.java

index 292d364b3cc9fadbd2de417ac7e94fd255d0e4d5..e9353e50d6656157a862b3a40236399e6ba2073e 100644 (file)
@@ -9,10 +9,14 @@ import kotlinx.coroutines.launch
 
 class FeedSourceList : Document() {
     val feeds = this.sourcelist("feeds")
-    val groups: MutableList<FeedGroup>
+    var groups: MutableList<FeedGroup>
 
     init {
         groups = Database.getFeedTree(this)
+        initTree()
+    }
+
+    fun initTree() {
         groups.forEach {
             val sublist = SubList<Feed>()
             sublist.header = it.name
@@ -130,6 +134,13 @@ class FeedSourceList : Document() {
         }
     }
 
+    fun reloadTree() {
+        feeds.clear()
+        groups = Database.getFeedTree(this)
+        initTree()
+        feeds.update()
+    }
+
     fun updateFeeds() {
         val selection = feeds.selectedIndex
         feeds.update()
index 8aaa807c87c3a8dfad47e54a6625d80188c1956b..01b6d92ee08641b2fd12bd2a8328cb5bfd199090 100644 (file)
@@ -472,10 +472,15 @@ class MainWindow() {
             height = 450,
             onClick = { ev ->
                 if(ev.intValue == 4) {
+                    var prevGroupId = feedConfig?.feed?.groupId
                     feedConfig?.updateFeed()
+                    if(feedConfig?.feed?.groupId != prevGroupId) {
+                        sourceList.reloadTree()
+                    } else {
+                        sourceList.updateFeeds()
+                    }
                 }
                 ev.`object`.close()
-                sourceList.updateFeeds()
             },
             ui = null)
         feedConfig = FeedConfig(w)
index 69f98e9848f3c25cd1dbfd3f2f96361fe1d8e93a..089dfb42b52b1e8bda9bda640a1c38ed7d5ef020 100644 (file)
@@ -111,7 +111,7 @@ public class ListFuncs {
         srclist_insert = linker.downcallHandle(ui_srclist_insert_addr, sigv_mim);
         srclist_remove = linker.downcallHandle(ui_srclist_remove_addr, sigv_mi);
         srclist_swap = linker.downcallHandle(ui_srclist_swap_addr, sigv_mii);
-        srclist_clear = linker.downcallHandle(ui_srclist_remove_addr, sigv_m);
+        srclist_clear = linker.downcallHandle(ui_srclist_clear_addr, sigv_m);
         srclist_size = linker.downcallHandle(ui_srclist_size_addr, sigi_m);
         srclist_generate_sublist_num_data = linker.downcallHandle(ui_srclist_generate_sublist_num_data_addr, sigv_m);