diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2013-09-08 20:17:44 +0000 |
---|---|---|
committer | Tarmac <Unknown> | 2013-09-08 20:17:44 +0000 |
commit | b7f625ed8003197cd9d0a81240aea944860c8dc3 (patch) | |
tree | d94fd355f855c179072831004f8e3ae17b7b87d1 /src/service.c | |
parent | 0896192c82c10144c184f274943ed692599d7529 (diff) | |
parent | e2096aa3f7d1a78ad0a8968a29529a6609a6fd5a (diff) | |
download | ayatana-indicator-datetime-b7f625ed8003197cd9d0a81240aea944860c8dc3.tar.gz ayatana-indicator-datetime-b7f625ed8003197cd9d0a81240aea944860c8dc3.tar.bz2 ayatana-indicator-datetime-b7f625ed8003197cd9d0a81240aea944860c8dc3.zip |
This change adds a GSettings* arg to the utils functions so that they don't have to churn through temporary GSettings objects.
These functions are usually called in a loop, causing a lot of GSettings temporaries, even though the calling code already has an instance for that GSettings schema.
Approved by Ted Gould, PS Jenkins bot.
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/src/service.c b/src/service.c index 39805a7..0928205 100644 --- a/src/service.c +++ b/src/service.c @@ -424,43 +424,12 @@ skew_timer_func (gpointer gself) **** ***/ -typedef enum -{ - TIME_FORMAT_MODE_LOCALE_DEFAULT, - TIME_FORMAT_MODE_12_HOUR, - TIME_FORMAT_MODE_24_HOUR, - TIME_FORMAT_MODE_CUSTOM -} -TimeFormatMode; - -/* gets the user's time-format from GSettings */ -static TimeFormatMode -get_time_format_mode (IndicatorDatetimeService * self) -{ - char * str; - TimeFormatMode mode; - - str = g_settings_get_string (self->priv->settings, SETTINGS_TIME_FORMAT_S); - - if (!g_strcmp0 ("12-hour", str)) - mode = TIME_FORMAT_MODE_12_HOUR; - else if (!g_strcmp0 ("24-hour", str)) - mode = TIME_FORMAT_MODE_24_HOUR; - else if (!g_strcmp0 ("custom", str)) - mode = TIME_FORMAT_MODE_CUSTOM; - else - mode = TIME_FORMAT_MODE_LOCALE_DEFAULT; - - g_free (str); - return mode; -} - static gchar * get_header_label_format_string (IndicatorDatetimeService * self) { char * fmt; - const TimeFormatMode mode = get_time_format_mode (self); GSettings * s = self->priv->settings; + const TimeFormatMode mode = g_settings_get_enum (s, SETTINGS_TIME_FORMAT_S); if (mode == TIME_FORMAT_MODE_CUSTOM) { @@ -470,7 +439,7 @@ get_header_label_format_string (IndicatorDatetimeService * self) { gboolean show_day = g_settings_get_boolean (s, SETTINGS_SHOW_DAY_S); gboolean show_date = g_settings_get_boolean (s, SETTINGS_SHOW_DATE_S); - fmt = generate_full_format_string (show_day, show_date); + fmt = generate_full_format_string (show_day, show_date, s); } return fmt; @@ -497,7 +466,7 @@ create_desktop_header_state (IndicatorDatetimeService * self) g_warning ("%s", str); } - g_variant_builder_init (&b, G_VARIANT_TYPE("a{sv}")); + g_variant_builder_init (&b, G_VARIANT_TYPE_VARDICT); g_variant_builder_add (&b, "{sv}", "accessible-desc", g_variant_new_string (str)); g_variant_builder_add (&b, "{sv}", "label", g_variant_new_take_string (str)); g_variant_builder_add (&b, "{sv}", "visible", g_variant_new_boolean (visible)); @@ -521,7 +490,7 @@ create_phone_header_state (IndicatorDatetimeService * self) gboolean has_alarms; gchar * a11y; - g_variant_builder_init (&b, G_VARIANT_TYPE("a{sv}")); + g_variant_builder_init (&b, G_VARIANT_TYPE_VARDICT); /* label */ now = indicator_datetime_service_get_localtime (self); @@ -714,6 +683,7 @@ service_has_alarms (IndicatorDatetimeService * self) static char * get_appointment_time_format (struct IndicatorDatetimeAppt * appt, GDateTime * now, + GSettings * settings, gboolean terse) { char * fmt; @@ -722,7 +692,7 @@ get_appointment_time_format (struct IndicatorDatetimeAppt * appt, if (appt->is_daily) { const char * time_fmt = terse ? get_terse_time_format_string (appt->begin) - : get_full_time_format_string (); + : get_full_time_format_string (settings); fmt = join_date_and_time_format_strings (_("Daily"), time_fmt); } else if (full_day) @@ -734,7 +704,7 @@ get_appointment_time_format (struct IndicatorDatetimeAppt * appt, else { fmt = terse ? generate_terse_format_string_at_time (now, appt->begin) - : generate_full_format_string_at_time (now, appt->begin); + : generate_full_format_string_at_time (now, appt->begin, settings); } return fmt; @@ -754,7 +724,7 @@ add_appointments (IndicatorDatetimeService * self, GMenu * menu, gboolean terse) for (l=appts, i=0; l!=NULL && i<MAX_APPTS; l=l->next, i++) { struct IndicatorDatetimeAppt * appt = l->data; - char * fmt = get_appointment_time_format (appt, now, terse); + char * fmt = get_appointment_time_format (appt, now, self->priv->settings, terse); const gint64 unix_time = g_date_time_to_unix (appt->begin); GMenuItem * menu_item; @@ -994,7 +964,7 @@ create_locations_section (IndicatorDatetimeService * self) const char * tz = indicator_datetime_timezone_get_timezone (detected_timezones[i]); if (tz && *tz) { - gchar * name = get_current_zone_name (tz); + gchar * name = get_current_zone_name (tz, p->settings); locations = locations_add (locations, tz, name, visible); g_free (name); } @@ -1034,7 +1004,7 @@ create_locations_section (IndicatorDatetimeService * self) detailed_action = g_strdup_printf ("indicator.set-location::%s %s", loc->zone, loc->name); - fmt = generate_full_format_string_at_time (now, loc->local_time); + fmt = generate_full_format_string_at_time (now, loc->local_time, p->settings); menu_item = g_menu_item_new (loc->name, detailed_action); g_menu_item_set_attribute (menu_item, "x-canonical-type", |