Added file chooser window file activation

pull/41/head
parent affff17bc8
commit 3f50a7de2a

@ -114,6 +114,21 @@ void on_file_chooser_entry_changed(GtkEntry *self, file_chooser_window *window){
if (!yon_char_is_empty(text)) free(pattern); 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;i<g_slist_length(list);i++){
char *path = g_slist_nth_data(list,i);
char *filename = yon_char_new(path);
free(yon_char_divide(filename,yon_char_find_last(filename,'/')));
gtk_list_store_append(window->PackagesList,&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 *yon_file_chooser_window_new(){
file_chooser_window *window = malloc(sizeof(file_chooser_window)); file_chooser_window *window = malloc(sizeof(file_chooser_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_filechooser); 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; data->data=NULL;
GtkTreeIter iter,itar; GtkTreeIter iter,itar;
if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(window->StoragePathCombo),&iter)){ 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; char *storage;
const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo)); const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo));
if (id){ 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); 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->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->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){ 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->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->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); 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->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->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); gtk_widget_show(dialog->Window);
} }
} }

Loading…
Cancel
Save