diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 476d201..170c2d5 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -547,7 +547,7 @@ void on_add_package(GtkWidget *self, repo_add_window *window){ yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->MainWindow),TITLE_LABEL,icon_path,"filechooserWindow"); gtk_widget_show(dialog->Window); GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_add_pattern(filter,"*.pkg.tar*"); + gtk_file_filter_add_pattern(filter,"*.pkg.tar*[^.sig]"); gtk_file_filter_set_name(filter,"*.pkg.tar*"); dictionary *dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); @@ -645,6 +645,15 @@ void on_add_packages_accept(GtkWidget *self, dictionary *dict){ } } +void on_repo_sign_load(GtkWidget *self, repo_add_window *window){ + GtkTreeIter iter; + yon_gtk_tree_iter_get_from_combo_box_id(GTK_COMBO_BOX(self),GTK_TREE_MODEL(window->tree_copy),&iter); + char *sign; + gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,5,&sign,-1); + if (!yon_char_is_empty(sign)) + gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->RepoSignCombo),sign); +} + repo_add_window *yon_repo_add_window_new(){ repo_add_window *window = malloc(sizeof(repo_add_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_repo_add); @@ -703,6 +712,9 @@ void on_add_clicked(GtkWidget *self, main_window *widgets){ yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo)); yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo)); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->RepoSignCombo),0); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->PackageSignCombo),0); + dictionary *dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); @@ -713,6 +725,7 @@ void on_add_clicked(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_add_packages_accept),dict); g_signal_connect(G_OBJECT(window->AddPackageButton),"clicked",G_CALLBACK(on_add_package),window); g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_remove_package),window); + g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_repo_sign_load),window); gtk_widget_show(window->MainWindow); } @@ -869,6 +882,8 @@ void on_move_clicked(GtkWidget *self, main_window *widgets){ yon_sign_list_update(); yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo)); yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo)); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->RepoSignCombo),0); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->PackageSignCombo),0); gtk_widget_destroy(gtk_widget_get_parent(window->StorageCombo)); g_signal_connect(G_OBJECT(window->MoveSourceStorageEntry),"changed",G_CALLBACK(on_move_storage_changed),window); @@ -881,6 +896,7 @@ void on_move_clicked(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->AddPackageButton),"clicked",G_CALLBACK(on_move_add_package),window); g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_move_remove_package),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_move_accept),window); + g_signal_connect(G_OBJECT(window->MoveSourceRepoEntry),"changed",G_CALLBACK(on_repo_sign_load),window); gtk_widget_show(window->MainWindow); } @@ -966,6 +982,8 @@ void on_remove_clicked(GtkWidget *self, main_window *widgets){ yon_sign_list_update(); yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo)); yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo)); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->RepoSignCombo),0); + gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo)); g_signal_connect(G_OBJECT(window->StorageCombo),"changed",G_CALLBACK(on_add_target_repo_selection_changed),window); @@ -974,6 +992,7 @@ void on_remove_clicked(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_remove_accept),window); g_signal_connect(G_OBJECT(window->AddPackageButton),"clicked",G_CALLBACK(on_remove_add_package),window); g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_move_remove_package),window); + g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_repo_sign_load),window); gtk_widget_show(window->MainWindow); } diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index 60896e3..e1a41ff 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -65,6 +65,8 @@ typedef char* string; #define yon_sign_package(storage,repo,arch,target,sign) yon_char_unite("repo-manager add -r '",repo,"' -a '",arch,"' -d '", storage,"' -S '",sign,"' ",target,NULL) #define yon_sign_repo(storage,repo,sign) yon_char_unite("repo-manager add -r '",repo,"' -d '", storage,"' -S '",sign,"'",NULL) +#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file ",filename," |sed -e 's/ */ /g' -e 's/ : /:/g' -e 's/\\n/ /g'",NULL) + string version_application; char *local;