[gnome-desktop] wall-clock: Export gnome_wall_clock_string_for_datetime()
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-desktop] wall-clock: Export gnome_wall_clock_string_for_datetime()
- Date: Fri, 30 May 2014 12:18:20 +0000 (UTC)
commit f816ad4a103b678a33dab42b352a67721f07633d
Author: Bastien Nocera <hadess hadess net>
Date: Fri May 30 14:00:59 2014 +0200
wall-clock: Export gnome_wall_clock_string_for_datetime()
gnome_wall_clock_string_for_datetime() will be used for debugging
purposes.
libgnome-desktop/gnome-wall-clock.c | 85 ++++++++++++++++++++++-------------
libgnome-desktop/gnome-wall-clock.h | 8 +++
2 files changed, 62 insertions(+), 31 deletions(-)
---
diff --git a/libgnome-desktop/gnome-wall-clock.c b/libgnome-desktop/gnome-wall-clock.c
index 7f88ad8..1cd67a8 100644
--- a/libgnome-desktop/gnome-wall-clock.c
+++ b/libgnome-desktop/gnome-wall-clock.c
@@ -275,38 +275,21 @@ date_time_format (GDateTime *datetime,
return ret;
}
-static gboolean
-update_clock (gpointer data)
+/**
+ * gnome_wall_clock_string_for_datetime:
+ *
+ * Returns: (skip): a newly allocated string representing the date & time
+ * passed, with the options applied.
+ */
+char *
+gnome_wall_clock_string_for_datetime (GnomeWallClock *self,
+ GDateTime *now,
+ GDesktopClockFormat clock_format,
+ gboolean show_weekday,
+ gboolean show_full_date,
+ gboolean show_seconds)
{
- GnomeWallClock *self = data;
- GDesktopClockFormat clock_format;
const char *format_string;
- gboolean show_full_date;
- gboolean show_weekday;
- gboolean show_seconds;
- GSource *source;
- GDateTime *now;
- 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_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds");
-
- now = g_date_time_new_now (self->priv->timezone);
- if (show_seconds)
- expiry = g_date_time_add_seconds (now, 1);
- else
- expiry = g_date_time_add_seconds (now, 60 - g_date_time_get_second (now));
-
- if (self->priv->clock_update_id)
- g_source_remove (self->priv->clock_update_id);
-
- source = _gnome_datetime_source_new (now, expiry, TRUE);
- g_source_set_priority (source, G_PRIORITY_HIGH);
- g_source_set_callback (source, update_clock, self, NULL);
- self->priv->clock_update_id = g_source_attach (source, NULL);
- g_source_unref (source);
if (clock_format == G_DESKTOP_CLOCK_FORMAT_24H ||
self->priv->ampm_available == FALSE) {
@@ -344,8 +327,48 @@ update_clock (gpointer data)
}
}
+ return date_time_format (now, format_string);
+}
+
+static gboolean
+update_clock (gpointer data)
+{
+ GnomeWallClock *self = data;
+ GDesktopClockFormat clock_format;
+ gboolean show_full_date;
+ gboolean show_weekday;
+ gboolean show_seconds;
+ GSource *source;
+ GDateTime *now;
+ 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_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds");
+
+ now = g_date_time_new_now (self->priv->timezone);
+ if (show_seconds)
+ expiry = g_date_time_add_seconds (now, 1);
+ else
+ expiry = g_date_time_add_seconds (now, 60 - g_date_time_get_second (now));
+
+ if (self->priv->clock_update_id)
+ g_source_remove (self->priv->clock_update_id);
+
+ source = _gnome_datetime_source_new (now, expiry, TRUE);
+ g_source_set_priority (source, G_PRIORITY_HIGH);
+ g_source_set_callback (source, update_clock, self, NULL);
+ self->priv->clock_update_id = g_source_attach (source, NULL);
+ g_source_unref (source);
+
g_free (self->priv->clock_string);
- self->priv->clock_string = date_time_format (now, format_string);
+ self->priv->clock_string = gnome_wall_clock_string_for_datetime (self,
+ now,
+ clock_format,
+ show_weekday,
+ show_full_date,
+ show_seconds);
g_date_time_unref (now);
g_date_time_unref (expiry);
diff --git a/libgnome-desktop/gnome-wall-clock.h b/libgnome-desktop/gnome-wall-clock.h
index 2f07aa3..cda2397 100644
--- a/libgnome-desktop/gnome-wall-clock.h
+++ b/libgnome-desktop/gnome-wall-clock.h
@@ -31,6 +31,7 @@
#endif
#include <gio/gio.h>
+#include <gdesktop-enums.h>
G_BEGIN_DECLS
@@ -65,6 +66,13 @@ const char * gnome_wall_clock_get_clock (GnomeWallClock *clock);
GTimeZone * gnome_wall_clock_get_timezone (GnomeWallClock *clock);
+char * gnome_wall_clock_string_for_datetime (GnomeWallClock *self,
+ GDateTime *now,
+ GDesktopClockFormat clock_format,
+ gboolean show_weekday,
+ gboolean show_full_date,
+ gboolean show_seconds);
+
G_END_DECLS
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]