From bfd23ed410158b700ef0f39af82ad2b3be2e6563 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 9 Jun 2025 11:09:27 +0000 Subject: [PATCH 1/8] Fixed key password entries --- source/ubl-settings-repomanager.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index f2fce7d..59558f3 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -905,6 +905,8 @@ void on_key_generate_accept(GtkWidget *self, key_creation_window* window){ ex_status = system(yon_debug_output("%s\n",yon_generate_key_command(type,name,email,strength,comment,expire,password))); } else { yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_INCORRECT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordConfirmationEntry); + yon_ubl_status_highlight_incorrect(window->PasswordEntry); return; } if (!ex_status) @@ -934,6 +936,9 @@ key_creation_window *yon_key_creation_window_new(){ window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry"); window->PasswordConfirmationEntry = yon_gtk_builder_get_widget(builder,"PasswordConfirmationEntry"); + yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordConfirmationEntry)); + yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry)); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->ExpireButton),"clicked",G_CALLBACK(on_calendar_open),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_key_generate_accept),window); From bb64efad14e1e7721ecf50f8a01efd01b9507b1c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 9 Jun 2025 11:26:45 +0000 Subject: [PATCH 2/8] Key creation window fixes --- source/ubl-settings-repomanager.c | 10 ++++++++-- source/ubl-strings.h | 4 +++- ubl-settings-repomanager-key.glade | 2 ++ ubl-settings-repomanager_ru.po | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 59558f3..7b1ebf7 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -873,6 +873,11 @@ void on_key_generate_accept(GtkWidget *self, key_creation_window* window){ const char *email = gtk_entry_get_text(GTK_ENTRY(window->EmailEntry)); char *strength = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->KeyStrengthSpin))); const char *comment = gtk_entry_get_text(GTK_ENTRY(window->CommentsEntry)); + if (!yon_char_is_empty(name)&&strlen(name)<5){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NAME_SHORT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->NameEntry); + return; + } GtkWidget *highlight_target=NULL; if (yon_char_is_empty(name)){ highlight_target=window->NameEntry; @@ -882,8 +887,6 @@ void on_key_generate_accept(GtkWidget *self, key_creation_window* window){ highlight_target=window->EmailEntry; } else if (yon_char_is_empty(strength)){ highlight_target=window->KeyStrengthSpin; - } else if (yon_char_is_empty(comment)){ - highlight_target=window->CommentsEntry; } if (highlight_target){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); @@ -939,6 +942,8 @@ key_creation_window *yon_key_creation_window_new(){ yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordConfirmationEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry)); + g_signal_connect(G_OBJECT(window->ExpireCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),window->ExpireButton); + g_signal_connect(G_OBJECT(window->ExpireCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),window->ExpireEntry); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->ExpireButton),"clicked",G_CALLBACK(on_calendar_open),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_key_generate_accept),window); @@ -954,6 +959,7 @@ key_creation_window *yon_key_creation_window_new(){ gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->EncryptionCombo),parsed[2],parsed[0]); yon_char_parsed_free(parsed,parsed_size); } + gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->EncryptionCombo),"RSA"); return window; } diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 5f3c6d2..0699111 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -164,4 +164,6 @@ #define EMPTY_FOLDER_LABEL _("Folder must contain repositories") -#define FILES_EXIST_LABEL _("Folder must not be empty") \ No newline at end of file +#define FILES_EXIST_LABEL _("Folder must not be empty") + +#define NAME_SHORT_LABEL _("Name must be 5 or more symbols") \ No newline at end of file diff --git a/ubl-settings-repomanager-key.glade b/ubl-settings-repomanager-key.glade index 07621c5..49ffe95 100644 --- a/ubl-settings-repomanager-key.glade +++ b/ubl-settings-repomanager-key.glade @@ -288,6 +288,7 @@ True + False True @@ -299,6 +300,7 @@ True + False True True image1 diff --git a/ubl-settings-repomanager_ru.po b/ubl-settings-repomanager_ru.po index f7624f4..1703bbe 100644 --- a/ubl-settings-repomanager_ru.po +++ b/ubl-settings-repomanager_ru.po @@ -407,7 +407,7 @@ msgstr "Выберите репозиторий или пакет для под #: source/ubl-strings.h:117 msgid "Name:" -msgstr "Название:" +msgstr "Имя:" #: source/ubl-strings.h:118 msgid "Branches:" From 62dd9f96eeb1c2d9d078acb842c4724b75c35791 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 9 Jun 2025 11:36:22 +0000 Subject: [PATCH 3/8] Removed configuration window horizontal scroll --- ubl-settings-repomanager-configuration.glade | 1 + ubl-settings-repomanager-repo-block.glade | 1 + 2 files changed, 2 insertions(+) diff --git a/ubl-settings-repomanager-configuration.glade b/ubl-settings-repomanager-configuration.glade index 3aa1cf5..1575b04 100644 --- a/ubl-settings-repomanager-configuration.glade +++ b/ubl-settings-repomanager-configuration.glade @@ -190,6 +190,7 @@ True True + never True diff --git a/ubl-settings-repomanager-repo-block.glade b/ubl-settings-repomanager-repo-block.glade index a1682ac..0880f29 100644 --- a/ubl-settings-repomanager-repo-block.glade +++ b/ubl-settings-repomanager-repo-block.glade @@ -21,6 +21,7 @@ True False + 10 False From 810cd8bdd3f9deaadac0c8bdfc0b46ee6fa34625 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 9 Jun 2025 11:43:48 +0000 Subject: [PATCH 4/8] Test fix for key creation --- source/ubl-settings-repomanager.c | 2 +- source/ubl-settings-repomanager.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 7b1ebf7..dd9427c 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -915,7 +915,7 @@ void on_key_generate_accept(GtkWidget *self, key_creation_window* window){ if (!ex_status) yon_ubl_status_box_render(KEY_CREATION_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); else - yon_ubl_status_box_render(KEY_CREATION_FAILURE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + yon_ubl_status_box_render(KEY_CREATION_FAILURE_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); gtk_widget_destroy(window->Window); yon_sign_list_update(); } diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index e2c5fda..d25d215 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -107,7 +107,7 @@ Subkey-Length: ",strength,"\n\ Name-Real: ",name,"\n\ Name-Comment: ",comment,"\n\ Name-Email: ",email,"\n\ -Expire-Date: ",expire,"\n\ +Expire-Date: ",!yon_char_is_empty(expire)?expire:"0","\n\ Passphrase: ",password,"\n\ %commit\n\ %echo done\n\ @@ -122,7 +122,7 @@ Subkey-Length: ",strength,"\n\ Name-Real: ",name,"\n\ Name-Comment: ",comment,"\n\ Name-Email: ",email,"\n\ -Expire-Date: ",expire,"\n\ +Expire-Date: ",!yon_char_is_empty(expire)?expire:"0","\n\ %no-protection\n\ %commit\n\ %echo done\n\ From 5e2c05b6ac40cc58abaae48043d64bef3ec090a9 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 10 Jun 2025 03:54:24 +0000 Subject: [PATCH 5/8] Info render changes --- source/ubl-settings-repomanager.c | 24 ++++++++++++++++++------ source/ubl-settings-repomanager.h | 8 ++++---- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index dd9427c..1454b81 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -721,7 +721,7 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ char *repo_string = yon_char_parsed_to_string(repos,size,", "); char *archs_string = yon_char_parsed_to_string(archs,arch_size,", "); char *info = get_storage_info_label(target,repo_string,archs_string); - gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info); + gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),info); int lvlsize; config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,2); for (int i=0;iReposTree),&iter); char *info = get_repo_info_label(name,archs_string,sign); - gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info); + gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),info); int lvlsize; config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,3); for (int i=0;iRepoList),&itor,2,&trg,-1); char *info = get_arch_info_label(trg,name); - gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info); + gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),info); char *packages; int size; char *arch = yon_char_new(target); @@ -807,7 +807,7 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ } void on_package_selection_changed(GtkWidget *self, main_window *widgets){ - gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),""); + gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),""); GtkTreeIter iter,itar; GtkTreeModel *model, *model2; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoFileTree)),&model,&iter)){ @@ -827,10 +827,22 @@ void on_package_selection_changed(GtkWidget *self, main_window *widgets){ char *command = get_package_info_command(yon_char_unite(path,"/",filename,NULL)); yon_debug_output("%s\n",command); config_str parsed = yon_config_load(command,&size); + for (int i=0;i",">"); + temp = yon_char_replace(temp,"<","<"); + parsed[i] = yon_char_unite("",title,":",temp,NULL); + if (!yon_char_is_empty(temp)) free(temp); + if (!yon_char_is_empty(title)) free(title); + } + } char *full = yon_char_parsed_to_string(parsed,size,""); - gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),full); + gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),full); yon_char_parsed_free(parsed,size); - free(full); + if (!yon_char_is_empty(full)) free(full); break; } } diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index d25d215..238d7ac 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -90,13 +90,13 @@ 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 -f -r ''",repo,"'' -d '", storage,"' --sign-repo=",sign,NULL) -#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file ",filename," 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL) +#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file '",filename,"' 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL) -#define get_storage_info_label(path, repos, archs) yon_char_unite(STORAGE_PATH_LABEL,": ", path,"\n\n", REPOS_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) +#define get_storage_info_label(path, repos, archs) yon_char_unite("",STORAGE_PATH_LABEL,": ", path,"\n\n", REPOS_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) -#define get_repo_info_label(repos, archs,sign) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,"\n\n",sign,NULL) +#define get_repo_info_label(repos, archs,sign) yon_char_unite("",REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,"\n\n",sign,NULL) -#define get_arch_info_label(repos, archs) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) +#define get_arch_info_label(repos, archs) yon_char_unite("",REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) #define yon_generate_key_command(type,name,email,strength,comment,expire,password) yon_char_unite("gpg --batch --gen-key < Date: Tue, 10 Jun 2025 04:27:41 +0000 Subject: [PATCH 6/8] Fixed crash --- source/ubl-settings-repomanager.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 1454b81..e24015a 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -125,8 +125,8 @@ void on_file_chooser_file_activate(GtkFileChooser *self, repo_add_window *window 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); } + g_slist_free(list); } gtk_widget_destroy(gtk_widget_get_toplevel(GTK_WIDGET(self))); } @@ -831,7 +831,7 @@ void on_package_selection_changed(GtkWidget *self, main_window *widgets){ if (!yon_char_is_empty(parsed[i])&&strcmp(parsed[i],"\n")&&strstr(parsed[i],":")){ char *title = yon_char_divide_search(parsed[i],":",-1); char *temp = parsed[i]; - if (strstr(temp,"@")) temp = g_markup_escape_text(temp,strlen(temp)); + if (strstr(temp,"@")||strstr(temp,"<")||strstr(temp,">")) temp = g_markup_escape_text(temp,strlen(temp)); temp = yon_char_replace(temp,">",">"); temp = yon_char_replace(temp,"<","<"); parsed[i] = yon_char_unite("",title,":",temp,NULL); From c57273ec2af913a5a1a16815acbd7c5f0c10f265 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 10 Jun 2025 04:34:55 +0000 Subject: [PATCH 7/8] Fixed key creation password startup visibility --- ubl-settings-repomanager-key.glade | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ubl-settings-repomanager-key.glade b/ubl-settings-repomanager-key.glade index 49ffe95..7801c82 100644 --- a/ubl-settings-repomanager-key.glade +++ b/ubl-settings-repomanager-key.glade @@ -345,6 +345,8 @@ True True + False + * True @@ -381,6 +383,8 @@ True True + False + * True From dc81842febd69776b974da22222e41cae394a350 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 10 Jun 2025 06:29:14 +0000 Subject: [PATCH 8/8] Localisation update --- ubl-settings-repomanager.pot | 4 ++++ ubl-settings-repomanager_ru.po | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ubl-settings-repomanager.pot b/ubl-settings-repomanager.pot index 4ce191e..2aa34ec 100644 --- a/ubl-settings-repomanager.pot +++ b/ubl-settings-repomanager.pot @@ -524,3 +524,7 @@ msgstr "" #: source/ubl-strings.h:167 msgid "Folder must not be empty" msgstr "" + +#: source/ubl-strings.h:167 +msgid "Name must be 5 or more symbols" +msgstr "" diff --git a/ubl-settings-repomanager_ru.po b/ubl-settings-repomanager_ru.po index 1703bbe..98128a1 100644 --- a/ubl-settings-repomanager_ru.po +++ b/ubl-settings-repomanager_ru.po @@ -536,3 +536,7 @@ msgstr "Директория должна содержать репозитор #: source/ubl-strings.h:167 msgid "Folder must not be empty" msgstr "Директория должна быть пустой" + +#: source/ubl-strings.h:167 +msgid "Name must be 5 or more symbols" +msgstr "Имя должно быть в длину 5 или больше символов"