From 3f50a7de2a61d08f57c38cdc9c36bacda19c81a7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 11 Jun 2024 16:10:04 +0600 Subject: [PATCH] Added file chooser window file activation --- source/ubl-settings-repomanager.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index ce49e78..e5ea13b 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -114,6 +114,21 @@ void on_file_chooser_entry_changed(GtkEntry *self, file_chooser_window *window){ if (!yon_char_is_empty(text)) free(pattern); } +void on_file_chooser_file_activate(GtkFileChooser *self, repo_add_window *window){ + GtkTreeIter iter; + GSList *list = gtk_file_chooser_get_filenames(self); + for (int i=0;iPackagesList,&iter); + gtk_list_store_set(window->PackagesList,&iter,1,filename,2,path,-1); + free(filename); + g_slist_free(list); + } + gtk_widget_destroy(gtk_widget_get_toplevel(GTK_WIDGET(self))); +} + file_chooser_window *yon_file_chooser_window_new(){ file_chooser_window *window = malloc(sizeof(file_chooser_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_filechooser); @@ -221,7 +236,7 @@ void on_storage_disable(GtkWidget *self, storage_config_window *window){ data->data=NULL; GtkTreeIter iter,itar; if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(window->StoragePathCombo),&iter)){ - if (yon_confirmation_dialog_call(self,data)){GtkTreeIter itar; + if (yon_confirmation_dialog_call(self,data)){ char *storage; const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo)); if (id){ @@ -632,6 +647,7 @@ void on_add_package(GtkWidget *self, repo_add_window *window){ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->FileChooserWidget),filter); g_signal_connect(G_OBJECT(dialog->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(dialog->ChooseButton),"clicked",G_CALLBACK(on_add_accept),dict); + g_signal_connect(G_OBJECT(dialog->FileChooserWidget),"file-activated",G_CALLBACK(on_file_chooser_file_activate),window); } void on_remove_package(GtkWidget *self, repo_add_window *window){ @@ -961,6 +977,7 @@ void on_move_add_package(GtkWidget *self, repo_add_window *window){ g_signal_connect(G_OBJECT(dialog->FileChooserWidget),"current-folder-changed",G_CALLBACK(on_folder_changed),dialog); g_signal_connect(G_OBJECT(dialog->ChooseButton),"clicked",G_CALLBACK(on_move_add_accept),dict); + g_signal_connect(G_OBJECT(dialog->FileChooserWidget),"file-activated",G_CALLBACK(on_file_chooser_file_activate),window); gtk_widget_show(dialog->Window); } } @@ -1135,6 +1152,7 @@ void on_remove_add_package(GtkWidget *self, repo_add_window *window){ g_signal_connect(G_OBJECT(dialog->FileChooserWidget),"current-folder-changed",G_CALLBACK(on_folder_changed),dialog); g_signal_connect(G_OBJECT(dialog->ChooseButton),"clicked",G_CALLBACK(on_move_add_accept),dict); + g_signal_connect(G_OBJECT(dialog->FileChooserWidget),"file-activated",G_CALLBACK(on_file_chooser_file_activate),window); gtk_widget_show(dialog->Window); } }