From 66d7bb1feac9446470f53a90080f87ad40e42a56 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 30 Jun 2025 16:19:42 +0000 Subject: [PATCH] Fixed main window update after adding/removing/moving packages --- source/ubl-settings-repomanager-move.c | 1 + source/ubl-settings-repomanager.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-repomanager-move.c b/source/ubl-settings-repomanager-move.c index 963f539..14fe774 100644 --- a/source/ubl-settings-repomanager-move.c +++ b/source/ubl-settings-repomanager-move.c @@ -242,6 +242,7 @@ void on_move_accept(GtkWidget *self, dictionary *dict){ } free(command); } + yon_interface_update(widgets); gtk_widget_destroy(window->MainWindow); free(window); } diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 2dd8dd5..28e6cc6 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -109,22 +109,24 @@ void yon_repo_tree_build_arch(char *key, arch_struct *arch, struct repo_tree_bui } void yon_interface_update(main_window *widgets){ - gtk_tree_store_clear(widgets->RepoList); - gtk_list_store_clear(widgets->RepoFileList); - gtk_list_store_clear(widgets->RepoPackagesList); GtkTreeIter iter; GtkTreeModel *model; GtkTreePath *path = NULL; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter)){ path = gtk_tree_model_get_path(model,&iter); } + gtk_tree_store_clear(widgets->RepoList); + gtk_list_store_clear(widgets->RepoFileList); + gtk_list_store_clear(widgets->RepoPackagesList); yon_storages_load(widgets); g_hash_table_foreach(main_config.storages,(GHFunc)yon_repo_tree_build_storage,widgets); if (path){ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(widgets->ReposTree),path); + gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),path); gtk_tree_path_free(path); } + // on_main_tree_selection_changed(widgets->Window,widgets); } @@ -173,7 +175,7 @@ void yon_sublist_packages_build(char *key, char *file, main_window *widgets){ gtk_list_store_set(widgets->RepoFileList,&iter,1,key,-1); } -void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ +void on_main_tree_selection_changed(GtkWidget *, main_window *widgets){ gtk_list_store_clear(widgets->RepoFileList); gtk_list_store_clear(widgets->RepoPackagesList); GtkTreeIter iter;