From 2f49c37c7219c5a79670efad43a8fe5a92d59506 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 5 Jun 2024 15:22:43 +0600 Subject: [PATCH] Added storage window repositories signature on-open selection if it was signed --- source/ubl-settings-repomanager.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 2e5841f..16d5f85 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -77,8 +77,24 @@ void yon_storage_config_update(storage_config_window *window){ gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(builder,"SignatureCombo")),0); g_signal_connect(gtk_builder_get_object(builder,"SignatureButton"),"clicked",G_CALLBACK(on_repo_signed),window); g_signal_connect(gtk_builder_get_object(builder,"RepoRemoveButton"),"clicked",G_CALLBACK(on_repo_removed),window); - g_signal_connect(gtk_builder_get_object(builder,"SignatureCombo"),"changed",G_CALLBACK(on_repo_sign_changed),window); gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(builder,"RepoNameEntry")),repo); + char *storage = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->StoragePathCombo)); + int sign_size; + char *command = yon_repo_get_signature(storage,repo); + yon_debug_output("%s\n",command); + config_str sign = yon_config_load(command,&sign_size); + if (sign_size>0){ + yon_char_remove_last_symbol(sign[2],'\n'); + char *mail = strstr(sign[2],"\""); + if (!yon_char_is_empty(mail)){ + char *email = yon_char_new(mail); + yon_char_remove_brackets(email); + gtk_combo_box_set_active_id(GTK_COMBO_BOX(gtk_builder_get_object(builder,"SignatureCombo")),email); + free(email); + } + yon_char_parsed_free(sign,sign_size); + } + g_signal_connect(gtk_builder_get_object(builder,"SignatureCombo"),"changed",G_CALLBACK(on_repo_sign_changed),window); } } }