From 80b03531f2b99b630c466be266e2c0ee716dcd34 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 19 Jan 2016 19:31:04 -0200 Subject: [PATCH] manager: turn into a final class --- src/gcal-manager.c | 414 +++++++++++++++++---------------------------- src/gcal-manager.h | 29 +--- 2 files changed, 158 insertions(+), 285 deletions(-) diff --git a/src/gcal-manager.c b/src/gcal-manager.c index b9b27abc..30790e33 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -47,8 +47,10 @@ typedef struct gboolean connected; } GcalManagerUnit; -typedef struct +struct _GcalManager { + GObject parent; + /** * The list of clients we are managing. * Each value is of type GCalStoreUnit @@ -79,7 +81,7 @@ typedef struct /* property */ GSettings *settings; -} GcalManagerPrivate; +}; struct _MoveEventData { @@ -162,7 +164,7 @@ static void gcal_manager_get_property (GObject *obje GValue *value, GParamSpec *pspec); -G_DEFINE_TYPE_WITH_PRIVATE (GcalManager, gcal_manager, G_TYPE_OBJECT) +G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT) /* -- start: threading related code provided by Milan Crha */ typedef struct { @@ -292,11 +294,7 @@ static void load_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - - if (g_hash_table_lookup (priv->clients, source) == NULL && + if (g_hash_table_lookup (manager->clients, source) == NULL && e_source_has_extension (source, E_SOURCE_EXTENSION_CALENDAR)) { /* NULL: because maybe the operation cannot be really cancelled */ @@ -318,19 +316,19 @@ on_client_connected (GObject *source_object, GAsyncResult *result, gpointer user_data) { + GcalManager *manager; ECalClient *client; - GcalManagerPrivate *priv; GError *error; ESource *source; GcalManagerUnit *unit; - priv = gcal_manager_get_instance_private (GCAL_MANAGER (user_data)); + manager = GCAL_MANAGER (user_data); source = e_client_get_source (E_CLIENT (source_object)); - priv->sources_at_launch--; - if (priv->sources_at_launch == 0) + manager->sources_at_launch--; + if (manager->sources_at_launch == 0) g_signal_emit (user_data, signals[LOAD_COMPLETED], 0); error = NULL; @@ -341,7 +339,7 @@ on_client_connected (GObject *source_object, unit->connected = TRUE; unit->client = g_object_ref (client); - g_hash_table_insert (priv->clients, source, unit); + g_hash_table_insert (manager->clients, source, unit); g_debug ("Source %s (%s) connected", e_source_get_display_name (source), @@ -350,7 +348,7 @@ on_client_connected (GObject *source_object, /* notify the readonly property */ g_signal_connect (client, "notify::readonly", G_CALLBACK (on_client_readonly_changed), user_data); - if (g_strv_contains ((const gchar * const *) priv->disabled_sources, e_source_get_uid (source))) + if (g_strv_contains ((const gchar * const *) manager->disabled_sources, e_source_get_uid (source))) { unit->enabled = FALSE; } @@ -358,10 +356,10 @@ on_client_connected (GObject *source_object, { unit->enabled = TRUE; - e_cal_data_model_add_client (priv->e_data_model, client); - e_cal_data_model_add_client (priv->search_data_model, client); - if (priv->shell_search_data_model != NULL) - e_cal_data_model_add_client (priv->shell_search_data_model, client); + e_cal_data_model_add_client (manager->e_data_model, client); + e_cal_data_model_add_client (manager->search_data_model, client); + if (manager->shell_search_data_model != NULL) + e_cal_data_model_add_client (manager->shell_search_data_model, client); } /* refresh client when it's added */ @@ -394,14 +392,14 @@ on_client_readonly_changed (EClient *client, GParamSpec *pspec, gpointer user_data) { - GcalManagerPrivate *priv; + GcalManager *manager; ESource *source; GcalManagerUnit *unit; - priv = gcal_manager_get_instance_private (GCAL_MANAGER (user_data)); + manager = GCAL_MANAGER (user_data); source = e_client_get_source (client); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit && unit->enabled) g_signal_emit (GCAL_MANAGER (user_data), signals[SOURCE_ACTIVATED], 0, source, !e_client_is_readonly (client)); } @@ -518,24 +516,21 @@ void remove_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; g_return_if_fail (GCAL_IS_MANAGER (manager)); g_return_if_fail (E_IS_SOURCE (source)); - priv = gcal_manager_get_instance_private (manager); - - e_cal_data_model_remove_client (priv->e_data_model, + e_cal_data_model_remove_client (manager->e_data_model, e_source_get_uid (source)); - e_cal_data_model_remove_client (priv->search_data_model, + e_cal_data_model_remove_client (manager->search_data_model, e_source_get_uid (source)); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit && unit->client) g_signal_handlers_disconnect_by_data (unit->client, manager); - g_hash_table_remove (priv->clients, source); + g_hash_table_remove (manager->clients, source); g_signal_emit (manager, signals[SOURCE_REMOVED], 0, source); } @@ -548,20 +543,20 @@ model_state_changed (GcalManager *manager, const GError *error, ECalDataModel *data_model) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager); gchar *filter = e_cal_data_model_dup_filter (data_model); - if (state == E_CAL_DATA_MODEL_VIEW_STATE_START && g_strcmp0 (priv->search_view_data->query, filter) == 0) + + if (state == E_CAL_DATA_MODEL_VIEW_STATE_START && g_strcmp0 (manager->search_view_data->query, filter) == 0) { - priv->search_view_data->passed_start = TRUE; + manager->search_view_data->passed_start = TRUE; goto out; } - if (priv->search_view_data->passed_start && state == E_CAL_DATA_MODEL_VIEW_STATE_COMPLETE && - g_strcmp0 (priv->search_view_data->query, filter) == 0) + if (manager->search_view_data->passed_start && state == E_CAL_DATA_MODEL_VIEW_STATE_COMPLETE && + g_strcmp0 (manager->search_view_data->query, filter) == 0) { - priv->search_view_data->sources_left--; - priv->search_view_data->search_done = (priv->search_view_data->sources_left == 0); - if (priv->search_view_data->search_done) + manager->search_view_data->sources_left--; + manager->search_view_data->search_done = (manager->search_view_data->sources_left == 0); + if (manager->search_view_data->search_done) g_signal_emit (manager, signals[QUERY_COMPLETED], 0); } @@ -627,13 +622,11 @@ source_credentials_required_cb (ESourceRegistry *registry, const GError *op_error, GcalManager *manager) { - GcalManagerPrivate *priv; ECredentialsPrompter *credentials_prompter; g_return_if_fail (GCAL_IS_MANAGER (manager)); - priv = gcal_manager_get_instance_private (manager); - credentials_prompter = priv->credentials_prompter; + credentials_prompter = manager->credentials_prompter; if (e_credentials_prompter_get_auto_prompt_disabled_for (credentials_prompter, source)) return; @@ -704,37 +697,37 @@ gcal_manager_class_init (GcalManagerClass *klass) /* signals */ signals[SOURCE_ACTIVATED] = g_signal_new ("source-activated", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, source_activated), + 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN); signals[SOURCE_ADDED] = g_signal_new ("source-added", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, source_added), + 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN); signals[SOURCE_REMOVED] = g_signal_new ("source-removed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, source_removed), + 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_POINTER); signals[SOURCE_ENABLED] = g_signal_new ("source-enabled", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, source_enabled), + 0, NULL, NULL, NULL, G_TYPE_NONE, 2, E_TYPE_SOURCE, G_TYPE_BOOLEAN); signals[LOAD_COMPLETED] = g_signal_new ("load-completed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, load_completed), + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); signals[QUERY_COMPLETED] = g_signal_new ("query-completed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, query_completed), + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); signals[GOA_CLIENT_READY] = g_signal_new ("goa-client-ready", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GcalManagerClass, goa_client_ready), + 0, NULL, NULL, NULL, G_TYPE_NONE, 1, GOA_TYPE_CLIENT); } @@ -744,13 +737,13 @@ gcal_manager_client_ready_cb (GObject *source, GAsyncResult *result, gpointer user_data) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (GCAL_MANAGER (user_data)); + GcalManager *manager = GCAL_MANAGER (user_data); GError *error = NULL; - priv->goa_client = goa_client_new_finish (result, &error); - priv->goa_client_ready = TRUE; + manager->goa_client = goa_client_new_finish (result, &error); + manager->goa_client_ready = TRUE; - g_signal_emit (user_data, signals[GOA_CLIENT_READY], 0, priv->goa_client); + g_signal_emit (user_data, signals[GOA_CLIENT_READY], 0, manager->goa_client); if (error != NULL) { @@ -771,7 +764,7 @@ gcal_manager_init (GcalManager *self) static void gcal_manager_constructed (GObject *object) { - GcalManagerPrivate *priv; + GcalManager *manager; GList *sources, *l; GError *error = NULL; @@ -779,12 +772,12 @@ gcal_manager_constructed (GObject *object) G_OBJECT_CLASS (gcal_manager_parent_class)->constructed (object); - priv = gcal_manager_get_instance_private (GCAL_MANAGER (object)); + manager = GCAL_MANAGER (object); - priv->disabled_sources = g_settings_get_strv (priv->settings, "disabled-sources"); - priv->system_timezone = e_cal_util_get_system_timezone (); + manager->disabled_sources = g_settings_get_strv (manager->settings, "disabled-sources"); + manager->system_timezone = e_cal_util_get_system_timezone (); - priv->clients = g_hash_table_new_full ((GHashFunc) e_source_hash, (GEqualFunc) e_source_equal, + manager->clients = g_hash_table_new_full ((GHashFunc) e_source_hash, (GEqualFunc) e_source_equal, g_object_unref, (GDestroyNotify) free_unit_data); /* load GOA client */ @@ -793,18 +786,18 @@ gcal_manager_constructed (GObject *object) object); /* reading sources and schedule its connecting */ - priv->source_registry = e_source_registry_new_sync (NULL, &error); - if (priv->source_registry == NULL) + manager->source_registry = e_source_registry_new_sync (NULL, &error); + if (manager->source_registry == NULL) { g_warning ("Failed to access calendar configuration: %s", error->message); g_error_free (error); return; } - priv->credentials_prompter = e_credentials_prompter_new (priv->source_registry); + manager->credentials_prompter = e_credentials_prompter_new (manager->source_registry); /* First disable credentials prompt for all but calendar sources... */ - sources = e_source_registry_list_sources (priv->source_registry, NULL); + sources = e_source_registry_list_sources (manager->source_registry, NULL); for (l = sources; l != NULL; l = g_list_next (l)) { @@ -813,7 +806,7 @@ gcal_manager_constructed (GObject *object) /* Mark for skip also currently disabled sources */ if (!e_source_has_extension (source, E_SOURCE_EXTENSION_CALENDAR) && !e_source_has_extension (source, E_SOURCE_EXTENSION_COLLECTION)) - e_credentials_prompter_set_auto_prompt_disabled_for (priv->credentials_prompter, source, TRUE); + e_credentials_prompter_set_auto_prompt_disabled_for (manager->credentials_prompter, source, TRUE); else e_source_get_last_credentials_required_arguments (source, NULL, source_get_last_credentials_required_arguments_cb, object); @@ -821,11 +814,11 @@ gcal_manager_constructed (GObject *object) g_list_free_full (sources, g_object_unref); - credentials_provider = e_credentials_prompter_get_provider (priv->credentials_prompter); + credentials_provider = e_credentials_prompter_get_provider (manager->credentials_prompter); /* ...then enable credentials prompt for credential source of the calendar sources, which can be a collection source. */ - sources = e_source_registry_list_sources (priv->source_registry, E_SOURCE_EXTENSION_CALENDAR); + sources = e_source_registry_list_sources (manager->source_registry, E_SOURCE_EXTENSION_CALENDAR); for (l = sources; l != NULL; l = g_list_next (l)) { @@ -834,7 +827,7 @@ gcal_manager_constructed (GObject *object) cred_source = e_source_credentials_provider_ref_credentials_source (credentials_provider, source); if (cred_source && !e_source_equal (source, cred_source)) { - e_credentials_prompter_set_auto_prompt_disabled_for (priv->credentials_prompter, cred_source, FALSE); + e_credentials_prompter_set_auto_prompt_disabled_for (manager->credentials_prompter, cred_source, FALSE); if (e_source_get_connection_status (cred_source) == E_SOURCE_CONNECTION_STATUS_SSL_FAILED) { @@ -850,24 +843,24 @@ gcal_manager_constructed (GObject *object) /* The eds_credentials_prompter responses to REQUIRED and REJECTED reasons, the SSL_FAILED should be handled elsewhere. */ - g_signal_connect (priv->source_registry, "credentials-required", G_CALLBACK (source_credentials_required_cb), object); + g_signal_connect (manager->source_registry, "credentials-required", G_CALLBACK (source_credentials_required_cb), object); - e_credentials_prompter_process_awaiting_credentials (priv->credentials_prompter); + e_credentials_prompter_process_awaiting_credentials (manager->credentials_prompter); - g_signal_connect_swapped (priv->source_registry, "source-added", G_CALLBACK (load_source), object); - g_signal_connect_swapped (priv->source_registry, "source-removed", G_CALLBACK (remove_source), object); + g_signal_connect_swapped (manager->source_registry, "source-added", G_CALLBACK (load_source), object); + g_signal_connect_swapped (manager->source_registry, "source-removed", G_CALLBACK (remove_source), object); /* create data model */ - priv->e_data_model = e_cal_data_model_new (submit_thread_job); - priv->search_data_model = e_cal_data_model_new (submit_thread_job); + manager->e_data_model = e_cal_data_model_new (submit_thread_job); + manager->search_data_model = e_cal_data_model_new (submit_thread_job); - e_cal_data_model_set_expand_recurrences (priv->e_data_model, TRUE); - e_cal_data_model_set_timezone (priv->e_data_model, priv->system_timezone); - e_cal_data_model_set_expand_recurrences (priv->search_data_model, TRUE); - e_cal_data_model_set_timezone (priv->search_data_model, priv->system_timezone); + e_cal_data_model_set_expand_recurrences (manager->e_data_model, TRUE); + e_cal_data_model_set_timezone (manager->e_data_model, manager->system_timezone); + e_cal_data_model_set_expand_recurrences (manager->search_data_model, TRUE); + e_cal_data_model_set_timezone (manager->search_data_model, manager->system_timezone); - sources = e_source_registry_list_enabled (priv->source_registry, E_SOURCE_EXTENSION_CALENDAR); - priv->sources_at_launch = g_list_length (sources); + sources = e_source_registry_list_enabled (manager->source_registry, E_SOURCE_EXTENSION_CALENDAR); + manager->sources_at_launch = g_list_length (sources); for (l = sources; l != NULL; l = l->next) load_source (GCAL_MANAGER (object), l->data); @@ -877,31 +870,23 @@ gcal_manager_constructed (GObject *object) static void gcal_manager_finalize (GObject *object) { - GcalManagerPrivate *priv; + GcalManager *manager =GCAL_MANAGER (object); - priv = gcal_manager_get_instance_private (GCAL_MANAGER (object)); + g_clear_object (&manager->settings); + g_clear_object (&manager->goa_client); + g_clear_object (&manager->e_data_model); + g_clear_object (&manager->search_data_model); + g_clear_object (&manager->shell_search_data_model); - if (priv->settings != NULL) - g_object_unref (priv->settings); - g_strfreev (priv->disabled_sources); + g_strfreev (manager->disabled_sources); - if (priv->e_data_model != NULL) - g_object_unref (priv->e_data_model); - if (priv->search_data_model != NULL) - g_object_unref (priv->search_data_model); - - if (priv->search_view_data != NULL) + if (manager->search_view_data != NULL) { - g_free (priv->search_view_data->query); - g_free (priv->search_view_data); + g_free (manager->search_view_data->query); + g_free (manager->search_view_data); } - if (priv->shell_search_data_model != NULL) - g_object_unref (priv->shell_search_data_model); - if (priv->goa_client != NULL) - g_object_unref (priv->goa_client); - - g_hash_table_destroy (priv->clients); + g_hash_table_destroy (manager->clients); } static void @@ -910,16 +895,13 @@ gcal_manager_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (GCAL_MANAGER (object)); + GcalManager *self = GCAL_MANAGER (object); switch (property_id) { case PROP_SETTINGS: - if (priv->settings != NULL) - g_object_unref (priv->settings); - priv->settings = g_value_dup_object (value); + if (g_set_object (&self->settings, g_value_get_object (value))) + g_object_notify (object, "settings"); return; } @@ -932,14 +914,12 @@ gcal_manager_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (GCAL_MANAGER (object)); + GcalManager *self = GCAL_MANAGER (object); switch (property_id) { case PROP_SETTINGS: - g_value_set_object (value, priv->settings); + g_value_set_object (value, self->settings); return; } @@ -975,10 +955,7 @@ ESource* gcal_manager_get_source (GcalManager *manager, const gchar *uid) { - GcalManagerPrivate *priv; - priv = gcal_manager_get_instance_private (manager); - - return e_source_registry_ref_source (priv->source_registry, uid); + return e_source_registry_ref_source (manager->source_registry, uid); } /** @@ -992,14 +969,11 @@ gcal_manager_get_source (GcalManager *manager, GList* gcal_manager_get_sources (GcalManager *manager) { - GcalManagerPrivate *priv; GHashTableIter iter; gpointer key, value; GList *aux = NULL; - priv = gcal_manager_get_instance_private (manager); - - g_hash_table_iter_init (&iter, priv->clients); + g_hash_table_iter_init (&iter, manager->clients); while (g_hash_table_iter_next (&iter, &key, &value)) { GcalManagerUnit *unit = value; @@ -1021,10 +995,7 @@ gcal_manager_get_sources (GcalManager *manager) GList* gcal_manager_get_sources_connected (GcalManager *manager) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - return g_hash_table_get_keys (priv->clients); + return g_hash_table_get_keys (manager->clients); } /** @@ -1036,10 +1007,7 @@ gcal_manager_get_sources_connected (GcalManager *manager) ESource* gcal_manager_get_default_source (GcalManager *manager) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - return e_source_registry_ref_default_calendar (priv->source_registry); + return e_source_registry_ref_default_calendar (manager->source_registry); } /** @@ -1053,38 +1021,29 @@ void gcal_manager_set_default_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - e_source_registry_set_default_calendar (priv->source_registry, source); + e_source_registry_set_default_calendar (manager->source_registry, source); } icaltimezone* gcal_manager_get_system_timezone (GcalManager *manager) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - return priv->system_timezone; + return manager->system_timezone; } void gcal_manager_setup_shell_search (GcalManager *manager, ECalDataModelSubscriber *subscriber) { - GcalManagerPrivate *priv; - priv = gcal_manager_get_instance_private (manager); - - if (priv->shell_search_data_model == NULL) + if (manager->shell_search_data_model == NULL) { - priv->shell_search_data_model = e_cal_data_model_new (submit_thread_job); - g_signal_connect_swapped (priv->shell_search_data_model, "view-state-changed", G_CALLBACK (model_state_changed), manager); + manager->shell_search_data_model = e_cal_data_model_new (submit_thread_job); + g_signal_connect_swapped (manager->shell_search_data_model, "view-state-changed", G_CALLBACK (model_state_changed), manager); - e_cal_data_model_set_expand_recurrences (priv->shell_search_data_model, TRUE); - e_cal_data_model_set_timezone (priv->shell_search_data_model, priv->system_timezone); + e_cal_data_model_set_expand_recurrences (manager->shell_search_data_model, TRUE); + e_cal_data_model_set_timezone (manager->shell_search_data_model, manager->system_timezone); - priv->search_view_data = g_new0 (ViewStateData, 1); - priv->search_view_data->subscriber = subscriber; + manager->search_view_data = g_new0 (ViewStateData, 1); + manager->search_view_data->subscriber = subscriber; } } @@ -1099,17 +1058,15 @@ void gcal_manager_set_shell_search_query (GcalManager *manager, const gchar *query) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager); + manager->search_view_data->passed_start = FALSE; + manager->search_view_data->search_done = FALSE; + manager->search_view_data->sources_left = g_hash_table_size (manager->clients) - g_strv_length (manager->disabled_sources); - priv->search_view_data->passed_start = FALSE; - priv->search_view_data->search_done = FALSE; - priv->search_view_data->sources_left = g_hash_table_size (priv->clients) - g_strv_length (priv->disabled_sources); + if (manager->search_view_data->query != NULL) + g_free (manager->search_view_data->query); + manager->search_view_data->query = g_strdup (query); - if (priv->search_view_data->query != NULL) - g_free (priv->search_view_data->query); - priv->search_view_data->query = g_strdup (query); - - e_cal_data_model_set_filter (priv->shell_search_data_model, query); + e_cal_data_model_set_filter (manager->shell_search_data_model, query); } void @@ -1118,31 +1075,24 @@ gcal_manager_set_shell_search_subscriber (GcalManager *manager, time_t range_start, time_t range_end) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - e_cal_data_model_subscribe (priv->shell_search_data_model, subscriber, range_start, range_end); + e_cal_data_model_subscribe (manager->shell_search_data_model, subscriber, range_start, range_end); } gboolean gcal_manager_shell_search_done (GcalManager *manager) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager); - return priv->search_view_data->search_done; + return manager->search_view_data->search_done; } GList* gcal_manager_get_shell_search_events (GcalManager *manager) { - GcalManagerPrivate *priv; time_t range_start, range_end; GList *list = NULL; - priv = gcal_manager_get_instance_private (manager); - - e_cal_data_model_get_subscriber_range (priv->shell_search_data_model, priv->search_view_data->subscriber, + e_cal_data_model_get_subscriber_range (manager->shell_search_data_model, manager->search_view_data->subscriber, &range_start, &range_end); - e_cal_data_model_foreach_component (priv->shell_search_data_model, range_start, range_end, gather_components, &list); + e_cal_data_model_foreach_component (manager->shell_search_data_model, range_start, range_end, gather_components, &list); return list; } @@ -1152,10 +1102,7 @@ gcal_manager_set_subscriber (GcalManager *manager, time_t range_start, time_t range_end) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - e_cal_data_model_subscribe (priv->e_data_model, + e_cal_data_model_subscribe (manager->e_data_model, subscriber, range_start, range_end); } @@ -1166,10 +1113,7 @@ gcal_manager_set_search_subscriber (GcalManager *manager, time_t range_start, time_t range_end) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - e_cal_data_model_subscribe (priv->search_data_model, + e_cal_data_model_subscribe (manager->search_data_model, subscriber, range_start, range_end); } @@ -1187,10 +1131,7 @@ void gcal_manager_set_query (GcalManager *manager, const gchar *query) { - GcalManagerPrivate *priv; - - priv = gcal_manager_get_instance_private (manager); - e_cal_data_model_set_filter (priv->search_data_model, + e_cal_data_model_set_filter (manager->search_data_model, query != NULL ? query : "#t"); } @@ -1207,12 +1148,10 @@ gcal_manager_query_client_data (GcalManager *manager, ESource *source, const gchar *field) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; gchar *out; - priv = gcal_manager_get_instance_private (manager); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit == NULL) return NULL; @@ -1243,13 +1182,10 @@ gcal_manager_add_source (GcalManager *manager, const gchar *backend, const gchar *color) { - GcalManagerPrivate *priv; ESource *source; ESourceCalendar *extension; GError *error; - priv = gcal_manager_get_instance_private (manager); - source = e_source_new (NULL, NULL, NULL); extension = E_SOURCE_CALENDAR (e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR)); @@ -1262,7 +1198,7 @@ gcal_manager_add_source (GcalManager *manager, e_source_set_display_name (source, name); error = NULL; - e_source_registry_commit_source_sync (priv->source_registry, + e_source_registry_commit_source_sync (manager->source_registry, source, NULL, &error); @@ -1290,38 +1226,36 @@ void gcal_manager_enable_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; gchar **new_disabled_sources; gint i; - priv = gcal_manager_get_instance_private (manager); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit->enabled) return; unit->enabled = TRUE; - e_cal_data_model_add_client (priv->e_data_model, unit->client); - e_cal_data_model_add_client (priv->search_data_model, unit->client); - if (priv->shell_search_data_model != NULL) - e_cal_data_model_add_client (priv->shell_search_data_model, unit->client); + e_cal_data_model_add_client (manager->e_data_model, unit->client); + e_cal_data_model_add_client (manager->search_data_model, unit->client); + if (manager->shell_search_data_model != NULL) + e_cal_data_model_add_client (manager->shell_search_data_model, unit->client); /* remove source's uid from disabled_sources array */ - new_disabled_sources = g_new0 (gchar*, g_strv_length (priv->disabled_sources)); - for (i = 0; i < g_strv_length (priv->disabled_sources); i++) + new_disabled_sources = g_new0 (gchar*, g_strv_length (manager->disabled_sources)); + for (i = 0; i < g_strv_length (manager->disabled_sources); i++) { - if (g_strcmp0 (priv->disabled_sources[i], e_source_get_uid (source)) == 0) + if (g_strcmp0 (manager->disabled_sources[i], e_source_get_uid (source)) == 0) continue; - new_disabled_sources[i] = g_strdup (priv->disabled_sources[i]); + new_disabled_sources[i] = g_strdup (manager->disabled_sources[i]); } - g_strfreev (priv->disabled_sources); - priv->disabled_sources = new_disabled_sources; + g_strfreev (manager->disabled_sources); + manager->disabled_sources = new_disabled_sources; g_signal_emit (manager, signals[SOURCE_ENABLED], 0, source, TRUE); /* sync settings value */ - g_settings_set_strv (priv->settings, "disabled-sources", (const gchar * const *) priv->disabled_sources); + g_settings_set_strv (manager->settings, "disabled-sources", (const gchar * const *) manager->disabled_sources); } /** @@ -1335,39 +1269,37 @@ void gcal_manager_disable_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; gchar **new_disabled_sources; gint i; const gchar *source_uid; - priv = gcal_manager_get_instance_private (manager); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (!unit->enabled) return; source_uid = e_source_get_uid (source); unit->enabled = FALSE; - e_cal_data_model_remove_client (priv->e_data_model, source_uid); - e_cal_data_model_remove_client (priv->search_data_model, source_uid); - if (priv->shell_search_data_model != NULL) - e_cal_data_model_remove_client (priv->shell_search_data_model, source_uid); + e_cal_data_model_remove_client (manager->e_data_model, source_uid); + e_cal_data_model_remove_client (manager->search_data_model, source_uid); + if (manager->shell_search_data_model != NULL) + e_cal_data_model_remove_client (manager->shell_search_data_model, source_uid); /* add source's uid from disabled_sources array */ - new_disabled_sources = g_new0 (gchar*, g_strv_length (priv->disabled_sources) + 2); - for (i = 0; i < g_strv_length (priv->disabled_sources); i++) - new_disabled_sources[i] = g_strdup (priv->disabled_sources[i]); + new_disabled_sources = g_new0 (gchar*, g_strv_length (manager->disabled_sources) + 2); + for (i = 0; i < g_strv_length (manager->disabled_sources); i++) + new_disabled_sources[i] = g_strdup (manager->disabled_sources[i]); - new_disabled_sources[g_strv_length (priv->disabled_sources)] = g_strdup (source_uid); + new_disabled_sources[g_strv_length (manager->disabled_sources)] = g_strdup (source_uid); - g_strfreev (priv->disabled_sources); - priv->disabled_sources = new_disabled_sources; + g_strfreev (manager->disabled_sources); + manager->disabled_sources = new_disabled_sources; g_signal_emit (manager, signals[SOURCE_ENABLED], 0, source, FALSE); /* sync settings value */ - g_settings_set_strv (priv->settings, "disabled-sources", (const gchar * const *) priv->disabled_sources); + g_settings_set_strv (manager->settings, "disabled-sources", (const gchar * const *) manager->disabled_sources); } /** @@ -1381,13 +1313,11 @@ void gcal_manager_save_source (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GError *error; - priv = gcal_manager_get_instance_private (manager); error = NULL; - e_source_registry_commit_source_sync (priv->source_registry, source, NULL, &error); + e_source_registry_commit_source_sync (manager->source_registry, source, NULL, &error); if (error != NULL) { @@ -1401,11 +1331,9 @@ gboolean gcal_manager_source_enabled (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; - priv = gcal_manager_get_instance_private (manager); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit == NULL) return FALSE; return unit->enabled; @@ -1414,12 +1342,10 @@ gcal_manager_source_enabled (GcalManager *manager, void gcal_manager_refresh (GcalManager *manager) { - GcalManagerPrivate *priv; GList *clients; GList *l; - priv = gcal_manager_get_instance_private (manager); - clients = g_hash_table_get_values (priv->clients); + clients = g_hash_table_get_values (manager->clients); /* refresh clients */ for (l = clients; l != NULL; l = l->next) @@ -1442,11 +1368,9 @@ gboolean gcal_manager_is_client_writable (GcalManager *manager, ESource *source) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; - priv = gcal_manager_get_instance_private (manager); - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); if (unit == NULL) return FALSE; @@ -1459,15 +1383,11 @@ gcal_manager_create_event (GcalManager *manager, ESource *source, ECalComponent *component) { - GcalManagerPrivate *priv; - GcalManagerUnit *unit; icalcomponent *new_event_icalcomp; AsyncOpsData *data; - priv = gcal_manager_get_instance_private (manager); - - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); new_event_icalcomp = e_cal_component_get_icalcomponent (component); @@ -1478,7 +1398,7 @@ gcal_manager_create_event (GcalManager *manager, e_cal_client_create_object (unit->client, new_event_icalcomp, - priv->async_ops, + manager->async_ops, on_event_created, data); } @@ -1488,11 +1408,9 @@ gcal_manager_update_event (GcalManager *manager, ESource *source, ECalComponent *component) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; - priv = gcal_manager_get_instance_private (manager); - unit = (GcalManagerUnit*) g_hash_table_lookup (priv->clients, source); + unit = (GcalManagerUnit*) g_hash_table_lookup (manager->clients, source); e_cal_client_modify_object (unit->client, e_cal_component_get_icalcomponent (component), @@ -1507,20 +1425,17 @@ gcal_manager_remove_event (GcalManager *manager, ESource *source, ECalComponent *component) { - GcalManagerPrivate *priv; GcalManagerUnit *unit; ECalComponentId *id; - priv = gcal_manager_get_instance_private (manager); - - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); id = e_cal_component_get_id (component); e_cal_client_remove_object (unit->client, id->uid, id->rid, E_CAL_OBJ_MOD_THIS, - priv->async_ops, + manager->async_ops, on_event_removed, component); @@ -1533,7 +1448,6 @@ gcal_manager_move_event_to_source (GcalManager *manager, ESource *source, ESource *dest) { - GcalManagerPrivate *priv; ECalComponent *clone; icalcomponent *comp; GcalManagerUnit *unit; @@ -1542,11 +1456,10 @@ gcal_manager_move_event_to_source (GcalManager *manager, g_return_if_fail (GCAL_IS_MANAGER (manager)); - priv = gcal_manager_get_instance_private (manager); error = NULL; /* First, try to create the component on the destination source */ - unit = g_hash_table_lookup (priv->clients, dest); + unit = g_hash_table_lookup (manager->clients, dest); clone = e_cal_component_clone (component); comp = e_cal_component_get_icalcomponent (clone); @@ -1569,7 +1482,7 @@ gcal_manager_move_event_to_source (GcalManager *manager, * created, try to remove the old component. Data loss it the last * thing we want to happen here. */ - unit = g_hash_table_lookup (priv->clients, source); + unit = g_hash_table_lookup (manager->clients, source); id = e_cal_component_get_id (component); @@ -1577,7 +1490,7 @@ gcal_manager_move_event_to_source (GcalManager *manager, id->uid, id->rid, E_CAL_OBJ_MOD_THIS, - priv->async_ops, + manager->async_ops, &error); if (error) @@ -1603,39 +1516,34 @@ gcal_manager_get_events (GcalManager *manager, icaltimetype *start_date, icaltimetype *end_date) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager); time_t range_start, range_end; GList *list = NULL; - range_start = icaltime_as_timet_with_zone (*start_date, priv->system_timezone); - range_end = icaltime_as_timet_with_zone (*end_date, priv->system_timezone); + range_start = icaltime_as_timet_with_zone (*start_date, manager->system_timezone); + range_end = icaltime_as_timet_with_zone (*end_date, manager->system_timezone); - e_cal_data_model_foreach_component (priv->e_data_model, range_start, range_end, gather_components, &list); + e_cal_data_model_foreach_component (manager->e_data_model, range_start, range_end, gather_components, &list); return list; } gboolean gcal_manager_load_completed (GcalManager *manager) { - GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager); - return priv->sources_at_launch == 0; + return manager->sources_at_launch == 0; } GcalEventData* gcal_manager_get_event_from_shell_search (GcalManager *manager, const gchar *uuid) { - GcalManagerPrivate *priv; time_t range_start, range_end; GList *l, *list = NULL; GcalEventData *data, *new_data = NULL; gchar *cuuid; - priv = gcal_manager_get_instance_private (manager); - - e_cal_data_model_get_subscriber_range (priv->shell_search_data_model, priv->search_view_data->subscriber, + e_cal_data_model_get_subscriber_range (manager->shell_search_data_model, manager->search_view_data->subscriber, &range_start, &range_end); - e_cal_data_model_foreach_component (priv->shell_search_data_model, range_start, range_end, gather_components, &list); + e_cal_data_model_foreach_component (manager->shell_search_data_model, range_start, range_end, gather_components, &list); if (list != NULL) new_data = g_new0 (GcalEventData, 1); @@ -1662,23 +1570,15 @@ gcal_manager_get_event_from_shell_search (GcalManager *manager, gboolean gcal_manager_is_goa_client_ready (GcalManager *manager) { - GcalManagerPrivate *priv; - g_return_val_if_fail (GCAL_IS_MANAGER (manager), FALSE); - priv = gcal_manager_get_instance_private (manager); - - return priv->goa_client_ready; + return manager->goa_client_ready; } GoaClient* gcal_manager_get_goa_client (GcalManager *manager) { - GcalManagerPrivate *priv; - g_return_val_if_fail (GCAL_IS_MANAGER (manager), FALSE); - priv = gcal_manager_get_instance_private (manager); - - return priv->goa_client; + return manager->goa_client; } diff --git a/src/gcal-manager.h b/src/gcal-manager.h index 67a48b2b..f12e960b 100644 --- a/src/gcal-manager.h +++ b/src/gcal-manager.h @@ -28,33 +28,8 @@ G_BEGIN_DECLS #define GCAL_TYPE_MANAGER (gcal_manager_get_type ()) -#define GCAL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCAL_TYPE_MANAGER, GcalManager)) -#define GCAL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCAL_TYPE_MANAGER, GcalManagerClass)) -#define GCAL_IS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCAL_TYPE_MANAGER)) -#define GCAL_IS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCAL_TYPE_MANAGER)) -#define GCAL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCAL_TYPE_MANAGER, GcalManagerClass)) -typedef struct _GcalManager GcalManager; -typedef struct _GcalManagerClass GcalManagerClass; - -struct _GcalManager -{ - GObject parent; -}; - -struct _GcalManagerClass -{ - GObjectClass parent_class; - - /* signals */ - void (*source_activated) (GcalManager *manager, ESource *source, gboolean active); - void (*source_added) (GcalManager *manager, ESource *source, gboolean enabled); - void (*source_removed) (GcalManager *manager, ESource *source); - void (*source_enabled) (GcalManager *manager, ESource *source, gboolean enabled); - void (*load_completed) (GcalManager *manager); - void (*query_completed) (GcalManager *manager); - void (*goa_client_ready) (GcalManager *manager, GoaClient *client); -}; +G_DECLARE_FINAL_TYPE (GcalManager, gcal_manager, GCAL, MANAGER, GObject) typedef struct { @@ -62,8 +37,6 @@ typedef struct ECalComponent *event_component; } GcalEventData; -GType gcal_manager_get_type (void); - GcalManager* gcal_manager_new_with_settings (GSettings *settings); ESource* gcal_manager_get_source (GcalManager *manager,