aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/task-page.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs/task-page.c')
-rw-r--r--calendar/gui/dialogs/task-page.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index c8c21082fe..5425781650 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -406,6 +406,8 @@ sensitize_widgets (TaskPage *tpage)
gtk_widget_set_sensitive (priv->organizer, !read_only);
gtk_widget_set_sensitive (priv->add, (!read_only && sens));
+ gtk_widget_set_sensitive (priv->edit, (!read_only && sens));
+ e_meeting_list_view_set_editable (priv->list_view, (!read_only && sens));
gtk_widget_set_sensitive (priv->remove, (!read_only && sens));
gtk_widget_set_sensitive (priv->invite, (!read_only && sens));
gtk_widget_set_sensitive (GTK_WIDGET (priv->list_view), !read_only);
@@ -684,6 +686,7 @@ task_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS))
gtk_widget_set_sensitive (priv->invite, FALSE);
gtk_widget_set_sensitive (priv->add, FALSE);
+ gtk_widget_set_sensitive (priv->edit, FALSE);
gtk_widget_set_sensitive (priv->remove, FALSE);
priv->user_org = FALSE;
}
@@ -978,6 +981,25 @@ add_clicked_cb (GtkButton *btn, TaskPage *page)
e_meeting_list_view_edit (page->priv->list_view, attendee);
}
+edit_clicked_cb (GtkButton *btn, TaskPage *tpage)
+{
+ TaskPagePrivate *priv;
+ EMeetingAttendee *attendee;
+ GtkTreePath *path = NULL;
+ GtkTreeViewColumn *focus_col;
+ gint row = 0;
+
+ priv = tpage->priv;
+
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->list_view), &path, NULL);
+ g_return_if_fail (path != NULL);
+
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->list_view), &path, &focus_col);
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (priv->list_view), path, focus_col, TRUE);
+ gtk_tree_path_free (path);
+}
+
+
static gboolean
existing_attendee (EMeetingAttendee *ia, ECalComponent *comp)
{
@@ -1146,6 +1168,7 @@ attendee_added_cb (EMeetingListView *emlv, EMeetingAttendee *ia, gpointer user_d
gtk_widget_set_sensitive (priv->invite, FALSE);
gtk_widget_set_sensitive (priv->add, FALSE);
+ gtk_widget_set_sensitive (priv->edit, FALSE);
}
}
}
@@ -1181,7 +1204,7 @@ enum {
static EPopupItem context_menu_items[] = {
{ E_POPUP_ITEM, "10.delete", N_("_Remove"), popup_delete_cb, NULL, GTK_STOCK_REMOVE, ATTENDEE_CAN_DELETE },
- { E_POPUP_ITEM, "15.add", N_("_Add "), popup_add_cb, NULL, GTK_STOCK_ADD },
+ { E_POPUP_ITEM, "15.add", N_("_Add "), popup_add_cb, NULL, GTK_STOCK_ADD, ATTENDEE_CAN_ADD },
};
static void
@@ -1410,6 +1433,7 @@ get_widgets (TaskPage *tpage)
priv->organizer = GW ("organizer");
priv->invite = GW ("invite");
priv->add = GW ("add-attendee");
+ priv->edit = GW ("edit-attendee");
priv->remove = GW ("remove-attendee");
priv->list_box = GW ("list-box");
priv->calendar_label = GW ("group-label");
@@ -1598,7 +1622,7 @@ field_changed_cb (GtkWidget *widget, gpointer data)
priv = tpage->priv;
if (!priv->updating)
- comp_editor_page_notify_changed (COMP_EDITOR_PAGE (tpage));
+ comp_editor_page_notify_changed (COMP_EDITOR_PAGE (tpage), 0);
}
static void
@@ -1757,6 +1781,9 @@ init_widgets (TaskPage *tpage)
/* Add attendee button */
g_signal_connect (priv->add, "clicked", G_CALLBACK (add_clicked_cb), tpage);
+ /* Edit attendee button */
+ g_signal_connect (priv->edit, "clicked", G_CALLBACK (edit_clicked_cb), tpage);
+
/* Remove attendee button */
g_signal_connect (priv->remove, "clicked", G_CALLBACK (remove_clicked_cb), tpage);