diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index f2fce7d..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))); } @@ -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 = 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); + 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; } } @@ -873,6 +885,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 +899,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); @@ -905,12 +920,14 @@ 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) 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(); } @@ -934,6 +951,11 @@ 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->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); @@ -949,6 +971,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-settings-repomanager.h b/source/ubl-settings-repomanager.h index e2c5fda..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 < True True + never True diff --git a/ubl-settings-repomanager-key.glade b/ubl-settings-repomanager-key.glade index 07621c5..7801c82 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 @@ -343,6 +345,8 @@ True True + False + * True @@ -379,6 +383,8 @@ True True + False + * 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 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 f7624f4..98128a1 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:" @@ -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 или больше символов"