diff --git a/src/gcal-context.c b/src/gcal-context.c index 9d4888dc..0d3d7ba6 100644 --- a/src/gcal-context.c +++ b/src/gcal-context.c @@ -28,6 +28,7 @@ struct _GcalContext GcalClock *clock; GcalManager *manager; + GSettings *settings; GcalWeatherService *weather_service; }; @@ -38,6 +39,7 @@ enum PROP_0, PROP_CLOCK, PROP_MANAGER, + PROP_SETTINGS, PROP_WEATHER_SERVICE, N_PROPS }; @@ -79,6 +81,10 @@ gcal_context_get_property (GObject *object, g_value_set_object (value, self->manager); break; + case PROP_SETTINGS: + g_value_set_object (value, self->settings); + break; + case PROP_WEATHER_SERVICE: g_value_set_object (value, self->weather_service); break; @@ -98,6 +104,7 @@ gcal_context_set_property (GObject *object, { case PROP_CLOCK: case PROP_MANAGER: + case PROP_SETTINGS: case PROP_WEATHER_SERVICE: default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -125,6 +132,12 @@ gcal_context_class_init (GcalContextClass *klass) GCAL_TYPE_MANAGER, G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + properties[PROP_SETTINGS] = g_param_spec_object ("settings", + "GNOME Calendar settings", + "GNOME Calendar settings", + G_TYPE_SETTINGS, + G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + properties[PROP_WEATHER_SERVICE] = g_param_spec_object ("weather-service", "Weather service", "Weather service", @@ -139,6 +152,7 @@ gcal_context_init (GcalContext *self) { self->clock = gcal_clock_new (); self->manager = gcal_manager_new (); + self->settings = g_settings_new ("org.gnome.calendar"); self->weather_service = gcal_weather_service_new (); } @@ -186,6 +200,21 @@ gcal_context_get_manager (GcalContext *self) return self->manager; } +/** + * gcal_context_get_settings: + * + * Retrieves the #GSettings from @self. + * + * Returns: (transfer none): a #GSettings + */ +GSettings* +gcal_context_get_settings (GcalContext *self) +{ + g_return_val_if_fail (GCAL_IS_CONTEXT (self), NULL); + + return self->settings; +} + /** * gcal_context_get_weather_service: * diff --git a/src/gcal-context.h b/src/gcal-context.h index 34f2e86c..5d1478f8 100644 --- a/src/gcal-context.h +++ b/src/gcal-context.h @@ -37,6 +37,8 @@ GcalClock* gcal_context_get_clock (GcalContext GcalManager* gcal_context_get_manager (GcalContext *self); +GSettings* gcal_context_get_settings (GcalContext *self); + GcalWeatherService* gcal_context_get_weather_service (GcalContext *self); G_END_DECLS diff --git a/src/gcal-manager.c b/src/gcal-manager.c index 54131aa8..2d71c2c0 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -96,9 +96,6 @@ struct _GcalManager /* timezone */ icaltimezone *system_timezone; - - /* property */ - GSettings *settings; }; G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT) @@ -108,7 +105,6 @@ enum PROP_0, PROP_DEFAULT_CALENDAR, PROP_LOADING, - PROP_SETTINGS, NUM_PROPS }; @@ -773,7 +769,6 @@ gcal_manager_finalize (GObject *object) GCAL_ENTRY; - g_clear_object (&self->settings); g_clear_object (&self->goa_client); g_clear_object (&self->e_data_model); g_clear_object (&self->search_data_model); @@ -845,10 +840,6 @@ gcal_manager_get_property (GObject *object, g_value_set_boolean (value, gcal_manager_get_loading (self)); break; - case PROP_SETTINGS: - g_value_set_object (value, self->settings); - return; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -889,17 +880,6 @@ gcal_manager_class_init (GcalManagerClass *klass) TRUE, G_PARAM_READABLE); - /** - * GcalManager:settings: - * - * The settings. - */ - properties[PROP_SETTINGS] = g_param_spec_object ("settings", - "Application settings", - "The settings of the application passed down from GcalApplication", - G_TYPE_SETTINGS, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, NUM_PROPS, properties); /* signals */ @@ -949,7 +929,6 @@ gcal_manager_class_init (GcalManagerClass *klass) static void gcal_manager_init (GcalManager *self) { - self->settings = g_settings_new ("org.gnome.calendar"); self->system_timezone = e_cal_util_get_system_timezone (); } @@ -967,22 +946,6 @@ gcal_manager_new (void) return g_object_new (GCAL_TYPE_MANAGER, NULL); } -/** - * gcal_manager_get_settings: - * @self: a #GcalManager - * - * Retrieves the #GSetting of @self. - * - * Returns: (transfer none): a #GSettings - */ -GSettings* -gcal_manager_get_settings (GcalManager *self) -{ - g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL); - - return self->settings; -} - /** * gcal_manager_get_source: * @self: a #GcalManager diff --git a/src/gcal-manager.h b/src/gcal-manager.h index ce47016e..837b9c18 100644 --- a/src/gcal-manager.h +++ b/src/gcal-manager.h @@ -33,8 +33,6 @@ G_DECLARE_FINAL_TYPE (GcalManager, gcal_manager, GCAL, MANAGER, GObject) GcalManager* gcal_manager_new (void); -GSettings* gcal_manager_get_settings (GcalManager *self); - ESource* gcal_manager_get_source (GcalManager *self, const gchar *uid); diff --git a/src/gcal-night-light-monitor.c b/src/gcal-night-light-monitor.c index 09816640..293cc687 100644 --- a/src/gcal-night-light-monitor.c +++ b/src/gcal-night-light-monitor.c @@ -52,14 +52,12 @@ on_night_light_proxy_properties_changed_cb (GcalNightLightMonitor *self, const gchar * const *invalidated, GDBusProxy *proxy) { - GcalManager *manager; GSettings *settings; g_assert (GCAL_IS_NIGHT_LIGHT_MONITOR (self)); g_assert (G_IS_DBUS_PROXY (proxy)); - manager = gcal_context_get_manager (self->context); - settings = gcal_manager_get_settings (manager); + settings = gcal_context_get_settings (self->context); if (g_settings_get_boolean (settings, "follow-night-light")) { diff --git a/src/gcal-window.c b/src/gcal-window.c index cc32d0f7..36b4f3f7 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -523,13 +523,11 @@ calendar_listbox_sort_func (GtkListBoxRow *row1, static void load_geometry (GcalWindow *self) { - GcalManager *manager; GSettings *settings; GCAL_ENTRY; - manager = gcal_context_get_manager (self->context); - settings = gcal_manager_get_settings (manager); + settings = gcal_context_get_settings (self->context); self->is_maximized = g_settings_get_boolean (settings, "window-maximized"); g_settings_get (settings, "window-size", "(ii)", &self->width, &self->height); @@ -552,13 +550,11 @@ load_geometry (GcalWindow *self) static void save_geometry (GcalWindow *self) { - GcalManager *manager; GSettings *settings; GCAL_ENTRY; - manager = gcal_context_get_manager (self->context); - settings = gcal_manager_get_settings (manager); + settings = gcal_context_get_settings (self->context); g_settings_set_boolean (settings, "window-maximized", self->is_maximized); g_settings_set (settings, "window-size", "(ii)", self->width, self->height); @@ -1310,7 +1306,7 @@ gcal_window_set_property (GObject *object, { GcalManager *manager = gcal_context_get_manager (self->context); - g_settings_bind (gcal_manager_get_settings (manager), + g_settings_bind (gcal_context_get_settings (self->context), "active-view", self, "active-view", diff --git a/src/weather/gcal-weather-settings.c b/src/weather/gcal-weather-settings.c index 5900eb7b..fd0a6b78 100644 --- a/src/weather/gcal-weather-settings.c +++ b/src/weather/gcal-weather-settings.c @@ -73,7 +73,6 @@ load_weather_settings (GcalWeatherSettings *self) g_autoptr (GVariant) location = NULL; g_autoptr (GVariant) value = NULL; g_autofree gchar *location_name = NULL; - GcalManager *manager; GSettings *settings; gboolean show_weather; gboolean auto_location; @@ -83,8 +82,7 @@ load_weather_settings (GcalWeatherSettings *self) if (!self->context) GCAL_RETURN (); - manager = gcal_context_get_manager (self->context); - settings = gcal_manager_get_settings (manager); + settings = gcal_context_get_settings (self->context); value = g_settings_get_value (settings, "weather-settings"); g_variant_get (value, "(bbsmv)", @@ -130,7 +128,6 @@ static void save_weather_settings (GcalWeatherSettings *self) { g_autoptr (GWeatherLocation) location = NULL; - GcalManager *manager; GSettings *settings; GVariant *value; GVariant *vlocation; @@ -144,8 +141,7 @@ save_weather_settings (GcalWeatherSettings *self) location = gweather_location_entry_get_location (GWEATHER_LOCATION_ENTRY (self->weather_location_entry)); vlocation = location ? gweather_location_serialize (location) : NULL; - manager = gcal_context_get_manager (self->context); - settings = gcal_manager_get_settings (manager); + settings = gcal_context_get_settings (self->context); value = g_variant_new ("(bbsmv)", gtk_switch_get_active (self->show_weather_switch), gtk_switch_get_active (self->weather_auto_location_switch),