87 lines
2.8 KiB
Diff
87 lines
2.8 KiB
Diff
|
--- evolution-2.9.3/calendar/gui/e-meeting-list-view.c.meeting-list-view 2006-12-11 23:13:47.000000000 -0500
|
||
|
+++ evolution-2.9.3/calendar/gui/e-meeting-list-view.c 2006-12-11 23:14:17.000000000 -0500
|
||
|
@@ -623,18 +623,45 @@
|
||
|
|
||
|
}
|
||
|
|
||
|
+void
|
||
|
+attendee_added_cb (EMeetingStore *store, GtkTreePath *path,
|
||
|
+ GtkTreeIter *iter, EMeetingListView *view)
|
||
|
+{
|
||
|
+ EMeetingAttendee *attendee;
|
||
|
+ gint row;
|
||
|
+
|
||
|
+ /* Add the new attendee to the name selector. */
|
||
|
+ row = gtk_tree_path_get_indices (path) [0];
|
||
|
+ attendee = e_meeting_store_find_attendee_at_row (store, row);
|
||
|
+ e_meeting_list_view_add_attendee_to_name_selector (view, attendee);
|
||
|
+}
|
||
|
+
|
||
|
+void
|
||
|
+attendee_deleted_cb (EMeetingStore *store, GtkTreePath *path,
|
||
|
+ EMeetingListView *view)
|
||
|
+{
|
||
|
+ EMeetingAttendee *attendee;
|
||
|
+ gint row;
|
||
|
+
|
||
|
+ /* Remove the old attendee from the name selector. */
|
||
|
+ row = gtk_tree_path_get_indices (path) [0];
|
||
|
+ attendee = e_meeting_store_find_attendee_at_row (store, row);
|
||
|
+ e_meeting_list_view_remove_attendee_from_name_selector (view, attendee);
|
||
|
+}
|
||
|
|
||
|
EMeetingListView *
|
||
|
e_meeting_list_view_new (EMeetingStore *store)
|
||
|
{
|
||
|
- EMeetingListView *view = g_object_new (E_TYPE_MEETING_LIST_VIEW, NULL);
|
||
|
+ EMeetingListView *view;
|
||
|
GtkTreeSelection *selection;
|
||
|
|
||
|
- if (view) {
|
||
|
- view->priv->store = store;
|
||
|
- gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store));
|
||
|
- build_table (view);
|
||
|
- }
|
||
|
+ view = g_object_new (E_TYPE_MEETING_LIST_VIEW, NULL);
|
||
|
+ view->priv->store = store;
|
||
|
+ gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store));
|
||
|
+ build_table (view);
|
||
|
+
|
||
|
+ g_signal_connect (store, "row-inserted", G_CALLBACK (attendee_added_cb), view);
|
||
|
+ g_signal_connect (store, "row-deleted", G_CALLBACK (attendee_deleted_cb), view);
|
||
|
|
||
|
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
|
||
|
g_signal_connect (selection, "changed", G_CALLBACK (row_activated_cb), view);
|
||
|
--- evolution-2.9.3/calendar/gui/e-meeting-store.c.meeting-list-view 2006-12-04 10:44:42.000000000 -0500
|
||
|
+++ evolution-2.9.3/calendar/gui/e-meeting-store.c 2006-12-11 23:14:17.000000000 -0500
|
||
|
@@ -794,14 +794,13 @@
|
||
|
}
|
||
|
|
||
|
if (row != -1) {
|
||
|
-
|
||
|
- g_ptr_array_remove_index (store->priv->attendees, row);
|
||
|
- g_object_unref (attendee);
|
||
|
-
|
||
|
path = gtk_tree_path_new ();
|
||
|
gtk_tree_path_append_index (path, row);
|
||
|
gtk_tree_model_row_deleted (GTK_TREE_MODEL (store), path);
|
||
|
gtk_tree_path_free (path);
|
||
|
+
|
||
|
+ g_ptr_array_remove_index (store->priv->attendees, row);
|
||
|
+ g_object_unref (attendee);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -815,10 +814,10 @@
|
||
|
|
||
|
for (i = 0; i < store->priv->attendees->len; i++) {
|
||
|
EMeetingAttendee *attendee = g_ptr_array_index (store->priv->attendees, i);
|
||
|
- g_object_unref (attendee);
|
||
|
|
||
|
gtk_tree_model_row_deleted (GTK_TREE_MODEL (store), path);
|
||
|
gtk_tree_path_next (path);
|
||
|
+ g_object_unref (attendee);
|
||
|
}
|
||
|
|
||
|
g_ptr_array_set_size (store->priv->attendees, 0);
|