aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-05-14 18:00:17 +0800
committerMilan Crha <mcrha@redhat.com>2013-05-14 18:00:17 +0800
commit16bf152272b67115380340c617e397d8e869334c (patch)
tree6dd43bf4dbc19bb00c955ce5f9a1462848076a4d
parentf0151c785648b44850b46fa50336126c282fcc58 (diff)
downloadgsoc2013-evolution-16bf152272b67115380340c617e397d8e869334c.tar.gz
gsoc2013-evolution-16bf152272b67115380340c617e397d8e869334c.tar.zst
gsoc2013-evolution-16bf152272b67115380340c617e397d8e869334c.zip
Bug #699980 - Calendar delete does not remove events from view
-rw-r--r--e-util/e-source-selector.c5
-rw-r--r--modules/calendar/e-cal-shell-sidebar.c4
-rw-r--r--modules/calendar/e-memo-shell-sidebar.c4
-rw-r--r--modules/calendar/e-task-shell-sidebar.c4
4 files changed, 17 insertions, 0 deletions
diff --git a/e-util/e-source-selector.c b/e-util/e-source-selector.c
index f9d001a4f0..07a375448e 100644
--- a/e-util/e-source-selector.c
+++ b/e-util/e-source-selector.c
@@ -1638,6 +1638,11 @@ e_source_selector_unselect_source (ESourceSelector *selector,
/* Make sure the ESource is in our tree model. */
source_index = selector->priv->source_index;
reference = g_hash_table_lookup (source_index, source);
+
+ /* can be NULL when the source was just removed */
+ if (!reference)
+ return;
+
g_return_if_fail (gtk_tree_row_reference_valid (reference));
class = E_SOURCE_SELECTOR_GET_CLASS (selector);
diff --git a/modules/calendar/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c
index 632a3eb43c..053ee968b7 100644
--- a/modules/calendar/e-cal-shell-sidebar.c
+++ b/modules/calendar/e-cal-shell-sidebar.c
@@ -424,6 +424,10 @@ cal_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_cal_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (cal_shell_sidebar_row_changed_cb),
shell_sidebar);
diff --git a/modules/calendar/e-memo-shell-sidebar.c b/modules/calendar/e-memo-shell-sidebar.c
index 85a105c600..47abef724e 100644
--- a/modules/calendar/e-memo-shell-sidebar.c
+++ b/modules/calendar/e-memo-shell-sidebar.c
@@ -422,6 +422,10 @@ memo_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_memo_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (memo_shell_sidebar_row_changed_cb),
shell_sidebar);
diff --git a/modules/calendar/e-task-shell-sidebar.c b/modules/calendar/e-task-shell-sidebar.c
index 800943627c..288e92dc19 100644
--- a/modules/calendar/e-task-shell-sidebar.c
+++ b/modules/calendar/e-task-shell-sidebar.c
@@ -422,6 +422,10 @@ task_shell_sidebar_restore_state_cb (EShellWindow *shell_window,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
g_signal_connect_swapped (
+ registry, "source-removed",
+ G_CALLBACK (e_task_shell_sidebar_remove_source), shell_sidebar);
+
+ g_signal_connect_swapped (
model, "row-changed",
G_CALLBACK (task_shell_sidebar_row_changed_cb),
shell_sidebar);