From cd8080688cdb84f01a37e80a9ce0faa2c0b360d2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 13 Jan 2025 17:21:02 +0600 Subject: [PATCH 01/30] Fixed custom config loading --- source/ubl-settings-datetime.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 30d9f8b..a0a3226 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -117,7 +117,9 @@ void on_config_load_custom(){ } void yon_load_proceed(YON_CONFIG_TYPE type){ - yon_config_clean(); + if (type!=YON_CONFIG_CUSTOM){ + yon_config_clean(); + } if (!yon_char_is_empty(config_get_default_command)) yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); if (type==YON_CONFIG_GLOBAL){ @@ -146,6 +148,7 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ } else { gtk_widget_destroy(dialog); } + yon_config_clean(); char *command = yon_config_get_custom_command(path); yon_config_load_config(type,command,NULL); } -- 2.35.1 From 61c8d590599e8973a09e5236b301c2f9ab13d9d1 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 22 Jan 2025 16:17:58 +0600 Subject: [PATCH 02/30] Fixes --- source/ubl-settings-datetime.c | 10 +++++----- ubl-settings-datetime.glade | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index a0a3226..70824f1 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -7,11 +7,6 @@ config main_config; int yon_char_parsed_compare(const void *a, const void *b){ const config_str str_a = (const config_str)a; const config_str str_b = (const config_str)b; - - // if (strstr(*str_a,"+")&&strstr(*str_b,"-")) return 1; - // else if (strstr(*str_a,"-")&&strstr(*str_b,"+")) return -1; - - // if (strstr(*str_a,"-")&&strstr(*str_b,"-")) return strcmp(*str_b,*str_a); if ((strstr(*str_a,"-")||strstr(*str_a,"+"))&&(strstr(*str_b,"-")||strstr(*str_b,"+"))){ int a = atoi(*str_a+3); @@ -258,6 +253,11 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){ config_str parsed_sorted = yon_char_parsed_sort(parsed,size); yon_char_parsed_free(parsed,size); for (int i=0;iZoneCombo),parsed_sorted[i],_(parsed_sorted[i])); } if (size) yon_char_parsed_free(parsed_sorted,size); diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 73a483f..0d20a38 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -375,6 +375,7 @@ Format: DD.MM.YYYY False 0 + Default Local time UTC -- 2.35.1 From 02572c7ed18a8911e3074ab20aa4cf8464a9a181 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 22 Jan 2025 16:30:08 +0600 Subject: [PATCH 03/30] Added default parameter for HWCLOCK_SYNC --- source/ubl-settings-datetime.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 70824f1..18b1122 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -53,9 +53,10 @@ void yon_save_parameters(main_window *widgets){ free(zone_parameter); } - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo))==0){ + int hwclock_sync = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo)); + if (hwclock_sync==1){ yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); - } else { + } else if (hwclock_sync == 2) { yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); } @@ -207,9 +208,9 @@ void yon_interface_update(main_window *widgets){ char *hwclock_sync = config(HWCLOCK_SYNC_parameter); if (!yon_char_is_empty(hwclock_sync)){ if (!strcmp(hwclock_sync,"utc")){ + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),2); + } else if (!strcmp(hwclock_sync,"localtime")){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),1); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0); } } -- 2.35.1 From 1003b3951307da9d3c47a4f0b38f6cda7f3f9cc7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 22 Jan 2025 17:15:43 +0600 Subject: [PATCH 04/30] Fixed HWCLOCK_SYNC parameter removal --- source/ubl-settings-datetime.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 18b1122..47b096f 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -58,6 +58,8 @@ void yon_save_parameters(main_window *widgets){ yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); } else if (hwclock_sync == 2) { yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); + } else { + yon_config_remove_by_key(HWCLOCK_SYNC_parameter); } } -- 2.35.1 From 1358abb0498cca13758649b9d48b3223e9217ffe Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 22 Jan 2025 17:21:22 +0600 Subject: [PATCH 05/30] Saving fixes --- source/ubl-settings-datetime.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index dad2bdb..d6104d9 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -32,7 +32,7 @@ #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get clock HWCLOCK_SYNC ZONE","; ", "ubconfig --source ",target," get et network NTPSERVERS",NULL) #define config_get_local_command "ubconfig --source system get clock HWCLOCK_SYNC ZONE", "ubconfig --source system get network NTPSERVERS" #define config_get_global_command "ubconfig --source global get clock HWCLOCK_SYNC ZONE", "ubconfig --source global get network NTPSERVERS" -#define config_get_default_command "ubconfig --source default get clock ZONE HWCLOCK_SYNC" +#define config_get_default_command "" #define config_get_global_only_parameters "" #define config_get_local_only_parameters "" -- 2.35.1 From 658923ea6f31e9b17d39bffce86f5d9fdf0cf921 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 22 Jan 2025 18:19:49 +0600 Subject: [PATCH 06/30] Fixed Time sync loading --- source/ubl-settings-datetime.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 47b096f..0d00c1b 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -79,7 +79,7 @@ void on_config_save_global(GtkWidget *, main_window *widgets){ void on_config_save_local(GtkWidget *, main_window *widgets){ main_config.save_config=1; yon_save_parameters(widgets); - yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_global_command,NULL); + yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_local_command,NULL); } void on_config_save_custom(GtkWidget *, main_window *widgets){ @@ -213,6 +213,9 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),2); } else if (!strcmp(hwclock_sync,"localtime")){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),1); + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0); + } } -- 2.35.1 From c7c9ab74146be702129d999d19c34e8fcc9eff3b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 10:50:10 +0600 Subject: [PATCH 07/30] Sorting fixes --- source/ubl-settings-datetime.c | 27 ++++++++++++++++++++------- source/ubl-settings-datetime.h | 1 + 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 0d00c1b..c620b80 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -8,14 +8,24 @@ int yon_char_parsed_compare(const void *a, const void *b){ const config_str str_a = (const config_str)a; const config_str str_b = (const config_str)b; - if ((strstr(*str_a,"-")||strstr(*str_a,"+"))&&(strstr(*str_b,"-")||strstr(*str_b,"+"))){ - int a = atoi(*str_a+3); - int b = atoi(*str_b+3); + if ((strstr(_(*str_a),"-")||strstr(_(*str_a),"+"))&&(strstr(_(*str_b),"-")||strstr(_(*str_b),"+"))){ + int a = atoi(_(*str_a)+3); + int b = atoi(_(*str_b)+3); if (a>b) return 1; else if (b>a) return -1; else return 0; } - return strcmp(*str_a, *str_b); + return strcoll(_(*str_a), _(*str_b)); +} + +config_str yon_char_parsed_localize(config_str parsed, int size){ + config_str new_parsed = yon_char_parsed_copy(parsed,size); + for (int i=0;iRegionCombo),parsed[i],_(parsed[i])); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->RegionCombo),sorted[i],(localized[i])); } free(path); } @@ -486,6 +498,7 @@ void yon_main_window_complete(main_window *widgets){ } int main(int argc, char *argv[]){ + setlocale(LC_COLLATE, "ru_RU.UTF-8"); local=setlocale(LC_ALL, ""); textdomain (LocaleName); config_init(); diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index d6104d9..2791519 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -140,6 +140,7 @@ void on_date_accept(GtkWidget *,main_window *widgets); void on_date_cancel(GtkWidget *, main_window *widgets); +config_str yon_char_parsed_localize(config_str parsed, int size); config_str yon_char_parsed_sort(config_str parsed, int size); int yon_char_parsed_compare(const void *a, const void *b); -- 2.35.1 From 467da8510b173eb0b9a4bc21c93b7c69a9e43e9d Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 12:02:32 +0600 Subject: [PATCH 08/30] Default values shown --- source/ubl-settings-datetime.c | 6 +++++- ubl-settings-datetime.glade | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index c620b80..6e30621 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -179,8 +179,10 @@ void on_save_done(main_window *widgets, config_str output, int size){ yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); break; case 2: - case 3: yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + break; + case 3: + yon_ubl_status_box_render(SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); break; } textdomain(LocaleName); @@ -474,6 +476,8 @@ void yon_main_window_complete(main_window *widgets){ } // Initial data loading { + gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->DHCPCombo),yon_get_default_label_with_parameter("network",NTPSERVERS_parameter)); + gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->TimeSyncTypeCombo),yon_get_default_label_with_parameter("clock",HWCLOCK_SYNC_parameter)); int size; config_str parsed = yon_dir_get_contents(zone_path,&size); diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 0d20a38..73a483f 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -375,7 +375,6 @@ Format: DD.MM.YYYY False 0 - Default Local time UTC -- 2.35.1 From 0cf3795381fc03f87e9c5f8d4acb3a7d175dfd9a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 12:10:05 +0600 Subject: [PATCH 09/30] Fixed calendar loading --- source/ubl-settings-datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 6e30621..d59276a 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -234,7 +234,7 @@ void yon_interface_update(main_window *widgets){ GDateTime *datetime = g_date_time_new_now_local(); char *time = g_date_time_format(datetime,"%H %M"); char *date = g_date_time_format(datetime,"%Y.%m.%d"); - gtk_calendar_select_month(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_month(datetime),g_date_time_get_year(datetime)); + gtk_calendar_select_month(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_month(datetime)-1,g_date_time_get_year(datetime)); gtk_calendar_select_day(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_day_of_month(datetime)); if (!yon_char_is_empty(time)){ -- 2.35.1 From 502e15f1f1db416a2845cee570c86f4bcf7b38fc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 12:13:19 +0600 Subject: [PATCH 10/30] Removed date entry tooltip --- ubl-settings-datetime.glade | 3 --- 1 file changed, 3 deletions(-) diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 73a483f..53cbffa 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -143,8 +143,6 @@ -1 True False - Date -Format: DD.MM.YYYY True @@ -272,7 +270,6 @@ Format: DD.MM.YYYY False 0 - Default Stopped DHCP Manual -- 2.35.1 From 642035044e9a74273f4857f4aacc461a0758027c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 12:37:12 +0600 Subject: [PATCH 11/30] Fixed custom config loading --- source/ubl-settings-datetime.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index d59276a..9a3fb66 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -152,13 +152,13 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ if (!yon_char_is_empty(file)){ path=file; } + yon_config_clean(); + char *command = yon_config_get_custom_command(path); + yon_config_load_config(type,command,NULL); gtk_widget_destroy(dialog); } else { gtk_widget_destroy(dialog); } - yon_config_clean(); - char *command = yon_config_get_custom_command(path); - yon_config_load_config(type,command,NULL); } } -- 2.35.1 From 13db7241f30570641b8fddbcdc66a02486a7e299 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 15:02:13 +0600 Subject: [PATCH 12/30] Fixed time zone combo boxes loading --- source/ubl-settings-datetime.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 9a3fb66..c1a8fd4 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -194,9 +194,11 @@ void yon_interface_update(main_window *widgets){ char *zone = config(ZONE_parameter); if (!yon_char_is_empty(zone)&&strstr(zone,"/")){ char *region = yon_char_divide_search(zone,"/",-1); + g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets); gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region); - while (gtk_events_pending()) gtk_main_iteration(); + on_region_changed(GTK_COMBO_BOX(widgets->RegionCombo),widgets); gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone); + g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets); free(zone); free(region); } -- 2.35.1 From 79fa3933c9436629b5b66f36006697f7cd63416b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 15:18:37 +0600 Subject: [PATCH 13/30] Fixed loading --- source/ubl-settings-datetime.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index c1a8fd4..7e61bf3 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -98,30 +98,33 @@ void on_config_save_custom(GtkWidget *, main_window *widgets){ yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL); } -void on_config_load_global(){ +void on_config_load_global(GtkWidget *,main_window *widgets){ main_config.load_mode=1; textdomain(template_ui_LocaleName); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); textdomain(LocaleName); yon_load_proceed(YON_CONFIG_GLOBAL); + yon_interface_update(widgets); } -void on_config_load_local(){ +void on_config_load_local(GtkWidget *,main_window *widgets){ main_config.load_mode=0; textdomain(template_ui_LocaleName); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); textdomain(LocaleName); yon_load_proceed(YON_CONFIG_LOCAL); + yon_interface_update(widgets); } -void on_config_load_custom(){ +void on_config_load_custom(GtkWidget *,main_window *widgets){ main_config.load_mode=2; textdomain(template_ui_LocaleName); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); textdomain(LocaleName); yon_load_proceed(YON_CONFIG_CUSTOM); + yon_interface_update(widgets); } void yon_load_proceed(YON_CONFIG_TYPE type){ -- 2.35.1 From 221e6fb729a572ac3959e652a13fa462c2c48bee Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 17:35:15 +0600 Subject: [PATCH 14/30] Fixed unupdated zone combobox --- source/ubl-settings-datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 7e61bf3..decde24 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -201,7 +201,7 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region); on_region_changed(GTK_COMBO_BOX(widgets->RegionCombo),widgets); gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone); - g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets); free(zone); free(region); } -- 2.35.1 From b654f6d3c12c07c2701620b2a9f428c171953a71 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 17:53:54 +0600 Subject: [PATCH 15/30] Fixed parameters saving --- source/ubl-settings-datetime.c | 89 ++++++++++++++++++---------------- source/ubl-settings-datetime.h | 10 ++-- 2 files changed, 52 insertions(+), 47 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index decde24..2570a75 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -35,66 +35,66 @@ config_str yon_char_parsed_sort(config_str parsed, int size){ } //Config functions -void yon_save_parameters(main_window *widgets){ - int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo)); - switch(mode){ - case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); - break; - case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); - break; - case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); - break; - case 3: - char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry)); - if (yon_char_is_empty(value)) { - yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->NTPEntry); - return; - } - yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value); - break; - } - const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); - const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); +void yon_save_parameters(GtkWidget *self, main_window *widgets){ + if (self == widgets->DHCPCombo||self == widgets->NTPEntry){ + int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo)); + switch(mode){ + case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); + break; + case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); + break; + case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); + break; + case 3: + char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry)); + if (yon_char_is_empty(value)) { + yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->NTPEntry); + return; + } + yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value); + break; + } + } else if (self == widgets->TimeSyncTypeCombo){ + int hwclock_sync = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo)); + if (hwclock_sync==1){ + yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); + } else if (hwclock_sync == 2) { + yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); + } else { + yon_config_remove_by_key(HWCLOCK_SYNC_parameter); + } - if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ - char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL); - yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter); - free(zone_parameter); - } + } else if (self == widgets->RegionCombo||self == widgets->ZoneCombo){ + const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); + const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); - int hwclock_sync = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo)); - if (hwclock_sync==1){ - yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); - } else if (hwclock_sync == 2) { - yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); - } else { - yon_config_remove_by_key(HWCLOCK_SYNC_parameter); - } + if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ + char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL); + yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter); + free(zone_parameter); + } + } } -void on_config_save(GtkWidget *, main_window *widgets){ +void on_config_save(GtkWidget *){ main_config.save_config=2; - yon_save_parameters(widgets); yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); } -void on_config_save_global(GtkWidget *, main_window *widgets){ +void on_config_save_global(GtkWidget *){ main_config.save_config=0; - yon_save_parameters(widgets); yon_save_proceed(NULL,YON_CONFIG_GLOBAL,config_get_global_command,NULL); } -void on_config_save_local(GtkWidget *, main_window *widgets){ +void on_config_save_local(GtkWidget *){ main_config.save_config=1; - yon_save_parameters(widgets); yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_local_command,NULL); } -void on_config_save_custom(GtkWidget *, main_window *widgets){ +void on_config_save_custom(GtkWidget *){ main_config.save_config=3; - yon_save_parameters(widgets); yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL); } @@ -478,6 +478,11 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->DateButton),"clicked",G_CALLBACK(on_date_clicked),widgets); g_signal_connect(G_OBJECT(widgets->DateCancelButton),"clicked",G_CALLBACK(on_date_cancel),widgets); g_signal_connect(G_OBJECT(widgets->DateAcceptButton),"clicked",G_CALLBACK(on_date_accept),widgets); + g_signal_connect(G_OBJECT(widgets->DHCPCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); + g_signal_connect(G_OBJECT(widgets->NTPEntry),"changed",G_CALLBACK(yon_save_parameters),widgets); + g_signal_connect(G_OBJECT(widgets->TimeSyncTypeCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); + g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); + g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); } // Initial data loading { diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index 2791519..c1798e1 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -116,15 +116,15 @@ void on_sync_clicked(GtkWidget *, main_window *widgets); void on_ntp_sync(GtkWidget *, main_window *widgets); -void yon_save_parameters(main_window *widgets); +void yon_save_parameters(GtkWidget *self,main_window *widgets); -void on_config_save(GtkWidget *, main_window *widgets); +void on_config_save(GtkWidget *); -void on_config_save_global(GtkWidget *, main_window *widgets); +void on_config_save_global(GtkWidget *); -void on_config_save_local(GtkWidget *, main_window *widgets); +void on_config_save_local(GtkWidget *); -void on_config_save_custom(GtkWidget *, main_window *widgets); +void on_config_save_custom(GtkWidget *); void on_config_load_global(); -- 2.35.1 From 758fd6833ad11c8057247748929780796a208c40 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 23 Jan 2025 18:00:49 +0600 Subject: [PATCH 16/30] Fixed ntp placeholder --- source/ubl-settings-datetime.c | 5 +---- source/ubl-settings-datetime.h | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 2570a75..ae10a34 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -352,9 +352,6 @@ void on_ntp_sync(GtkWidget *, main_window *widgets){ } break; case 1: - gtk_widget_set_sensitive(widgets->NTPEntry,0); - gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),""); - break; case 2: gtk_widget_set_sensitive(widgets->NTPEntry,0); gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),""); @@ -417,7 +414,7 @@ void config_init(){ main_config.load_mode=1; main_config.ntp_default = NULL; - char *ntp_command = yon_config_parameter_prepare_command(NTPSERVERS_parameter_command,"default",NULL,NULL); + char *ntp_command = yon_config_parameter_prepare_command(NTPSERVERS_parameter_raw_command,"default",NULL,NULL); int size; config_str parsed = yon_config_load(ntp_command,&size); if (size>0){ diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index c1798e1..fac65e6 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -39,6 +39,7 @@ #define NTPSERVERS_parameter "NTPSERVERS" #define NTPSERVERS_parameter_command "ubconfig --source global get network NTPSERVERS" +#define NTPSERVERS_parameter_raw_command "ubconfig --source global --raw get network NTPSERVERS" #define HWCLOCK_SYNC_parameter "HWCLOCK_SYNC" #define HWCLOCK_SYNC_parameter_command "ubconfig --source global get clock HWCLOCK_SYNC" #define ZONE_parameter "ZONE" -- 2.35.1 From 3683602c8b950f0012a53b254495397e493f3a7f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 24 Jan 2025 11:59:11 +0600 Subject: [PATCH 17/30] Fixes --- source/ubl-settings-datetime.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index ae10a34..fa640c9 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -193,7 +193,11 @@ void on_save_done(main_window *widgets, config_str output, int size){ } void yon_interface_update(main_window *widgets){ - char *ntp = config(NTPSERVERS_parameter); + g_signal_handlers_block_by_func(G_OBJECT(widgets->NTPEntry),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->DHCPCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->TimeSyncTypeCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(yon_save_parameters),widgets); char *zone = config(ZONE_parameter); if (!yon_char_is_empty(zone)&&strstr(zone,"/")){ char *region = yon_char_divide_search(zone,"/",-1); @@ -205,6 +209,7 @@ void yon_interface_update(main_window *widgets){ free(zone); free(region); } + char *ntp = config(NTPSERVERS_parameter); if (!yon_char_is_empty(ntp)){ if (!strcmp(ntp,"stop")){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),1); @@ -234,6 +239,8 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0); } + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0); } GDateTime *datetime = g_date_time_new_now_local(); @@ -260,6 +267,12 @@ void yon_interface_update(main_window *widgets){ } else { gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),""); } + + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NTPEntry),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->DHCPCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TimeSyncTypeCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionCombo),G_CALLBACK(yon_save_parameters),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(yon_save_parameters),widgets); } void on_date_clicked(GtkWidget *,main_window *widgets){ -- 2.35.1 From 97038cb71ee9964d091ddb2e53a82bee2e8c77dc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 24 Jan 2025 18:06:31 +0600 Subject: [PATCH 18/30] Added application configuration window WIP --- source/ubl-settings-datetime.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index fa640c9..7620e82 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -493,6 +493,9 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->TimeSyncTypeCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); + + yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,"Test","Test parameter","D.M.Y","DD.MM.YYYY","D-M-Y","DD-MM-YYYY","D/M/Y","DD/MM/YYYY","M-D-Y","MM-DD-YYYY",NULL); } // Initial data loading { -- 2.35.1 From 17a7fe9e6d7a75506c4c8ca2eb3d9a215f11b9fb Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 27 Jan 2025 09:23:28 +0600 Subject: [PATCH 19/30] Fixed zone saving --- source/ubl-settings-datetime.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 7620e82..cdd3a7f 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -72,7 +72,7 @@ void yon_save_parameters(GtkWidget *self, main_window *widgets){ if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL); yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter); - free(zone_parameter); + // free(zone_parameter); } } @@ -199,6 +199,7 @@ void yon_interface_update(main_window *widgets){ g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),G_CALLBACK(yon_save_parameters),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(yon_save_parameters),widgets); char *zone = config(ZONE_parameter); + zone = yon_char_new(zone); if (!yon_char_is_empty(zone)&&strstr(zone,"/")){ char *region = yon_char_divide_search(zone,"/",-1); g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets); -- 2.35.1 From 0a9c3ed4b63c4e848a9ecad718ca655b670b3a25 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 27 Jan 2025 09:33:28 +0600 Subject: [PATCH 20/30] Localisation fixes --- ubl-settings-datetime.pot | 4 ++++ ubl-settings-datetime_ru.po | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index 6cdc9a0..220246f 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -29,6 +29,10 @@ msgstr "" msgid "Syncronisation error" msgstr "" +#: source/ubl-strings.h:6 +msgid "Important field is empty" +msgstr "" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "" diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 9ef4e39..7d19439 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -29,6 +29,10 @@ msgstr "Настройка даты и времени системы" msgid "Syncronisation error" msgstr "Ошибка синхронизации аппаратных часов" +#: source/ubl-strings.h:6 +msgid "Important field is empty" +msgstr "Пустое важное поле" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "Принять" -- 2.35.1 From 424b1b1c320190633686b564dab2505790d60a45 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 27 Jan 2025 18:05:05 +0600 Subject: [PATCH 21/30] Settings window finish --- source/ubl-settings-datetime.c | 26 ++++++++++++++++---------- source/ubl-settings-datetime.h | 6 +++++- source/ubl-strings.h | 5 ++++- ubl-settings-datetime.glade | 2 ++ ubl-settings-datetime.pot | 4 ++++ ubl-settings-datetime_ru.po | 4 ++++ 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index cdd3a7f..06b89b3 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -246,7 +246,7 @@ void yon_interface_update(main_window *widgets){ GDateTime *datetime = g_date_time_new_now_local(); char *time = g_date_time_format(datetime,"%H %M"); - char *date = g_date_time_format(datetime,"%Y.%m.%d"); + char *date = g_date_time_format(datetime,yon_settings_configuration_get(date_format_parameter)); gtk_calendar_select_month(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_month(datetime)-1,g_date_time_get_year(datetime)); gtk_calendar_select_day(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_day_of_month(datetime)); @@ -314,6 +314,10 @@ void *on_sync_error(void*){ return NULL; } +void on_date_format_changed(GtkWidget *, main_window *widgets){ + yon_interface_update(widgets); +} + void *yon_sync_thread_start(void *arg){ struct datetime_arg *data = (struct datetime_arg*)arg; char *command_time = time_sync_command(data->time); @@ -396,10 +400,8 @@ void on_sync_hardware_clicked(){ void on_date_accept(GtkWidget *,main_window *widgets){ guint year=0, month=0, day=0; gtk_calendar_get_date(GTK_CALENDAR(widgets->DateCalendar),&year,&month,&day); - char *ye_str = yon_char_from_int(year); - char *mo_str = yon_char_from_int(++month); - char *da_str = yon_char_from_int(day); - char *date = yon_char_unite(ye_str,".",month<10?"0":"",mo_str,".",day<10?"0":"",da_str,NULL); + GDateTime *datetime = g_date_time_new_local(year,++month,day,0,0,0); + char *date = g_date_time_format(datetime,yon_settings_configuration_get(date_format_parameter)); gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),date); gtk_popover_popdown(GTK_POPOVER(widgets->DatePopover)); free(date); @@ -494,9 +496,6 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->TimeSyncTypeCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(yon_save_parameters),widgets); - - yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); - yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,"Test","Test parameter","D.M.Y","DD.MM.YYYY","D-M-Y","DD-MM-YYYY","D/M/Y","DD/MM/YYYY","M-D-Y","MM-DD-YYYY",NULL); } // Initial data loading { @@ -519,6 +518,15 @@ void yon_main_window_complete(main_window *widgets){ if (size) yon_char_parsed_free(parsed,size); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0); } + + + + yon_window_config_setup(GTK_WINDOW(widgets->Window)); + char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); + yon_window_config_load(path); + + yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,date_format_parameter,DATE_FORMAT_SETTINGS_LABEL,G_CALLBACK(on_date_format_changed),widgets,"%d.%m.%Y","DD.MM.YYYY","%d-%m-%Y","DD-MM-YYYY","%d/%m/%Y","DD/MM/YYYY","%m-%d-%Y","MM-DD-YYYY",NULL); yon_load_proceed(YON_CONFIG_LOCAL); yon_interface_update(widgets); @@ -539,8 +547,6 @@ int main(int argc, char *argv[]){ gtk_init(&argc,&argv); template_main_window *widgets = yon_ubl_window_setup(); yon_main_window_complete((main_window*)widgets); - char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); - yon_window_config_load(path); if (getuid()!=0){ textdomain(template_ui_LocaleName); yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index fac65e6..a49b374 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -52,6 +52,8 @@ #define zone_path "/usr/share/zoneinfo/" +#define date_format_parameter "DateFormat" + typedef char* string; string version_application; @@ -145,4 +147,6 @@ config_str yon_char_parsed_localize(config_str parsed, int size); config_str yon_char_parsed_sort(config_str parsed, int size); int yon_char_parsed_compare(const void *a, const void *b); -void on_save_done(main_window *widgets, config_str output, int size); \ No newline at end of file +void on_save_done(main_window *widgets, config_str output, int size); + +void on_date_format_changed(GtkWidget *, main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index e8e7547..c029f59 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -21,4 +21,7 @@ #define TIME_ZONE_LABEL _("Time Zone") #define REGION_LABEL _("Region:") #define ZONE_LABEL _("Zone:") -#define LOCAL_TIME_LABEL _("Local time") \ No newline at end of file +#define LOCAL_TIME_LABEL _("Local time") + +#define DATE_FORMAT_SETTINGS_LABEL _("Date format:") +#define DATE_DORMAT_TOOLTIP_LABEL _("Date\nformat") \ No newline at end of file diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 53cbffa..65c5bbc 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -143,6 +143,8 @@ -1 True False + Date +format True diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index 220246f..7d0efc4 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -33,6 +33,10 @@ msgstr "" msgid "Important field is empty" msgstr "" +#: source/ubl-strings.h:6 +msgid "Date format:" +msgstr "" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "" diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 7d19439..9e22de9 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -33,6 +33,10 @@ msgstr "Ошибка синхронизации аппаратных часов" msgid "Important field is empty" msgstr "Пустое важное поле" +#: source/ubl-strings.h:6 +msgid "Date format:" +msgstr "Формат даты:" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "Принять" -- 2.35.1 From fffdc57cb318423054f0eae0cb9fcc613a985e51 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 28 Jan 2025 09:56:36 +0600 Subject: [PATCH 22/30] Date entry tooltip --- source/ubl-settings-datetime.c | 15 +++++++++++++++ source/ubl-settings-datetime.h | 3 ++- source/ubl-strings.h | 6 +++++- ubl-settings-datetime.pot | 16 ++++++++++++++++ ubl-settings-datetime_ru.po | 16 ++++++++++++++++ 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 06b89b3..401abdb 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -314,8 +314,22 @@ void *on_sync_error(void*){ return NULL; } +void yon_date_tooltip_update(main_window *widgets){ + char *format = yon_settings_configuration_get(date_format_parameter); + char *temp = yon_char_replace(format,"%Y",YEAR_FORMAT_LABEL); + char *month_temp = yon_char_replace(temp,"%m",MONTH_FORMAT_LABEL); + char *day_temp = yon_char_replace(month_temp,"%d",DAY_FORMAT_LABEL); + char *tooltip = yon_char_unite(DATE_DORMAT_TOOLTIP_LABEL,": ",day_temp,NULL); + gtk_widget_set_tooltip_text(widgets->DateEntry,tooltip); + free(tooltip); + free(temp); + free(month_temp); + free(day_temp); +} + void on_date_format_changed(GtkWidget *, main_window *widgets){ yon_interface_update(widgets); + yon_date_tooltip_update(widgets); } void *yon_sync_thread_start(void *arg){ @@ -531,6 +545,7 @@ void yon_main_window_complete(main_window *widgets){ yon_load_proceed(YON_CONFIG_LOCAL); yon_interface_update(widgets); yon_save_window_set_postsave_function(on_save_done,widgets); + yon_date_tooltip_update(widgets); } int main(int argc, char *argv[]){ diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index a49b374..86e0c45 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -149,4 +149,5 @@ config_str yon_char_parsed_sort(config_str parsed, int size); int yon_char_parsed_compare(const void *a, const void *b); void on_save_done(main_window *widgets, config_str output, int size); -void on_date_format_changed(GtkWidget *, main_window *widgets); \ No newline at end of file +void on_date_format_changed(GtkWidget *, main_window *widgets); +void yon_date_tooltip_update(main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index c029f59..63dd709 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -24,4 +24,8 @@ #define LOCAL_TIME_LABEL _("Local time") #define DATE_FORMAT_SETTINGS_LABEL _("Date format:") -#define DATE_DORMAT_TOOLTIP_LABEL _("Date\nformat") \ No newline at end of file +#define DATE_DORMAT_TOOLTIP_LABEL _("Date\nformat") + +#define YEAR_FORMAT_LABEL _("YYYY") +#define MONTH_FORMAT_LABEL _("MM") +#define DAY_FORMAT_LABEL _("DD") \ No newline at end of file diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index 7d0efc4..075040f 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -37,6 +37,22 @@ msgstr "" msgid "Date format:" msgstr "" +#: source/ubl-strings.h:6 +msgid "Date\nformat" +msgstr "" + +#: source/ubl-strings.h:29 +msgid "YYYY" +msgstr "" + +#: source/ubl-strings.h:30 +msgid "MM" +msgstr "" + +#: source/ubl-strings.h:31 +msgid "DD" +msgstr "" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "" diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 9e22de9..e752e53 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -37,6 +37,22 @@ msgstr "Пустое важное поле" msgid "Date format:" msgstr "Формат даты:" +#: source/ubl-strings.h:6 +msgid "Date\nformat" +msgstr "Дата\nформат" + +#: source/ubl-strings.h:29 +msgid "YYYY" +msgstr "ГГГГ" + +#: source/ubl-strings.h:30 +msgid "MM" +msgstr "ММ" + +#: source/ubl-strings.h:31 +msgid "DD" +msgstr "ДД" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "Принять" -- 2.35.1 From e7d5073c3f1d50dd9c99484b66c1d9e7dd828c4c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 28 Jan 2025 11:03:02 +0600 Subject: [PATCH 23/30] Fixes; Licalisation updates --- source/ubl-settings-datetime.c | 35 ++++++++++++++++++++-------------- source/ubl-strings.h | 2 ++ ubl-settings-datetime.glade | 4 +++- ubl-settings-datetime.pot | 8 ++++++++ ubl-settings-datetime_ru.po | 8 ++++++++ 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 401abdb..70ac936 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -39,13 +39,17 @@ void yon_save_parameters(GtkWidget *self, main_window *widgets){ if (self == widgets->DHCPCombo||self == widgets->NTPEntry){ int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo)); switch(mode){ - case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); + case 0:yon_config_remove_by_key(NTPSERVERS_parameter); break; - case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); + case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); break; - case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); + case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); break; - case 3: + case 3:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"ntp-ru"); + break; + case 5:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); + break; + case 4: char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry)); if (yon_char_is_empty(value)) { yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); @@ -212,22 +216,24 @@ void yon_interface_update(main_window *widgets){ } char *ntp = config(NTPSERVERS_parameter); if (!yon_char_is_empty(ntp)){ - if (!strcmp(ntp,"stop")){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),1); gtk_widget_set_sensitive(widgets->NTPEntry,0); + if (!strcmp(ntp,"dhcp")){ + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),1); } else if (!strcmp(ntp,"default")){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),0); - gtk_widget_set_sensitive(widgets->NTPEntry,0); - } else if (!strcmp(ntp,"dhcp")){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),2); - gtk_widget_set_sensitive(widgets->NTPEntry,0); - } else { + } else if (!strcmp(ntp,"ntp-ru")){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),3); + } else if (!strcmp(ntp,"stop")||!strcmp(ntp,"no")||!strcmp(ntp,"disable")){ + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),5); + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),4); gtk_widget_set_sensitive(widgets->NTPEntry,1); gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),ntp); } } else { + gtk_widget_set_sensitive(widgets->NTPEntry,0); gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),""); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),0); } char *hwclock_sync = config(HWCLOCK_SYNC_parameter); @@ -376,19 +382,20 @@ void on_sync_clicked(GtkWidget *, main_window *widgets){ void on_ntp_sync(GtkWidget *, main_window *widgets){ int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo)); + gtk_widget_set_sensitive(widgets->NTPEntry,0); switch(mode){ case 0: - gtk_widget_set_sensitive(widgets->NTPEntry,0); if (main_config.ntp_default){ gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),main_config.ntp_default); } break; case 1: case 2: - gtk_widget_set_sensitive(widgets->NTPEntry,0); + case 3: + case 5: gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),""); break; - case 3: + case 4: gtk_widget_set_sensitive(widgets->NTPEntry,1); gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),""); break; diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 63dd709..2ead441 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -16,6 +16,8 @@ #define SYNC_NTP_LABEL _("Synchronize via NTP") #define DEFAULT_LABEL _("Default") #define STOPPED_LABEL _("Stopped") +#define NTP_LABEL _("NTP-servers") +#define NTO_RU_LABEL _("NTP-servers (RU)") #define MANUAL_LABEL _("Manual") #define MANUAL_TOOLTIP_LABEL _("Enter the name of the ntp server or its ip address. When entering multiple addresses, separate them with spaces.") #define TIME_ZONE_LABEL _("Time Zone") diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 65c5bbc..3e6b1c4 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -272,9 +272,11 @@ format False 0 - Stopped DHCP + NTP-servers + NTP-servers (RU) Manual + Stopped diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index 075040f..af16f27 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -97,6 +97,14 @@ msgstr "" msgid "Manual" msgstr "" +#: source/ubl-strings.h:17 +msgid "NTP-servers" +msgstr "" + +#: source/ubl-strings.h:17 +msgid "NTP-servers (RU)" +msgstr "" + #: source/ubl-strings.h:18 msgid "" "Enter the name of the ntp server or its ip address. When entering multiple " diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index e752e53..fe5e2a3 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -101,6 +101,14 @@ msgstr "Остановлен" msgid "Manual" msgstr "Вручную" +#: source/ubl-strings.h:17 +msgid "NTP-servers" +msgstr "NTP-серверы" + +#: source/ubl-strings.h:17 +msgid "NTP-servers (RU)" +msgstr "NTP-серверы (RU)" + #: source/ubl-strings.h:18 msgid "" "Enter the name of the ntp server or its ip address. When entering multiple " -- 2.35.1 From bdc84f953cf4ff7b7523c12b4bb77dbe170ea422 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 28 Jan 2025 11:21:27 +0600 Subject: [PATCH 24/30] Comments removal --- source/ubl-settings-datetime.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 70ac936..024058e 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -76,7 +76,6 @@ void yon_save_parameters(GtkWidget *self, main_window *widgets){ if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL); yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter); - // free(zone_parameter); } } -- 2.35.1 From 93ef4f7d6a3f5e33980e4916a1cd242f47ee5c34 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 29 Jan 2025 10:12:42 +0600 Subject: [PATCH 25/30] Fixed date syncronization --- source/ubl-settings-datetime.c | 18 +++++++++++++++++- source/ubl-settings-datetime.h | 2 +- source/ubl-strings.h | 6 +++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 024058e..13bd660 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -364,7 +364,23 @@ void on_sync_clicked(GtkWidget *, main_window *widgets){ data->time=time; if (!yon_char_is_empty(date)){ int size; - config_str parsed = yon_char_parse((char*)date,&size,"."); + char *format = yon_settings_configuration_get(date_format_parameter); + config_str parsed = yon_char_parse((char*)date,&size,!strcmp(format,"%d.%m.%Y")?".":!strcmp(format,"%d/%m/%Y")?"/":"-"); + if (!strcmp(format,"%m-%d-%Y")){ + char *year = parsed[2]; + char *month = parsed[0]; + char *day = parsed[1]; + parsed[0]=year; + parsed[1]=month; + parsed[2]=day; + } else { + char *year = parsed[2]; + char *month = parsed[1]; + char *day = parsed[0]; + parsed[0]=year; + parsed[1]=month; + parsed[2]=day; + } data->date=yon_char_parsed_to_string(parsed,size,""); yon_char_parsed_free(parsed,size); } diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index 86e0c45..5bbf2ce 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -46,7 +46,7 @@ #define ZONE_parameter_command "ubconfig --source global get clock ZONE" #define time_sync_command(time) yon_char_unite("pkexec date +%H:%M:%S -s \"",time,"\"",NULL) -#define date_sync_command(date) yon_char_unite("pkexec date +%Y%m%d -s \"",date,"\"",NULL) +#define date_sync_command(date) yon_char_unite("pkexec date -s \"",date,"\"",NULL) #define hardware_datetime_sync_command "hwclock --systohc" diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 2ead441..6157d9b 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -30,4 +30,8 @@ #define YEAR_FORMAT_LABEL _("YYYY") #define MONTH_FORMAT_LABEL _("MM") -#define DAY_FORMAT_LABEL _("DD") \ No newline at end of file +#define DAY_FORMAT_LABEL _("DD") +#define DMY_FORMAT_LABEL _("DD.MM.YYYY") +#define DMY_MINUS_FORMAT_LABEL _("DD-MM-YYYY") +#define DMY_SLASH_FORMAT_LABEL _("DD/MM/YYY") +#define MDY_FORMAT_LABEL _("MM-DD-YYYY") \ No newline at end of file -- 2.35.1 From 3ae49f745964a9fcd3de3a1689b1d62774bcca75 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 29 Jan 2025 10:16:56 +0600 Subject: [PATCH 26/30] Localisation update --- source/ubl-settings-datetime.c | 2 +- source/ubl-strings.h | 2 +- ubl-settings-datetime.pot | 16 ++++++++++++++++ ubl-settings-datetime_ru.po | 16 ++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 13bd660..0d733fb 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -562,7 +562,7 @@ void yon_main_window_complete(main_window *widgets){ yon_window_config_load(path); yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); - yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,date_format_parameter,DATE_FORMAT_SETTINGS_LABEL,G_CALLBACK(on_date_format_changed),widgets,"%d.%m.%Y","DD.MM.YYYY","%d-%m-%Y","DD-MM-YYYY","%d/%m/%Y","DD/MM/YYYY","%m-%d-%Y","MM-DD-YYYY",NULL); + yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,date_format_parameter,DATE_FORMAT_SETTINGS_LABEL,G_CALLBACK(on_date_format_changed),widgets,"%d.%m.%Y",DMY_FORMAT_LABEL,"%d-%m-%Y",DMY_MINUS_FORMAT_LABEL,"%d/%m/%Y",DMY_SLASH_FORMAT_LABEL,"%m-%d-%Y",MDY_FORMAT_LABEL,NULL); yon_load_proceed(YON_CONFIG_LOCAL); yon_interface_update(widgets); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 6157d9b..015594b 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -33,5 +33,5 @@ #define DAY_FORMAT_LABEL _("DD") #define DMY_FORMAT_LABEL _("DD.MM.YYYY") #define DMY_MINUS_FORMAT_LABEL _("DD-MM-YYYY") -#define DMY_SLASH_FORMAT_LABEL _("DD/MM/YYY") +#define DMY_SLASH_FORMAT_LABEL _("DD/MM/YYYY") #define MDY_FORMAT_LABEL _("MM-DD-YYYY") \ No newline at end of file diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index af16f27..1c15437 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -53,6 +53,22 @@ msgstr "" msgid "DD" msgstr "" +#: source/ubl-strings.h:31 +msgid "DD.MM.YYYY" +msgstr "" + +#: source/ubl-strings.h:31 +msgid "DD-MM-YYYY" +msgstr "" + +#: source/ubl-strings.h:31 +msgid "DD/MM/YYYY" +msgstr "" + +#: source/ubl-strings.h:31 +msgid "MM-DD-YYYY" +msgstr "" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "" diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index fe5e2a3..e41e89f 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -53,6 +53,22 @@ msgstr "ММ" msgid "DD" msgstr "ДД" +#: source/ubl-strings.h:32 +msgid "DD.MM.YYYY" +msgstr "ДД.ММ.ГГГГ" + +#: source/ubl-strings.h:33 +msgid "DD-MM-YYYY" +msgstr "ДД-ММ-ГГГГ" + +#: source/ubl-strings.h:34 +msgid "DD/MM/YYYY" +msgstr "ДД/ММ/ГГГГ" + +#: source/ubl-strings.h:35 +msgid "MM-DD-YYYY" +msgstr "ММ-ДД-ГГГГ" + #: source/ubl-strings.h:7 msgid "Accept" msgstr "Принять" -- 2.35.1 From b565ff514b703a192f1454b2ad8cca3df9c37cba Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 29 Jan 2025 10:35:17 +0600 Subject: [PATCH 27/30] Changed window initial size --- source/ubl-settings-datetime.c | 11 +++++++---- source/ubl-settings-datetime.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 0d733fb..989f017 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -51,7 +51,7 @@ void yon_save_parameters(GtkWidget *self, main_window *widgets){ break; case 4: char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry)); - if (yon_char_is_empty(value)) { + if (yon_char_is_empty(value)&&self == widgets->NTPEntry) { yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(widgets->NTPEntry); return; @@ -483,8 +483,10 @@ void config_init(){ * [RU] * Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом. */ -void yon_main_window_complete(main_window *widgets){ - widgets = yon_remalloc(widgets,sizeof(main_window)); +void yon_main_window_complete(main_window **window){ + + main_window *widgets = yon_remalloc(*window,sizeof(main_window)); + (*window) = widgets; GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0); @@ -583,12 +585,13 @@ int main(int argc, char *argv[]){ yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL); gtk_init(&argc,&argv); template_main_window *widgets = yon_ubl_window_setup(); - yon_main_window_complete((main_window*)widgets); + yon_main_window_complete((main_window**)&widgets); if (getuid()!=0){ textdomain(template_ui_LocaleName); yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); textdomain(LocaleName); } + gtk_window_resize(GTK_WINDOW(widgets->Window),640,300); gtk_main(); return 0; } \ No newline at end of file diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index 5bbf2ce..59f3bc5 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -103,7 +103,7 @@ void yon_load_proceed(YON_CONFIG_TYPE type); void config_init(); -void yon_main_window_complete(main_window *widgets); +void yon_main_window_complete(main_window **widgets); void on_region_changed(GtkComboBox *self, main_window *widgets); -- 2.35.1 From 5d9da1cd0ce33659bcc8bdd7d9728d00003ca3fe Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 29 Jan 2025 10:35:23 +0600 Subject: [PATCH 28/30] Changed window initial size --- source/ubl-settings-datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 989f017..844c233 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -559,6 +559,7 @@ void yon_main_window_complete(main_window **window){ + gtk_window_resize(GTK_WINDOW(widgets->Window),640,300); yon_window_config_setup(GTK_WINDOW(widgets->Window)); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); yon_window_config_load(path); @@ -591,7 +592,6 @@ int main(int argc, char *argv[]){ yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); textdomain(LocaleName); } - gtk_window_resize(GTK_WINDOW(widgets->Window),640,300); gtk_main(); return 0; } \ No newline at end of file -- 2.35.1 From b4a30ab2e2b33c7806939f0525d205e11358969a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 29 Jan 2025 10:52:20 +0600 Subject: [PATCH 29/30] Added time syncronizing success status messageg --- source/ubl-settings-datetime.c | 20 ++++++++++++++------ source/ubl-settings-datetime.h | 5 +++-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 844c233..9421342 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -313,10 +313,9 @@ struct datetime_arg { const char *date; }; -void *on_sync_error(void*){ +gboolean on_sync_error(void*){ yon_ubl_status_box_render(SYNC_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); - g_thread_exit(NULL); - return NULL; + return G_SOURCE_REMOVE; } void yon_date_tooltip_update(main_window *widgets){ @@ -337,6 +336,13 @@ void on_date_format_changed(GtkWidget *, main_window *widgets){ yon_date_tooltip_update(widgets); } +gboolean on_operation_success(void*){ + textdomain(template_ui_LocaleName); + yon_ubl_status_box_render(SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + textdomain(LocaleName); + return G_SOURCE_REMOVE; +} + void *yon_sync_thread_start(void *arg){ struct datetime_arg *data = (struct datetime_arg*)arg; char *command_time = time_sync_command(data->time); @@ -345,8 +351,10 @@ void *yon_sync_thread_start(void *arg){ free(command_time); free(command_date); if (system(yon_debug_output("%s\n",command))){ - g_thread_new("status_thread",(GThreadFunc)on_sync_error,NULL); - }; + gdk_threads_add_idle((GSourceFunc)on_sync_error,NULL); + } else { + gdk_threads_add_idle((GSourceFunc)on_operation_success,NULL); + } pthread_exit(NULL); } @@ -419,7 +427,7 @@ void on_ntp_sync(GtkWidget *, main_window *widgets){ void *yon_sync_hardware_thread_start(void*){ if (system(hardware_datetime_sync_command)){ - g_thread_new("status_thread",(GThreadFunc)on_sync_error,NULL); + gdk_threads_add_idle((GSourceFunc)on_sync_error,NULL); } pthread_exit(NULL); } diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index 59f3bc5..75ce3e2 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -109,7 +109,7 @@ void on_region_changed(GtkComboBox *self, main_window *widgets); void yon_interface_update(main_window *widgets); -void *on_sync_error(void*); +gboolean on_sync_error(void*); void *yon_sync_hardware_thread_start(void*); void *yon_sync_thread_start(void*); @@ -150,4 +150,5 @@ int yon_char_parsed_compare(const void *a, const void *b); void on_save_done(main_window *widgets, config_str output, int size); void on_date_format_changed(GtkWidget *, main_window *widgets); -void yon_date_tooltip_update(main_window *widgets); \ No newline at end of file +void yon_date_tooltip_update(main_window *widgets); +gboolean on_operation_success(void*); \ No newline at end of file -- 2.35.1 From 575ca196da2c6b62d2110a917b9fa9c96e38ecb2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 3 Feb 2025 09:52:15 +0600 Subject: [PATCH 30/30] Fixed menu items margins --- source/ubl-settings-datetime.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 9421342..dd71707 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -567,12 +567,30 @@ void yon_main_window_complete(main_window **window){ - gtk_window_resize(GTK_WINDOW(widgets->Window),640,300); + gtk_window_resize(GTK_WINDOW(widgets->Window),100,150); + while(gtk_events_pending()) gtk_main_iteration(); yon_window_config_setup(GTK_WINDOW(widgets->Window)); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); yon_window_config_load(path); - yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + GList *menu_items = gtk_container_get_children(GTK_CONTAINER(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + for (guint i=0;i