[gnome-desktop] wall-clock: respect new clock-show-weekday setting



commit 84f55f5bb496e348b850d448d54cebabcc916134
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Sep 6 11:38:07 2017 -0700

    wall-clock: respect new clock-show-weekday setting
    
    https://bugzilla.gnome.org/show_bug.cgi?id=669778

 configure.ac                        |    2 +-
 libgnome-desktop/gnome-wall-clock.c |    4 +-
 tests/wall-clock.c                  |   50 +++++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+), 3 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index dccc261..15cb437 100644
--- a/configure.ac
+++ b/configure.ac
@@ -107,7 +107,7 @@ GDK_PIXBUF_REQUIRED=2.36.5
 GTK_REQUIRED=3.3.6
 GLIB_REQUIRED=2.53.0
 XRANDR_REQUIRED=1.3
-GSETTINGS_DESKTOP_SCHEMAS_REQUIRED=3.5.91
+GSETTINGS_DESKTOP_SCHEMAS_REQUIRED=3.27.0
 XEXT_REQUIRED=1.1
 
 AC_SUBST(GTK_REQUIRED)
diff --git a/libgnome-desktop/gnome-wall-clock.c b/libgnome-desktop/gnome-wall-clock.c
index be63057..64fb3ef 100644
--- a/libgnome-desktop/gnome-wall-clock.c
+++ b/libgnome-desktop/gnome-wall-clock.c
@@ -318,8 +318,8 @@ update_clock (gpointer data)
        GDateTime *expiry;
 
        clock_format = g_settings_get_enum (self->priv->desktop_settings, "clock-format");
-       show_weekday = !self->priv->time_only;
-       show_full_date = show_weekday && g_settings_get_boolean (self->priv->desktop_settings, 
"clock-show-date");
+       show_weekday = !self->priv->time_only && g_settings_get_boolean (self->priv->desktop_settings, 
"clock-show-weekday");
+       show_full_date = !self->priv->time_only && g_settings_get_boolean (self->priv->desktop_settings, 
"clock-show-date");
        show_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds");
 
        now = g_date_time_new_now (self->priv->timezone);
diff --git a/tests/wall-clock.c b/tests/wall-clock.c
index bb04709..4c57d3e 100644
--- a/tests/wall-clock.c
+++ b/tests/wall-clock.c
@@ -145,6 +145,55 @@ test_notify_clock (void)
        g_object_unref (settings);
 }
 
+static void
+test_weekday_setting (void)
+{
+       GnomeWallClock *clock;
+       GSettings *settings;
+       const char *save_locale;
+       const char *str, *ptr, *s;
+
+       /* Save current locale */
+       save_locale = setlocale (LC_ALL, NULL);
+
+       setlocale (LC_ALL, "C");
+       settings = g_settings_new ("org.gnome.desktop.interface");
+
+       /* Set 24h format, so that the only alphabetical part will be the weekday */
+       g_settings_set_enum (settings, "clock-format", G_DESKTOP_CLOCK_FORMAT_24H);
+
+       g_settings_set_boolean (settings, "clock-show-weekday", FALSE);
+       clock = gnome_wall_clock_new ();
+       str = gnome_wall_clock_get_clock (clock);
+
+       /* Verify that no character is alphabetical */
+       for (s = str; *s != '\0'; s++)
+               g_assert (!g_ascii_isalpha (*s));
+
+       g_object_unref (clock);
+
+       g_settings_set_boolean (settings, "clock-show-weekday", TRUE);
+       clock = gnome_wall_clock_new ();
+       str = gnome_wall_clock_get_clock (clock);
+
+       /* Verify that every character before the first space is alphabetical */
+       ptr = strchr (str, ' ');
+       g_assert (ptr != NULL);
+
+       for (s = str; s != ptr; s++)
+               g_assert (g_ascii_isalpha (*s));
+
+       for (s = ptr; *s != '\0'; s++)
+               g_assert (!g_ascii_isalpha (*s));
+
+       g_object_unref (clock);
+
+       g_object_unref (settings);
+
+       /* Restore previous locale */
+       setlocale (LC_ALL, save_locale);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -156,6 +205,7 @@ main (int   argc,
        g_test_add_func ("/wall-clock/colon-vs-ratio", test_colon_vs_ratio);
        g_test_add_func ("/wall-clock/24h-clock-format", test_clock_format_setting);
        g_test_add_func ("/wall-clock/notify-clock", test_notify_clock);
+       g_test_add_func ("/wall-clock/weekday-setting", test_weekday_setting);
 
        return g_test_run ();
 }


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