diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 30d9f8b..dd71707 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -7,20 +7,25 @@ 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); - 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;iDHCPCombo)); - 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_remove_by_key(NTPSERVERS_parameter); + break; + case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); + break; + case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); + break; + 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)&&self == widgets->NTPEntry) { + 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)); - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo))==0){ - yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); - } else { - yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); - } + 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); + } + } } -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_global_command,NULL); + 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); } -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){ - 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){ @@ -142,12 +158,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); } - char *command = yon_config_get_custom_command(path); - yon_config_load_config(type,command,NULL); } } @@ -168,8 +185,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); @@ -177,48 +196,63 @@ 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); + 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); 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_unblock_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,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); 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); 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); + } + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0); } 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)); + 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)); if (!yon_char_is_empty(time)){ @@ -239,6 +273,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){ @@ -255,6 +295,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); @@ -268,10 +313,34 @@ 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){ + 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); +} + +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){ @@ -282,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); } @@ -301,7 +372,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); } @@ -318,22 +405,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: - 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); + 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; @@ -342,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); } @@ -359,10 +444,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); @@ -391,7 +474,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){ @@ -408,8 +491,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); @@ -452,17 +537,26 @@ 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 { + 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); + config_str sorted = yon_char_parsed_sort(parsed,size); + config_str localized = yon_char_parsed_localize(sorted,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); } @@ -470,13 +564,43 @@ 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); } + + + + 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))); + GList *menu_items = gtk_container_get_children(GTK_CONTAINER(gtk_widget_get_parent(widgets->DocumentationMenuItem))); + for (guint i=0;i-1 True False - Date -Format: DD.MM.YYYY + Date +format True @@ -272,10 +272,11 @@ Format: DD.MM.YYYY False 0 - Default - Stopped DHCP + NTP-servers + NTP-servers (RU) Manual + Stopped diff --git a/ubl-settings-datetime.pot b/ubl-settings-datetime.pot index 6cdc9a0..1c15437 100644 --- a/ubl-settings-datetime.pot +++ b/ubl-settings-datetime.pot @@ -29,6 +29,46 @@ msgstr "" msgid "Syncronisation error" msgstr "" +#: source/ubl-strings.h:6 +msgid "Important field is empty" +msgstr "" + +#: source/ubl-strings.h:6 +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: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 "" @@ -73,6 +113,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 9ef4e39..e41e89f 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -29,6 +29,46 @@ msgstr "Настройка даты и времени системы" msgid "Syncronisation error" msgstr "Ошибка синхронизации аппаратных часов" +#: source/ubl-strings.h:6 +msgid "Important field is empty" +msgstr "Пустое важное поле" + +#: source/ubl-strings.h:6 +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: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 "Принять" @@ -77,6 +117,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 "