aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-03-14 21:43:27 -0500
committerTed Gould <ted@gould.cx>2011-03-14 21:43:27 -0500
commitf9f137dfe27cbe19a5907a986f986368c637aa75 (patch)
tree36f7ce9f817ba4d9e5ce3fdda3d73a76d1739e54
parent139938582ae1356e2b884d8904da33697bd2bcff (diff)
parent0de507c31bbbadd9b0036486d5b58dcbf6533fb9 (diff)
downloadayatana-indicator-datetime-f9f137dfe27cbe19a5907a986f986368c637aa75.tar.gz
ayatana-indicator-datetime-f9f137dfe27cbe19a5907a986f986368c637aa75.tar.bz2
ayatana-indicator-datetime-f9f137dfe27cbe19a5907a986f986368c637aa75.zip
Fix appointment time format
-rw-r--r--src/datetime-service.c33
-rw-r--r--src/settings-shared.h4
2 files changed, 32 insertions, 5 deletions
diff --git a/src/datetime-service.c b/src/datetime-service.c
index 9b3de5e..e51fc4a 100644
--- a/src/datetime-service.c
+++ b/src/datetime-service.c
@@ -626,6 +626,17 @@ update_appointment_menu_items (gpointer user_data)
if (height <= 0) height = 12;
if (width > 30) width = 12;
if (height > 30) height = 12;
+
+ gchar *time_format_str = g_settings_get_string(conf, SETTINGS_TIME_FORMAT_S);
+ gint apt_output;
+ if (g_strcmp0(time_format_str, "12-hour") == 0) {
+ apt_output = SETTINGS_TIME_12_HOUR;
+ } else if (g_strcmp0(time_format_str, "24-hour") == 0) {
+ apt_output = SETTINGS_TIME_24_HOUR;
+ } else {
+ apt_output = SETTINGS_TIME_LOCALE;
+ }
+
i = 0;
for (l = sorted_comp_instances; l; l = l->next) {
struct comp_instance *ci = l->data;
@@ -676,11 +687,23 @@ update_appointment_menu_items (gpointer user_data)
int dmon = due->tm_mon;
int dyear = due->tm_year;
- if ((mday == dmday) && (mon == dmon) && (year == dyear))
- strftime(right, 20, "%l:%M %p", due);
- else
- strftime(right, 20, "%a %l:%M %p", due);
-
+ if (apt_output == SETTINGS_TIME_12_HOUR) {
+ if ((mday == dmday) && (mon == dmon) && (year == dyear))
+ strftime(right, 20, _(DEFAULT_TIME_12_FORMAT), due);
+ else
+ strftime(right, 20, _(DEFAULT_TIME_12_FORMAT_WITH_DAY), due);
+ } else if (apt_output == SETTINGS_TIME_24_HOUR) {
+ if ((mday == dmday) && (mon == dmon) && (year == dyear))
+ strftime(right, 20, _(DEFAULT_TIME_24_FORMAT), due);
+ else
+ strftime(right, 20, _(DEFAULT_TIME_24_FORMAT_WITH_DAY), due);
+ } else {
+ if ((mday == dmday) && (mon == dmon) && (year == dyear))
+ strftime(right, 20, _(DEFAULT_TIME_FORMAT), due);
+ else
+ strftime(right, 20, _(DEFAULT_TIME_FORMAT_WITH_DAY), due);
+ }
+
g_debug("Appointment time: %s, for date %s", right, asctime(due));
dbusmenu_menuitem_property_set (item, APPOINTMENT_MENUITEM_PROP_RIGHT, right);
diff --git a/src/settings-shared.h b/src/settings-shared.h
index df2260e..ef1183c 100644
--- a/src/settings-shared.h
+++ b/src/settings-shared.h
@@ -51,5 +51,9 @@ enum {
#define DEFAULT_TIME_24_FORMAT N_("%H:%M")
#define DEFAULT_TIME_FORMAT DEFAULT_TIME_12_FORMAT
+#define DEFAULT_TIME_FORMAT_WITH_DAY DEFAULT_TIME_12_FORMAT
+
+#define DEFAULT_TIME_12_FORMAT_WITH_DAY N_("%a %l:%M %p")
+#define DEFAULT_TIME_24_FORMAT_WITH_DAY N_("%a %H:%M")
#endif