diff options
Diffstat (limited to 'modules/calendar/e-cal-shell-sidebar.c')
-rw-r--r-- | modules/calendar/e-cal-shell-sidebar.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/modules/calendar/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c index 633942df98..468db23c40 100644 --- a/modules/calendar/e-cal-shell-sidebar.c +++ b/modules/calendar/e-cal-shell-sidebar.c @@ -131,7 +131,7 @@ cal_shell_sidebar_backend_died_cb (ECalShellSidebar *cal_shell_sidebar, shell_content = e_shell_view_get_shell_content (shell_view); source = e_client_get_source (E_CLIENT (client)); - uid = e_source_peek_uid (source); + uid = e_source_get_uid (source); g_object_ref (source); @@ -167,7 +167,7 @@ cal_shell_sidebar_backend_error_cb (ECalShellSidebar *cal_shell_sidebar, E_ALERT_SINK (shell_content), "calendar:backend-error", e_source_group_peek_name (source_group), - e_source_peek_name (source), message, NULL); + e_source_get_display_name (source), message, NULL); } static void @@ -281,7 +281,7 @@ cal_shell_sidebar_client_opened_cb (GObject *source_object, case E_CLIENT_ERROR_BUSY: g_warning ( "%s: Cannot open '%s', it's busy (%s)", - G_STRFUNC, e_source_peek_name (source), + G_STRFUNC, e_source_get_display_name (source), error->message); g_clear_error (&error); return; @@ -422,7 +422,7 @@ cal_shell_sidebar_set_default (ECalShellSidebar *cal_shell_sidebar, priv->loading_default_client = NULL; } - uid = e_source_peek_uid (source); + uid = e_source_get_uid (source); client = g_hash_table_lookup (priv->client_table, uid); /* If we already have an open connection for @@ -456,20 +456,22 @@ cal_shell_sidebar_row_changed_cb (ECalShellSidebar *cal_shell_sidebar, ESource *source; selector = e_cal_shell_sidebar_get_selector (cal_shell_sidebar); - source = e_source_selector_get_source_by_path (selector, tree_path); + source = e_source_selector_ref_source_by_path (selector, tree_path); /* XXX This signal gets emitted a lot while the model is being * rebuilt, during which time we won't get a valid ESource. * ESourceSelector should probably block this signal while * rebuilding the model, but we'll be forgiving and not * emit a warning. */ - if (!E_IS_SOURCE (source)) + if (source == NULL) return; if (e_source_selector_source_is_selected (selector, source)) e_cal_shell_sidebar_add_source (cal_shell_sidebar, source); else e_cal_shell_sidebar_remove_source (cal_shell_sidebar, source); + + g_object_unref (source); } static void @@ -494,7 +496,7 @@ cal_shell_sidebar_selection_changed_cb (ECalShellSidebar *cal_shell_sidebar, for (iter = list; iter != NULL; iter = iter->next) { ESource *source = iter->data; - iter->data = (gpointer) e_source_peek_uid (source); + iter->data = (gpointer) e_source_get_uid (source); g_object_unref (source); } @@ -510,11 +512,13 @@ cal_shell_sidebar_primary_selection_changed_cb (ECalShellSidebar *cal_shell_side { ESource *source; - source = e_source_selector_get_primary_selection (selector); + source = e_source_selector_ref_primary_selection (selector); if (source == NULL) return; cal_shell_sidebar_set_default (cal_shell_sidebar, source); + + g_object_unref (source); } static void @@ -816,17 +820,20 @@ cal_shell_sidebar_check_state (EShellSidebar *shell_sidebar) gboolean can_delete = FALSE; gboolean is_system = FALSE; gboolean refresh_supported = FALSE; + gboolean has_primary_source = FALSE; guint32 state = 0; cal_shell_sidebar = E_CAL_SHELL_SIDEBAR (shell_sidebar); selector = e_cal_shell_sidebar_get_selector (cal_shell_sidebar); - source = e_source_selector_get_primary_selection (selector); + source = e_source_selector_ref_primary_selection (selector); if (source != NULL) { ECalClient *client; const gchar *uri; const gchar *delete; + has_primary_source = TRUE; + uri = e_source_peek_relative_uri (source); is_system = (uri == NULL || strcmp (uri, "system") == 0); @@ -836,12 +843,14 @@ cal_shell_sidebar_check_state (EShellSidebar *shell_sidebar) client = g_hash_table_lookup ( cal_shell_sidebar->priv->client_table, - e_source_peek_uid (source)); + e_source_get_uid (source)); refresh_supported = client && e_client_check_refresh_supported (E_CLIENT (client)); + + g_object_unref (source); } - if (source != NULL) + if (has_primary_source) state |= E_CAL_SHELL_SIDEBAR_HAS_PRIMARY_SOURCE; if (can_delete) state |= E_CAL_SHELL_SIDEBAR_CAN_DELETE_PRIMARY_SOURCE; @@ -870,8 +879,7 @@ cal_shell_sidebar_client_removed (ECalShellSidebar *cal_shell_sidebar, NULL, NULL, cal_shell_sidebar); source = e_client_get_source (E_CLIENT (client)); - uid = e_source_peek_uid (source); - g_return_if_fail (uid != NULL); + uid = e_source_get_uid (source); g_hash_table_remove (client_table, uid); e_source_selector_unselect_source (selector, source); @@ -1069,7 +1077,7 @@ e_cal_shell_sidebar_add_source (ECalShellSidebar *cal_shell_sidebar, default_client = cal_shell_sidebar->priv->default_client; selector = e_cal_shell_sidebar_get_selector (cal_shell_sidebar); - uid = e_source_peek_uid (source); + uid = e_source_get_uid (source); client = g_hash_table_lookup (client_table, uid); if (client != NULL) @@ -1080,7 +1088,7 @@ e_cal_shell_sidebar_add_source (ECalShellSidebar *cal_shell_sidebar, const gchar *default_uid; default_source = e_client_get_source (E_CLIENT (default_client)); - default_uid = e_source_peek_uid (default_source); + default_uid = e_source_get_uid (default_source); if (g_strcmp0 (uid, default_uid) == 0) client = g_object_ref (default_client); @@ -1146,7 +1154,7 @@ e_cal_shell_sidebar_remove_source (ECalShellSidebar *cal_shell_sidebar, client_table = cal_shell_sidebar->priv->client_table; - uid = e_source_peek_uid (source); + uid = e_source_get_uid (source); client = g_hash_table_lookup (client_table, uid); if (client == NULL) |