[evolution] I#601 - Calendar: Force 24-hour format early after start



commit e6d9f2085125205e5489e20a19cf26b3597e2a35
Author: Milan Crha <mcrha redhat com>
Date:   Mon Sep 2 10:01:39 2019 +0200

    I#601 - Calendar: Force 24-hour format early after start
    
    Closes https://gitlab.gnome.org/GNOME/evolution/issues/601

 src/modules/calendar/e-cal-base-shell-backend.c | 13 +++++++++++++
 src/modules/calendar/e-calendar-preferences.c   |  9 +++------
 2 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/src/modules/calendar/e-cal-base-shell-backend.c b/src/modules/calendar/e-cal-base-shell-backend.c
index cf9171e8dd..0d64a7e9fc 100644
--- a/src/modules/calendar/e-cal-base-shell-backend.c
+++ b/src/modules/calendar/e-cal-base-shell-backend.c
@@ -23,6 +23,7 @@
 
 #include <libedataserver/libedataserver.h>
 
+#include "calendar/gui/calendar-config.h"
 #include <calendar/gui/comp-util.h>
 #include <calendar/gui/e-comp-editor.h>
 
@@ -239,6 +240,18 @@ e_cal_base_shell_backend_class_init (ECalBaseShellBackendClass *class)
 
        /* Register relevant ESource extensions. */
        g_type_ensure (E_TYPE_SOURCE_CALENDAR);
+
+       /* Force 24 hour format for locales which don't support 12 hour format */
+       if (!calendar_config_locale_supports_12_hour_format ()) {
+               GSettings *settings;
+
+               settings = e_util_ref_settings ("org.gnome.evolution.calendar");
+
+               if (!g_settings_get_boolean (settings, "use-24hour-format"))
+                       g_settings_set_boolean (settings, "use-24hour-format", TRUE);
+
+               g_clear_object (&settings);
+       }
 }
 
 static void
diff --git a/src/modules/calendar/e-calendar-preferences.c b/src/modules/calendar/e-calendar-preferences.c
index b212fc4cf0..05ea116a13 100644
--- a/src/modules/calendar/e-calendar-preferences.c
+++ b/src/modules/calendar/e-calendar-preferences.c
@@ -717,10 +717,6 @@ calendar_preferences_construct (ECalendarPreferences *prefs,
        locale_supports_12_hour_format =
                calendar_config_locale_supports_12_hour_format ();
 
-       /* Force 24 hour format for locales which don't support 12 hour format */
-       if (!locale_supports_12_hour_format)
-               g_settings_set_boolean (settings, "use-24hour-format", TRUE);
-
        /* Make sure our custom widget classes are registered with
         * GType before we load the GtkBuilder definition file. */
        g_type_ensure (E_TYPE_DATE_EDIT);
@@ -835,8 +831,10 @@ calendar_preferences_construct (ECalendarPreferences *prefs,
                        widget, "use-24-hour-format",
                        G_SETTINGS_BIND_GET);
 
-       widget = e_builder_get_widget (prefs->priv->builder, "use_12_hour");
+       widget = e_builder_get_widget (prefs->priv->builder, "hbox_time_format");
        gtk_widget_set_sensitive (widget, locale_supports_12_hour_format);
+
+       widget = e_builder_get_widget (prefs->priv->builder, "use_12_hour");
        g_settings_bind (
                settings, "use-24hour-format",
                widget, "active",
@@ -844,7 +842,6 @@ calendar_preferences_construct (ECalendarPreferences *prefs,
                G_SETTINGS_BIND_INVERT_BOOLEAN);
 
        widget = e_builder_get_widget (prefs->priv->builder, "use_24_hour");
-       gtk_widget_set_sensitive (widget, locale_supports_12_hour_format);
        g_settings_bind (
                settings, "use-24hour-format",
                widget, "active",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]