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 "Принять"