diff --git a/src/gcal-manager.c b/src/gcal-manager.c index 3fe43abc..ae1dd56e 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -512,12 +512,38 @@ gcal_manager_new (void) return GCAL_MANAGER (g_object_new (GCAL_TYPE_MANAGER, NULL)); } -GtkListStore* -gcal_manager_get_sources_model (GcalManager *manager) +/** + * gcal_manager_get_sources: + * @manager: + * + * Retrieve a list of the sources used in the application. + * + * Returns: (Transfer full) a {@link GList} object + * to be freed with g_list_free() + **/ +GList* +gcal_manager_get_sources (GcalManager *manager) { - /* FIXME: stub code, since we don't keep a calendars list-store - anymore */ - return NULL; + GcalManagerPrivate *priv; + + priv = gcal_manager_get_instance_private (manager); + return g_hash_table_get_keys (priv->clients); +} + +/** + * gcal_manager_get_default_source: + * @manager: App singleton {@link GcalManager} instance + * + * Returns: (Transfer full): an {@link ESource} object. Free with g_object_unref(). + **/ +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); } icaltimezone* @@ -634,23 +660,6 @@ gcal_manager_add_source (GcalManager *manager, return e_source_dup_uid (source); } -gchar* -gcal_manager_get_default_source (GcalManager *manager) -{ - GcalManagerPrivate *priv; - - ESource *edefault; - gchar *source_uid; - - priv = gcal_manager_get_instance_private (manager); - - edefault = e_source_registry_ref_default_calendar (priv->source_registry); - source_uid = e_source_dup_uid (edefault); - - g_object_unref (edefault); - return source_uid; -} - void gcal_manager_refresh (GcalManager *manager) { diff --git a/src/gcal-manager.h b/src/gcal-manager.h index bf0cf933..baa0e3ee 100644 --- a/src/gcal-manager.h +++ b/src/gcal-manager.h @@ -22,8 +22,6 @@ #include "e-cal-data-model.h" -#include - #include G_BEGIN_DECLS @@ -62,7 +60,9 @@ GType gcal_manager_get_type (void); GcalManager* gcal_manager_new (void); -GtkListStore* gcal_manager_get_sources_model (GcalManager *manager); +GList* gcal_manager_get_sources (GcalManager *manager); + +ESource* gcal_manager_get_default_source (GcalManager *manager); icaltimezone* gcal_manager_get_system_timezone (GcalManager *manager); @@ -84,8 +84,6 @@ gchar* gcal_manager_add_source (GcalManager *manager const gchar *backend, const gchar *color); -gchar* gcal_manager_get_default_source (GcalManager *manager); - void gcal_manager_refresh (GcalManager *manager); gboolean gcal_manager_is_client_writable (GcalManager *manager, diff --git a/src/gcal-window.c b/src/gcal-window.c index aee0ab22..8ed19d5a 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -524,8 +524,6 @@ prepare_new_event_widget (GcalWindow *window) { GcalWindowPrivate *priv; - gchar *uid; - struct tm tm_date; gchar start[64]; gchar *title_date; @@ -544,16 +542,6 @@ prepare_new_event_widget (GcalWindow *window) gcal_new_event_widget_set_title (new_widget, title_date); g_free (title_date); - /* FIXME: do this somehow since GcalManager doesn't keep - a list store of calendars anymore, and this is a stub method */ - gcal_new_event_widget_set_calendars ( - new_widget, - GTK_TREE_MODEL (gcal_manager_get_sources_model (priv->manager))); - - uid = gcal_manager_get_default_source (priv->manager); - gcal_new_event_widget_set_default_calendar (new_widget, uid); - g_free (uid); - /* clear entry */ widget = gcal_new_event_widget_get_entry (new_widget); gtk_entry_set_text (GTK_ENTRY (widget), ""); @@ -688,7 +676,7 @@ create_event (gpointer user_data, GcalNewEventWidget *new_widget; - gchar *uid; + ESource *source; gchar *summary; priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data)); @@ -697,16 +685,16 @@ create_event (gpointer user_data, if (widget == gcal_new_event_widget_get_details_button (new_widget)) priv->open_edit_dialog = TRUE; - uid = gcal_new_event_widget_get_calendar_uid (new_widget); + source = gcal_manager_get_default_source (priv->manager); summary = gcal_new_event_widget_get_summary (new_widget); /* create the event */ gcal_manager_create_event (priv->manager, - uid, summary, + e_source_get_uid (source), summary, priv->event_creation_data->start_date, priv->event_creation_data->end_date); - g_free (uid); + g_object_unref (source); g_free (summary); /* reset and hide */ set_new_event_mode (GCAL_WINDOW (user_data), FALSE);