aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/task-details-page.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2001-07-03 03:21:49 +0800
committerJP Rosevear <jpr@src.gnome.org>2001-07-03 03:21:49 +0800
commitb4e780fd75795ff4218a369075a3feb9bc2fb3ce (patch)
treec901d6cc187458ea015185219ab962e070cbcbb5 /calendar/gui/dialogs/task-details-page.c
parente28ff48d57c7535b099fe9d4d7544c6b4ec360ec (diff)
downloadgsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar.gz
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar.bz2
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar.lz
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar.xz
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.tar.zst
gsoc2013-evolution-b4e780fd75795ff4218a369075a3feb9bc2fb3ce.zip
implement
2001-07-02 JP Rosevear <jpr@ximian.com> * gui/e-itip-control.c (send_freebusy): implement * cal-util/cal-component.c (set_attendee_list): add the delto property rather than the delfrom property twice * gui/dialogs/task-editor.c (task_editor_edit_comp): show delegation info if appropriate (delegate_task_cmd): delegate command (cancel_task_cmd): cancel command (refresh_task_cmd): refresh command * gui/dialogs/task-details-page.c: Load new widgets (task_details_page_show_delegation): show/hide delegation info widgets * gui/dialogs/task-details-page.h: new proto * gui/dialogs/event-editor.c (event_editor_edit_comp): free attendee list when finished * gui/dialogs/comp-editor.c (setup_widgets): explicitly show the widgets, update pixmaps after the verbs have been added (comp_editor_focus): don't do a show all svn path=/trunk/; revision=10697
Diffstat (limited to 'calendar/gui/dialogs/task-details-page.c')
-rw-r--r--calendar/gui/dialogs/task-details-page.c104
1 files changed, 103 insertions, 1 deletions
diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c
index 2e4a5ddab1..885fce3409 100644
--- a/calendar/gui/dialogs/task-details-page.c
+++ b/calendar/gui/dialogs/task-details-page.c
@@ -54,6 +54,13 @@ struct _TaskDetailsPagePrivate {
GtkWidget *url;
+ GtkWidget *organizer;
+ GtkWidget *organizer_lbl;
+ GtkWidget *delegated_to;
+ GtkWidget *delegated_to_lbl;
+ GtkWidget *delegated_from;
+ GtkWidget *delegated_from_lbl;
+
gboolean updating;
};
@@ -215,7 +222,9 @@ task_details_page_fill_widgets (CompEditorPage *page, CalComponent *comp)
{
TaskDetailsPage *tdpage;
TaskDetailsPagePrivate *priv;
+ GSList *list;
CalComponentText text;
+ CalComponentOrganizer organizer;
const char *url;
CompEditorPageDates dates;
@@ -239,6 +248,23 @@ task_details_page_fill_widgets (CompEditorPage *page, CalComponent *comp)
cal_component_get_url (comp, &url);
e_dialog_editable_set (priv->url, url);
+ /* Delegation */
+ cal_component_get_organizer (comp, &organizer);
+ if (organizer.value)
+ e_dialog_editable_set (priv->organizer, organizer.value);
+
+ cal_component_get_attendee_list (comp, &list);
+ if (list != NULL) {
+ CalComponentAttendee *attendee;
+
+ attendee = list->data;
+ if (attendee->delto)
+ e_dialog_editable_set (priv->delegated_to, attendee->delto);
+ if (attendee->delfrom)
+ e_dialog_editable_set (priv->delegated_from, attendee->delfrom);
+ }
+ cal_component_free_attendee_list (list);
+
priv->updating = FALSE;
}
@@ -248,7 +274,10 @@ task_details_page_fill_component (CompEditorPage *page, CalComponent *comp)
{
TaskDetailsPage *tdpage;
TaskDetailsPagePrivate *priv;
+ GSList list;
CalComponentDateTime date;
+ CalComponentOrganizer organizer;
+ CalComponentAttendee attendee;
time_t t;
char *url;
@@ -274,6 +303,31 @@ task_details_page_fill_component (CompEditorPage *page, CalComponent *comp)
cal_component_set_url (comp, url);
if (url)
g_free (url);
+
+ /* Delegation */
+ organizer.value = e_dialog_editable_get (priv->organizer);
+ organizer.sentby = NULL;
+ organizer.cn = NULL;
+ organizer.language = NULL;
+ cal_component_set_organizer (comp, &organizer);
+ attendee.value = e_dialog_editable_get (priv->delegated_to);
+ attendee.member = NULL;
+ attendee.cutype = CAL_COMPONENT_CUTYPE_INDIVIDUAL;
+ attendee.role = CAL_COMPONENT_ROLE_REQUIRED;
+ attendee.status = CAL_COMPONENT_PARTSTAT_NEEDSACTION;
+ attendee.rsvp = TRUE;
+ attendee.delto = e_dialog_editable_get (priv->delegated_to);
+ attendee.delfrom = NULL;
+ attendee.sentby = NULL;
+ attendee.cn = NULL;
+ attendee.language = NULL;
+ list.data = &attendee;
+ list.next = NULL;
+ cal_component_set_attendee_list (comp, &list);
+ g_free ((char *)organizer.value);
+ g_free ((char *)attendee.value);
+ g_free ((char *)attendee.delto);
+ g_free ((char *)attendee.delfrom);
}
/* set_summary handler for the task page */
@@ -334,13 +388,26 @@ get_widgets (TaskDetailsPage *tdpage)
priv->url = GW ("url");
+ priv->organizer = GW ("organizer");
+ priv->organizer_lbl = GW ("organizer-label");
+ priv->delegated_to = GW ("delegated-to");
+ priv->delegated_to_lbl = GW ("delegated-to-label");
+ priv->delegated_from = GW ("delegated-from");
+ priv->delegated_from_lbl = GW ("delegated-from-label");
+
#undef GW
return (priv->summary
&& priv->date_time
&& priv->completed_date
&& priv->completed_timezone
- && priv->url);
+ && priv->url
+ && priv->organizer
+ && priv->organizer_lbl
+ && priv->delegated_to
+ && priv->delegated_to_lbl
+ && priv->delegated_from
+ && priv->delegated_from_lbl);
}
/* Callback used when the start or end date widgets change. We check that the
@@ -400,6 +467,14 @@ init_widgets (TaskDetailsPage *tdpage)
/* URL */
gtk_signal_connect (GTK_OBJECT (priv->url), "changed",
GTK_SIGNAL_FUNC (field_changed_cb), tdpage);
+
+ /* Delegation */
+ gtk_signal_connect (GTK_OBJECT (priv->organizer), "changed",
+ GTK_SIGNAL_FUNC (field_changed_cb), tdpage);
+
+ gtk_signal_connect (GTK_OBJECT (priv->delegated_to), "changed",
+ GTK_SIGNAL_FUNC (field_changed_cb), tdpage);
+
}
@@ -461,6 +536,33 @@ task_details_page_new (void)
return tdpage;
}
+void
+task_details_page_show_delegation (TaskDetailsPage *tdpage, gboolean show)
+{
+ TaskDetailsPagePrivate *priv;
+
+ priv = tdpage->priv;
+
+ if (show) {
+ gtk_widget_show (priv->organizer);
+ gtk_widget_show (priv->organizer_lbl);
+ gtk_widget_show (priv->delegated_to);
+ gtk_widget_show (priv->delegated_to_lbl);
+ gtk_widget_show (priv->delegated_from);
+ gtk_widget_show (priv->delegated_from_lbl);
+ comp_editor_page_notify_needs_send (COMP_EDITOR_PAGE (tdpage));
+ } else {
+ gtk_widget_hide (priv->organizer);
+ gtk_widget_hide (priv->organizer_lbl);
+ gtk_widget_hide (priv->delegated_to);
+ gtk_widget_hide (priv->delegated_to_lbl);
+ gtk_widget_hide (priv->delegated_from);
+ gtk_widget_hide (priv->delegated_from_lbl);
+ }
+
+// gtk_widget_queue_draw (priv->main);
+}
+
GtkWidget *task_details_page_create_date_edit (void);
GtkWidget *