[gnome-calendar/wip/pandusonu/week-view] event-widget: factor out clock format function
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/wip/pandusonu/week-view] event-widget: factor out clock format function
- Date: Wed, 14 Dec 2016 19:01:10 +0000 (UTC)
commit ab3b80f3b95fcf36dcfc186e9af6bdcb2b2c2896
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Dec 13 20:17:28 2016 -0200
event-widget: factor out clock format function
This function will be used by other pieces of code later. We also gain
a tiny performance improvement, as only one GSetting is ever created.
src/gcal-event-widget.c | 9 +--------
src/gcal-utils.c | 14 ++++++++++++++
src/gcal-utils.h | 2 ++
3 files changed, 17 insertions(+), 8 deletions(-)
---
diff --git a/src/gcal-event-widget.c b/src/gcal-event-widget.c
index 6b889c6..16410f4 100644
--- a/src/gcal-event-widget.c
+++ b/src/gcal-event-widget.c
@@ -188,13 +188,9 @@ static void
gcal_event_widget_init (GcalEventWidget *self)
{
GtkWidget *widget;
- GSettings *settings;
- gchar *clock_format;
widget = GTK_WIDGET (self);
- settings = g_settings_new ("org.gnome.desktop.interface");
- clock_format = g_settings_get_string (settings, "clock-format");
- self->clock_format_24h = g_strcmp0 (clock_format, "24h") == 0;
+ self->clock_format_24h = is_clock_format_24h ();
gtk_widget_set_has_window (widget, FALSE);
gtk_widget_set_can_focus (widget, TRUE);
@@ -207,9 +203,6 @@ gcal_event_widget_init (GcalEventWidget *self)
GDK_ACTION_COPY);
gtk_drag_source_add_text_targets (widget);
-
- g_clear_object (&settings);
- g_free (clock_format);
}
static void
diff --git a/src/gcal-utils.c b/src/gcal-utils.c
index b6d1f4b..ed73f61 100644
--- a/src/gcal-utils.c
+++ b/src/gcal-utils.c
@@ -561,6 +561,20 @@ get_end_of_week (icaltimetype *date)
return week_end;
}
+gboolean
+is_clock_format_24h (void)
+{
+ static GSettings *settings = NULL;
+ g_autofree gchar *clock_format = NULL;
+
+ if (!settings)
+ settings = g_settings_new ("org.gnome.desktop.interface");
+
+ clock_format = g_settings_get_string (settings, "clock-format");
+
+ return g_strcmp0 (clock_format, "24h") == 0;
+}
+
/* Function to do a last minute fixup of the AM/PM stuff if the locale
* and gettext haven't done it right. Most English speaking countries
* except the USA use the 24 hour clock (UK, Australia etc). However
diff --git a/src/gcal-utils.h b/src/gcal-utils.h
index 484b3ae..8c3a249 100644
--- a/src/gcal-utils.h
+++ b/src/gcal-utils.h
@@ -105,6 +105,8 @@ GDateTime* get_start_of_week (icaltimetype
GDateTime* get_end_of_week (icaltimetype *date);
+gboolean is_clock_format_24h (void);
+
/* code brought from evolution */
gsize e_strftime_fix_am_pm (gchar *str,
gsize max,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]