From 4fa7cd454bb2e28a67d5140e44c002d763be236c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Jan 2024 14:09:34 +0600 Subject: [PATCH 01/18] Added accept and cancel icons --- Makefile | 4 ++ ....libublsettingsui-gtk3.accept-symbolic.svg | 4 ++ ....libublsettingsui-gtk3.cancel-symbolic.svg | 50 +++++++++++++++++++ libublsettingsui-gtk3-saving.glade | 4 +- source/CMakeLists.txt | 1 + 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 com.ublinux.libublsettingsui-gtk3.accept-symbolic.svg create mode 100644 com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg diff --git a/Makefile b/Makefile index b21e3ae..cb37ba2 100644 --- a/Makefile +++ b/Makefile @@ -119,6 +119,10 @@ install: check rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ done @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.accept-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.cancel-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg" @if [ -z ${DESTDIR} ]; then \ [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \ diff --git a/com.ublinux.libublsettingsui-gtk3.accept-symbolic.svg b/com.ublinux.libublsettingsui-gtk3.accept-symbolic.svg new file mode 100644 index 0000000..79e0fdc --- /dev/null +++ b/com.ublinux.libublsettingsui-gtk3.accept-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg b/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg new file mode 100644 index 0000000..c045b0b --- /dev/null +++ b/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg @@ -0,0 +1,50 @@ + + + + + + + + + + diff --git a/libublsettingsui-gtk3-saving.glade b/libublsettingsui-gtk3-saving.glade index 3c5a65e..cd08459 100644 --- a/libublsettingsui-gtk3-saving.glade +++ b/libublsettingsui-gtk3-saving.glade @@ -13,12 +13,12 @@ True False - process-stop-symbolic + com.ublinux.libublsettingsui-gtk3.cancel-symbolic True False - emblem-ok-symbolic + com.ublinux.libublsettingsui-gtk3.accept-symbolic diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index a985bc6..6d9cd96 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -64,6 +64,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ -fstack-clash-protection -fcf-protection") + add_library(${PROJECT_NAME} SHARED libublsettingsui-gtk3.c libublsettingsui-gtk3.h From 605fca2f58717bc2ad96c8a35c96fa018ba1da13 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Jan 2024 16:00:20 +0600 Subject: [PATCH 02/18] Added css missing style classes bug --- source/libublsettingsui-gtk3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index ddacb41..8e29396 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -410,7 +410,7 @@ template_main_window *yon_ubl_window_setup(){ yon_window_config_setup(GTK_WINDOW(widgets->Window)); yon_window_config_load(ui_config_path); GtkCssProvider *css=gtk_css_provider_new(); - gtk_css_provider_load_from_resource(css,ui_CssPath); + gtk_css_provider_load_from_resource(css,template_app_information.css_path); gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css), -1); From 277f25017d83c8335ca40ef530c098e95611921f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Jan 2024 17:02:38 +0600 Subject: [PATCH 03/18] Save button becomes unsensitive when nothing is chosen --- source/libublsettingsui-gtk3.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 8e29396..49c6df8 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -76,6 +76,18 @@ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); gtk_list_store_set(window->list,&iter,0,!is_active,-1); } + int once_active=0; + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){ + int is_active; + gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); + if (is_active){ + once_active=1; + break; + } + } + if (!once_active) gtk_widget_set_sensitive(window->SaveButton,0); + else gtk_widget_set_sensitive(window->SaveButton,1); } From 1d2048aad591aa24de6fdf06a35af462ea2bd3fb Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 10 Jan 2024 12:46:55 +0600 Subject: [PATCH 04/18] Fixed unrendered changed deleting-ignored parameters --- source/libublsettingsui-gtk3.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 49c6df8..da22967 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -71,6 +71,7 @@ void on_about(GtkWidget *self, char *version_application){ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, template_saving_window *window){ GtkTreeIter iter; + if (path) if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path)){ gboolean is_active; gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); @@ -248,7 +249,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_save_parameters),window); g_signal_connect(G_OBJECT(window->ToggleCell),"toggled", G_CALLBACK(on_save_window_parameter_switched),window); int config_size=0; - config_str config_strings = yon_config_get_all_no_ignored(&config_size); + config_str config_strings = yon_config_get_all(&config_size); if (config_strings){ GtkTreeIter iter; gtk_tree_view_set_model(GTK_TREE_VIEW(window->ParametersTree),NULL); @@ -257,7 +258,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ int compare_keys_size=compare_size; yon_char_parsed_divide_search_full(compare_keys,compare_keys_size,"=",-1); int config_keys_size=0; - config_str config_keys = yon_config_get_all_keys_no_ignored(&config_keys_size); + config_str config_keys = yon_config_get_all_keys(&config_keys_size); int final_size=0; GdkRGBA rgba; rgba.alpha=0.8; @@ -266,7 +267,6 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ rgba.green=0.65; char *rgba_string = gdk_rgba_to_string(&rgba); for (int i=0;ilist,&iter); gtk_list_store_set(window->list,&iter,0,0,1,compare_keys[i],5,1,-1); for (int j=0;jlist),&iter,1,&name,2,&value,-1); if (!yon_char_is_empty(name)&&!strcmp(name,config_keys[i])){ gtk_list_store_set(window->list,&iter,3,compare_value,4,NULL,6,section,-1); - if (value&&!strcmp(value,compare_value)){ - gtk_list_store_set(window->list,&iter,0,0,5,0,-1); + if ((value&&!strcmp(value,compare_value))||yon_char_is_empty(compare_value)){ + gtk_list_store_set(window->list,&iter,0,0,3,value,5,0,-1); } found=1; break; @@ -314,6 +318,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } gtk_widget_show(window->Window); + on_save_window_parameter_switched(NULL,NULL,window); return window; } From 605bd3d71250b420d81a4dfde94bddd6aee265ed Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 10:33:46 +0600 Subject: [PATCH 05/18] Saving fixes --- libublsettingsui-gtk3-saving.glade | 8 ++--- source/libublsettingsui-gtk3.c | 55 +++++++++++++++++++----------- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/libublsettingsui-gtk3-saving.glade b/libublsettingsui-gtk3-saving.glade index cd08459..d47e755 100644 --- a/libublsettingsui-gtk3-saving.glade +++ b/libublsettingsui-gtk3-saving.glade @@ -154,9 +154,7 @@ fixed Old value - - 250 - + 4 5 @@ -170,9 +168,7 @@ autosize New value - - 250 - + 4 5 diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index da22967..62c3e38 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -136,13 +136,26 @@ void on_save_parameters(GtkWidget *self, template_saving_window *window){ free(final_command); } } + if (window->type == YON_CONFIG_GLOBAL) + yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + else if (window->type == YON_CONFIG_LOCAL) + yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + else if (window->type == YON_CONFIG_BOTH) + yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + + yon_window_config_custom_window_set(GTK_WINDOW(window->Window),"SaveWindow"); on_subwindow_close(self); } template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ if (((type==YON_CONFIG_LOCAL&& template_config->load_mode==1)||(type==YON_CONFIG_GLOBAL&& template_config->load_mode==0))){ yon_config_save_registered(path); - return NULL; + if (type == YON_CONFIG_GLOBAL) + yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + else if (type == YON_CONFIG_LOCAL) + yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + else if (type == YON_CONFIG_BOTH) + yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); } else { char *config_to_save = NULL; if (type==YON_CONFIG_GLOBAL) config_to_save="global"; @@ -150,10 +163,8 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ else if (type==YON_CONFIG_BOTH) { if (template_config->load_mode==1){ config_to_save="global"; - yon_config_save_registered("system"); } else if (template_config->load_mode==0){ config_to_save="system"; - yon_config_save_registered("global"); } } yon_config_set_status(0); @@ -269,22 +280,22 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ for (int i=0;ilist,&iter); gtk_list_store_set(window->list,&iter,0,0,1,compare_keys[i],5,1,-1); - for (int j=0;jdata,compare_value) - char *cur_section = (char*)yon_dictionary_get(&loaded.dict->first,compare_keys[i])->prev->data; - gtk_list_store_set(window->list,&iter,2,compare_value,4,rgba_string,6,cur_section,-1); + for (int j=0;jdata,compare_value) + char *cur_section = (char*)yon_dictionary_get(&loaded.dict->first,compare_keys[i])->prev->data; + gtk_list_store_set(window->list,&iter,2,compare_value,4,rgba_string,6,cur_section,-1); + } + free(compare_value); + free(compare_name); } - free(compare_value); - free(compare_name); + if (yon_config_check_ignore(compare_keys[i])){ + gtk_list_store_set(window->list,&iter,0,0,1,compare_keys[i],4,NULL,5,0,-1); + } - // if (!yon_config_check_ignore(compare_keys[i])){ - // } else { - - // } } char *name,*value; for (int i=0;ilist),&iter)){ gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,&name,2,&value,-1); if (!yon_char_is_empty(name)&&!strcmp(name,config_keys[i])){ - gtk_list_store_set(window->list,&iter,3,compare_value,4,NULL,6,section,-1); - if ((value&&!strcmp(value,compare_value))||yon_char_is_empty(compare_value)){ - gtk_list_store_set(window->list,&iter,0,0,3,value,5,0,-1); + if (!yon_config_check_ignore(name)){ + gtk_list_store_set(window->list,&iter,3,compare_value,4,NULL,6,section,-1); + if ((value&&!strcmp(value,compare_value))||yon_char_is_empty(compare_value)){ + gtk_list_store_set(window->list,&iter,0,0,3,value,5,0,-1); + } else { + gtk_list_store_set(window->list,&iter,5,1,-1); + } + } else { + printf ("%s ignored\n",name); } found=1; break; From 4d35ac6caec17e37d3b9bbb7dbebd284d1085780 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 11:34:04 +0600 Subject: [PATCH 06/18] Temporary removed minimal column size - started causing crashes --- source/libublsettingsui-gtk3.c | 44 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 62c3e38..f821018 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -186,27 +186,27 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ struct loaded_config loaded; loaded.dict = yon_dictionary_new(); dictionary *dct; - for_dictionaries(dct,section_commands){ - char *command = yon_char_unite(ubconfig_load_command," default get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); - FILE *output = popen(command, "r"); - char **output_strings = NULL; - output_strings = malloc(sizeof(char*)); - int i = 0; - char str[4096]; - memset(str, 0, 4096); - while (fgets(str, 4096, output)) - { - if (!yon_char_is_empty(str)&& strcmp(str,"(null)\n")!=0) - { - char *final_str = yon_char_new(str); - char *key =yon_char_divide_search(final_str,"=",-1); - if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0'; - yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,NULL,yon_char_new(dct->key)); - yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,key,yon_char_new(final_str)); - yon_char_parsed_add_or_create_if_exists(config_compare,&compare_size,yon_char_new(str)); - } - } - } + // for_dictionaries(dct,section_commands){ + // char *command = yon_char_unite(ubconfig_load_command," default get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); + // FILE *output = popen(command, "r"); + // char **output_strings = NULL; + // output_strings = malloc(sizeof(char*)); + // int i = 0; + // char str[4096]; + // memset(str, 0, 4096); + // while (fgets(str, 4096, output)) + // { + // if (!yon_char_is_empty(str)&& strcmp(str,"(null)\n")!=0) + // { + // char *final_str = yon_char_new(str); + // char *key =yon_char_divide_search(final_str,"=",-1); + // if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0'; + // yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,NULL,yon_char_new(dct->key)); + // yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,key,yon_char_new(final_str)); + // yon_char_parsed_add_or_create_if_exists(config_compare,&compare_size,yon_char_new(str)); + // } + // } + // } for_dictionaries(dct,section_commands){ char *command = yon_char_unite(ubconfig_load_command," ", config_to_save," get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); FILE *output = popen(command, "r"); @@ -255,7 +255,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ gtk_window_set_title(GTK_WINDOW(window->Window),template_app_information.app_title); gtk_label_set_text(GTK_LABEL(window->HeaderTopic),template_app_information.app_title); gtk_image_set_from_pixbuf(GTK_IMAGE(window->HeaderImage),gtk_icon_theme_load_icon_for_scale(gtk_icon_theme_get_default(),yon_char_append("com.ublinux.",template_app_information.app_tech_name),32,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL)); - yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(window->ParametersTree)); + // yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(window->ParametersTree)); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_save_parameters),window); g_signal_connect(G_OBJECT(window->ToggleCell),"toggled", G_CALLBACK(on_save_window_parameter_switched),window); From 9f284bcc6f536d6f4e40ebca040b1da37e341516 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 12:36:40 +0600 Subject: [PATCH 07/18] Fixed missing save success localisation --- libublsettingsui-gtk3.css | 15 +++++++++++++++ libublsettingsui-gtk3.glade | 3 +++ source/libublsettingsui-gtk3.c | 9 +++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/libublsettingsui-gtk3.css b/libublsettingsui-gtk3.css index 88e8c57..a08bca0 100644 --- a/libublsettingsui-gtk3.css +++ b/libublsettingsui-gtk3.css @@ -111,4 +111,19 @@ background:transparent; .boxInfoMessOK{ background-color: #f3f0ac; +} +.instant { + transition: 0ms; +} +.errorBox { + border-width: 2px; + border-color: #ea9999; + border-style:solid; +} + +.chosenOutline{ + transition: 0ms; + border-width: 2px; + border-color: #f3f0ac; + border-style:solid; } \ No newline at end of file diff --git a/libublsettingsui-gtk3.glade b/libublsettingsui-gtk3.glade index aa4b402..3915044 100644 --- a/libublsettingsui-gtk3.glade +++ b/libublsettingsui-gtk3.glade @@ -159,6 +159,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False False False + True diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index f821018..5ea5bf4 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -136,13 +136,15 @@ void on_save_parameters(GtkWidget *self, template_saving_window *window){ free(final_command); } } + textdomain(template_ui_LocaleName); if (window->type == YON_CONFIG_GLOBAL) yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); else if (window->type == YON_CONFIG_LOCAL) yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); else if (window->type == YON_CONFIG_BOTH) yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); - + textdomain(template_app_information.app_locale); + yon_window_config_custom_window_set(GTK_WINDOW(window->Window),"SaveWindow"); on_subwindow_close(self); } @@ -150,12 +152,14 @@ void on_save_parameters(GtkWidget *self, template_saving_window *window){ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ if (((type==YON_CONFIG_LOCAL&& template_config->load_mode==1)||(type==YON_CONFIG_GLOBAL&& template_config->load_mode==0))){ yon_config_save_registered(path); + textdomain(template_ui_LocaleName); if (type == YON_CONFIG_GLOBAL) yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); else if (type == YON_CONFIG_LOCAL) yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); else if (type == YON_CONFIG_BOTH) yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + textdomain(template_app_information.app_locale); } else { char *config_to_save = NULL; if (type==YON_CONFIG_GLOBAL) config_to_save="global"; @@ -431,13 +435,14 @@ template_main_window *yon_ubl_window_setup(){ template_main_window *widgets = setup_window(); yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,ui_banner_path); - + textdomain(template_ui_LocaleName); if (yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel)){ if (getuid()!=0) yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); else yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); } + textdomain(template_app_information.app_locale); template_config->load_mode=1; if(template_config) yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,template_config->socket_id,template_config->load_socket_id,template_config->save_socket_id); From ed548122ef138eb98283fbdccf0f4c8ff38bf969 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 15:00:50 +0600 Subject: [PATCH 08/18] Comments deletion --- source/libublsettingsui-gtk3.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 5ea5bf4..d426c9d 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -190,27 +190,6 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ struct loaded_config loaded; loaded.dict = yon_dictionary_new(); dictionary *dct; - // for_dictionaries(dct,section_commands){ - // char *command = yon_char_unite(ubconfig_load_command," default get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); - // FILE *output = popen(command, "r"); - // char **output_strings = NULL; - // output_strings = malloc(sizeof(char*)); - // int i = 0; - // char str[4096]; - // memset(str, 0, 4096); - // while (fgets(str, 4096, output)) - // { - // if (!yon_char_is_empty(str)&& strcmp(str,"(null)\n")!=0) - // { - // char *final_str = yon_char_new(str); - // char *key =yon_char_divide_search(final_str,"=",-1); - // if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0'; - // yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,NULL,yon_char_new(dct->key)); - // yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,key,yon_char_new(final_str)); - // yon_char_parsed_add_or_create_if_exists(config_compare,&compare_size,yon_char_new(str)); - // } - // } - // } for_dictionaries(dct,section_commands){ char *command = yon_char_unite(ubconfig_load_command," ", config_to_save," get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); FILE *output = popen(command, "r"); @@ -288,7 +267,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ if(config_compare[j][strlen(config_compare[j])-1]=='\n') config_compare[j][strlen(config_compare[j])-1]='\0'; char *compare_value = yon_char_new(config_compare[j]); char *compare_name = yon_char_divide_search(compare_value,"=",-1); - if (!strcmp(compare_name,compare_keys[i])){ //&&strcmp((char*)yon_dictionary_get(&loaded.dict,compare_name)->data,compare_value) + if (!strcmp(compare_name,compare_keys[i])){ char *cur_section = (char*)yon_dictionary_get(&loaded.dict->first,compare_keys[i])->prev->data; gtk_list_store_set(window->list,&iter,2,compare_value,4,rgba_string,6,cur_section,-1); } @@ -393,7 +372,6 @@ template_main_window *setup_window(){ widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL); gtk_window_set_icon_name(GTK_WINDOW(widgets->Window),yon_char_append("com.ublinux.",template_app_information.app_tech_name)); - // gtk_image_set_from_icon_name(widgets->HeadImage,) gtk_image_set_from_pixbuf(GTK_IMAGE(HeadImage),gtk_icon_theme_load_icon_for_scale(gtk_icon_theme_get_default(),yon_char_append("com.ublinux.",template_app_information.app_tech_name),32,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(HatIcon),gtk_icon_theme_load_icon_for_scale(gtk_icon_theme_get_default(),yon_char_append("com.ublinux.",template_app_information.app_tech_name),64,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL)); gtk_window_set_title(GTK_WINDOW(widgets->Window),template_app_information.app_title); From 1bd63a9d6fb44e903faee7b2dbc65f3e1f0f5115 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 15:18:36 +0600 Subject: [PATCH 09/18] Removed untouched parameters from saving window --- source/libublsettingsui-gtk3.c | 4 +++- source/libublsettingsui-gtk3.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index d426c9d..a2c8c69 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -233,6 +233,8 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ window->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleCell")); window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); window->type=type; + window->filteredModel = gtk_tree_model_filter_new(GTK_TREE_MODEL(window->list),NULL); + gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(window->filteredModel),5); yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"SaveWindow"); gtk_window_set_icon_name(GTK_WINDOW(window->Window),yon_char_append("com.ublinux.",template_app_information.app_tech_name)); gtk_window_set_title(GTK_WINDOW(window->Window),template_app_information.app_title); @@ -314,7 +316,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } free(rgba_string); - gtk_tree_view_set_model(GTK_TREE_VIEW(window->ParametersTree),GTK_TREE_MODEL(window->list)); + gtk_tree_view_set_model(GTK_TREE_VIEW(window->ParametersTree),window->filteredModel); } gtk_widget_show(window->Window); diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 377479b..951e006 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -150,6 +150,7 @@ typedef struct { GtkWidget *CancelButton; GtkWidget *SaveButton; GtkListStore *list; + GtkTreeModel *filteredModel; YON_CONFIG_TYPE type; } template_saving_window; From 9afaffa2da2c0a63adede69e075192bb301bfd73 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 17:07:19 +0600 Subject: [PATCH 10/18] Fixed unclicked check buttons on saving window --- libublsettingsui-gtk3-saving.glade | 3 +++ source/libublsettingsui-gtk3.c | 25 ++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/libublsettingsui-gtk3-saving.glade b/libublsettingsui-gtk3-saving.glade index d47e755..50ff9d6 100644 --- a/libublsettingsui-gtk3-saving.glade +++ b/libublsettingsui-gtk3-saving.glade @@ -217,4 +217,7 @@ + + liststore1 + diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index a2c8c69..e1e3f8d 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -70,12 +70,22 @@ void on_about(GtkWidget *self, char *version_application){ //functions void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, template_saving_window *window){ - GtkTreeIter iter; - if (path) - if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path)){ - gboolean is_active; - gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); - gtk_list_store_set(window->list,&iter,0,!is_active,-1); + GtkTreeIter iter,itar; + if (path){ + if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->filteredModel),&itar,path)){ + char *seek_name; + gtk_tree_model_get(window->filteredModel,&itar,1,&seek_name,-1); + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){ + char *name; + gtk_tree_model_get(window->list,&iter,1,&name,-1); + if (!strcmp(seek_name,name)){ + gboolean is_active; + gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); + gtk_list_store_set(window->list,&iter,0,!is_active,-1); + } + } + } } int once_active=0; int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); @@ -89,6 +99,7 @@ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, } if (!once_active) gtk_widget_set_sensitive(window->SaveButton,0); else gtk_widget_set_sensitive(window->SaveButton,1); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->filteredModel)); } @@ -233,7 +244,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ window->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleCell")); window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); window->type=type; - window->filteredModel = gtk_tree_model_filter_new(GTK_TREE_MODEL(window->list),NULL); + window->filteredModel = GTK_TREE_MODEL(gtk_builder_get_object(builder,"listfilter1")); gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(window->filteredModel),5); yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"SaveWindow"); gtk_window_set_icon_name(GTK_WINDOW(window->Window),yon_char_append("com.ublinux.",template_app_information.app_tech_name)); From 2a0d4c51c9520f2c7b492dd1e03aedbf87bb4a4a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 17:53:53 +0600 Subject: [PATCH 11/18] Fixed building warning --- source/libublsettingsui-gtk3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index e1e3f8d..5d16935 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -78,7 +78,7 @@ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){ char *name; - gtk_tree_model_get(window->list,&iter,1,&name,-1); + gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,&name,-1); if (!strcmp(seek_name,name)){ gboolean is_active; gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); From 491e077edf513094e5d09a3fc8301b2a27054b9d Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 10:06:58 +0600 Subject: [PATCH 12/18] Added test action confirmation window --- source/libublsettingsui-gtk3.c | 31 +++++++++++++++++++++++++++++++ source/libublsettingsui-gtk3.h | 8 ++++++++ 2 files changed, 39 insertions(+) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 5d16935..48bd0c7 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -338,6 +338,37 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } +void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ + GtkWidget *dialog = gtk_dialog_new_with_buttons(template_app_information.app_title,GTK_WINDOW(gtk_widget_get_toplevel(self)),GTK_DIALOG_MODAL,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); + gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); + gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); + gtk_widget_set_size_request(dialog,450,-1); + + GtkWidget *header = gtk_header_bar_new(); + gtk_header_bar_set_title(GTK_HEADER_BAR(header),template_app_information.app_title); + gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1); + gtk_widget_show(header); + gtk_window_set_titlebar(GTK_WINDOW(dialog),header); + + GtkWidget *image = gtk_image_new_from_icon_name("dialog-question-symbolic",GTK_ICON_SIZE_DIALOG); + gtk_widget_show(image); + + GtkWidget *label = gtk_label_new(data->action_text); + gtk_widget_show(label); + + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); + gtk_widget_show(box); + gtk_box_pack_start(GTK_BOX(box),image,0,0,5); + gtk_box_pack_start(GTK_BOX(box),label,0,0,5); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),box,1,1,5); + + int resp = gtk_dialog_run(GTK_DIALOG(dialog)); + if (resp == GTK_RESPONSE_ACCEPT){ + data->function(NULL,data->data); + } + gtk_widget_destroy(dialog); +} + // standard functions int yon_ubl_connect_config(_template_config *config){ diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 951e006..054fb69 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -154,6 +154,14 @@ typedef struct { YON_CONFIG_TYPE type; } template_saving_window; +typedef struct { + void (*function)(void*,void*); + void *data; + char *action_text; +} dialog_confirmation_data; + +void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data); + template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...); /**yon_open_browser(GtkWidget *self, char *link) From fc8c2407d55e1296da0ea1f59427b3fc8fdcb54d Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 10:15:31 +0600 Subject: [PATCH 13/18] Minor style changes of action confirmation dialog --- source/libublsettingsui-gtk3.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 48bd0c7..3b79a20 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -344,14 +344,25 @@ void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); gtk_widget_set_size_request(dialog,450,-1); + GtkWidget *header_label = gtk_label_new(template_app_information.app_title); + gtk_widget_show(header_label); + PangoAttrList *attributes = pango_attr_list_new(); + PangoAttribute *boldAttr = pango_attr_weight_new(PANGO_WEIGHT_BOLD); + pango_attr_list_insert(attributes, boldAttr); + gtk_label_set_attributes(GTK_LABEL(header_label),attributes); + GtkWidget *header = gtk_header_bar_new(); - gtk_header_bar_set_title(GTK_HEADER_BAR(header),template_app_information.app_title); + gtk_header_bar_set_custom_title(GTK_HEADER_BAR(header),header_label); gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1); gtk_widget_show(header); gtk_window_set_titlebar(GTK_WINDOW(dialog),header); GtkWidget *image = gtk_image_new_from_icon_name("dialog-question-symbolic",GTK_ICON_SIZE_DIALOG); gtk_widget_show(image); + gtk_widget_set_margin_start(image,20); + gtk_widget_set_margin_end(image,20); + gtk_widget_set_margin_bottom(image,20); + gtk_widget_set_margin_top(image,20); GtkWidget *label = gtk_label_new(data->action_text); gtk_widget_show(label); From c9362150d8b7322551e8651f0c9636c472597d3a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 11:54:21 +0600 Subject: [PATCH 14/18] Confirmation dialog edits for more flexibility --- source/libublsettingsui-gtk3.c | 5 +++-- source/libublsettingsui-gtk3.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 3b79a20..11018db 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -338,7 +338,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } -void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ +int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ GtkWidget *dialog = gtk_dialog_new_with_buttons(template_app_information.app_title,GTK_WINDOW(gtk_widget_get_toplevel(self)),GTK_DIALOG_MODAL,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); @@ -374,10 +374,11 @@ void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),box,1,1,5); int resp = gtk_dialog_run(GTK_DIALOG(dialog)); - if (resp == GTK_RESPONSE_ACCEPT){ + if (resp == GTK_RESPONSE_ACCEPT&&data->function){ data->function(NULL,data->data); } gtk_widget_destroy(dialog); + return resp; } // standard functions diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 054fb69..d3ff959 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -160,7 +160,7 @@ typedef struct { char *action_text; } dialog_confirmation_data; -void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data); +int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data); template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...); From af1ce5132574f02684d164ca2ef69a2cbc70c258 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 11:59:00 +0600 Subject: [PATCH 15/18] Increased buttons margin --- source/libublsettingsui-gtk3.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 11018db..8743747 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -343,6 +343,8 @@ int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data) gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); gtk_widget_set_size_request(dialog,450,-1); + gtk_widget_set_margin_bottom(gtk_dialog_get_action_area(GTK_DIALOG(dialog)),5); + gtk_widget_set_margin_end(gtk_dialog_get_action_area(GTK_DIALOG(dialog)),5); GtkWidget *header_label = gtk_label_new(template_app_information.app_title); gtk_widget_show(header_label); From 35293f60e050a3a79f098e0c65086dc82ea8b0b8 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 12:05:50 +0600 Subject: [PATCH 16/18] Increased buttons margin --- source/libublsettingsui-gtk3.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 8743747..6acef7e 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -343,9 +343,10 @@ int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data) gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); gtk_widget_set_size_request(dialog,450,-1); - gtk_widget_set_margin_bottom(gtk_dialog_get_action_area(GTK_DIALOG(dialog)),5); - gtk_widget_set_margin_end(gtk_dialog_get_action_area(GTK_DIALOG(dialog)),5); - + GList *list = gtk_container_get_children(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog)))); + gtk_widget_set_margin_bottom((GtkWidget*)g_list_nth_data(list,g_list_length(list)-1),5); + gtk_widget_set_margin_end((GtkWidget*)g_list_nth_data(list,g_list_length(list)-1),5); + g_list_free(list); GtkWidget *header_label = gtk_label_new(template_app_information.app_title); gtk_widget_show(header_label); PangoAttrList *attributes = pango_attr_list_new(); From 1977b6414b524394820694e738449061f1a5aaa2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 12:15:53 +0600 Subject: [PATCH 17/18] Confirmation dialog buttons are moved to header --- source/libublsettingsui-gtk3.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 6acef7e..d97b8e1 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -339,8 +339,9 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ - GtkWidget *dialog = gtk_dialog_new_with_buttons(template_app_information.app_title,GTK_WINDOW(gtk_widget_get_toplevel(self)),GTK_DIALOG_MODAL,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); - gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); + GtkWidget *dialog = gtk_dialog_new_with_buttons(template_app_information.app_title,GTK_WINDOW(gtk_widget_get_toplevel(self)),GTK_DIALOG_USE_HEADER_BAR,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); + gtk_window_set_modal(GTK_WINDOW(dialog),1); + gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_tech_name)); gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); gtk_widget_set_size_request(dialog,450,-1); GList *list = gtk_container_get_children(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog)))); @@ -354,11 +355,9 @@ int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data) pango_attr_list_insert(attributes, boldAttr); gtk_label_set_attributes(GTK_LABEL(header_label),attributes); - GtkWidget *header = gtk_header_bar_new(); + GtkWidget *header = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); gtk_header_bar_set_custom_title(GTK_HEADER_BAR(header),header_label); - gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1); gtk_widget_show(header); - gtk_window_set_titlebar(GTK_WINDOW(dialog),header); GtkWidget *image = gtk_image_new_from_icon_name("dialog-question-symbolic",GTK_ICON_SIZE_DIALOG); gtk_widget_show(image); From 0cc7bc59ef8639b2fef7410b65d03d2db499820e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 12:52:54 +0600 Subject: [PATCH 18/18] Moved buttons at dialogs to header; cancel icon recoloring --- ....libublsettingsui-gtk3.cancel-symbolic.svg | 1 - libublsettingsui-gtk3-documentation.glade | 98 ++++++++----------- libublsettingsui-gtk3-saving.glade | 65 +++++++----- libublsettingsui-gtk3.css | 4 + 4 files changed, 84 insertions(+), 84 deletions(-) diff --git a/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg b/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg index c045b0b..aa858f9 100644 --- a/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg +++ b/com.ublinux.libublsettingsui-gtk3.cancel-symbolic.svg @@ -44,7 +44,6 @@ d="m 77.21183,104.22131 c -0.8763,0 -1.5875,0.7112 -1.5875,1.5875 0,0.8763 0.7112,1.5875 1.5875,1.5875 0.8763,0 1.5875,-0.7112 1.5875,-1.5875 0,-0.8763 -0.7112,-1.5875 -1.5875,-1.5875 z m 0,0.56696 c 0.563335,0 1.020535,0.4572 1.020535,1.02054 0,0.15224 -0.03405,0.2963 -0.0939,0.42611 l -1.353627,-1.35275 c 0.129997,-0.0601 0.274468,-0.0939 0.426995,-0.0939 z m -0.91423,0.56874 1.366915,1.36603 c -0.136513,0.0678 -0.290022,0.1063 -0.452685,0.1063 -0.563336,0 -1.020536,-0.4572 -1.020536,-1.02053 0,-0.16238 0.03874,-0.31547 0.106306,-0.4518 z" id="Symbol" inkscape:label="#path2424" - class="error" inkscape:connector-curvature="0" /> diff --git a/libublsettingsui-gtk3-documentation.glade b/libublsettingsui-gtk3-documentation.glade index 8fdfcc9..359151c 100644 --- a/libublsettingsui-gtk3-documentation.glade +++ b/libublsettingsui-gtk3-documentation.glade @@ -2,6 +2,16 @@ + + True + False + process-stop-symbolic + + + True + False + emblem-ok-symbolic + False False @@ -128,60 +138,12 @@ translated and supported by community. 0 - - - True - False - 30 - True - - - Cancel - True - True - True - image8 - - - - True - True - 0 - - - - - Open documentation - True - True - True - image9 - - - - True - True - 1 - - - - - False - True - 1 - - True False - True True @@ -192,17 +154,37 @@ translated and supported by community. + + + Cancel + True + True + True + image8 + + + + + + Open documentation + True + True + True + image9 + + + + end + 1 + + - - True - False - process-stop-symbolic - - - True - False - emblem-ok-symbolic - diff --git a/libublsettingsui-gtk3-saving.glade b/libublsettingsui-gtk3-saving.glade index 50ff9d6..44df800 100644 --- a/libublsettingsui-gtk3-saving.glade +++ b/libublsettingsui-gtk3-saving.glade @@ -14,11 +14,17 @@ True False com.ublinux.libublsettingsui-gtk3.cancel-symbolic + True False com.ublinux.libublsettingsui-gtk3.accept-symbolic + @@ -47,6 +53,7 @@ dialog + True False 5 vertical @@ -56,32 +63,10 @@ False end - - Cancel - True - True - True - image1 - - - True - True - 0 - + - - Save - True - True - True - image2 - - - True - True - 1 - + @@ -192,7 +177,6 @@ True False - True True @@ -211,6 +195,37 @@ com.ublinux.libublsettingsui-gtk3 + + + Cancel + True + True + True + image1 + + + + 1 + + + + + Save + True + True + True + image2 + + + + end + 2 + + diff --git a/libublsettingsui-gtk3.css b/libublsettingsui-gtk3.css index a08bca0..a706226 100644 --- a/libublsettingsui-gtk3.css +++ b/libublsettingsui-gtk3.css @@ -126,4 +126,8 @@ background:transparent; border-width: 2px; border-color: #f3f0ac; border-style:solid; +} + +.marginright image{ + margin-right: 2px; } \ No newline at end of file