aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog26
-rw-r--r--calendar/gui/dialogs/comp-editor.c16
-rw-r--r--calendar/gui/dialogs/event-page.c7
-rw-r--r--calendar/gui/dialogs/recur-comp.c7
-rw-r--r--calendar/gui/dialogs/recur-comp.h3
-rw-r--r--calendar/gui/e-cal-model-calendar.c2
-rw-r--r--calendar/gui/e-day-view.c12
-rw-r--r--calendar/gui/e-week-view.c4
8 files changed, 59 insertions, 18 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index a6d6886dac..877663201d 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,29 @@
+2005-06-22 Chenthill Palanisamy <pchenthill@novell.com>
+
+ * gui/dialogs/comp-editor.c
+ (save_comp): Commit the sequence all the fields event if
+ the delegator is delegating a paticular instance.
+ (prompt_to_save_changes): Send FALSE to recur_comp_dialog
+ for last argument.
+ (response_cb): Send the delegate as true if the
+ event is being delegated.
+ (delete_event_cb),(set_attendees_for_delegation): removed the warning.
+ * gui/dialogs/event-page.c: (sensitize_widgets),
+ (event_page_fill_widgets): Do not sensitize the send options
+ button if the item is being delegated.
+ * gui/dialogs/recur-comp.c: (recur_component_dialog):
+ * gui/dialogs/recur-comp.h: Added a new boolean argument
+ to recurrence dialog to indicate the item is delegated.
+ * gui/e-cal-model-calendar.c: (ecmc_set_value_at):
+ * gui/e-day-view.c: (e_day_view_finish_long_event_resize),
+ (e_day_view_finish_resize), (e_day_view_change_event_time),
+ (e_day_view_on_editing_stopped),
+ (e_day_view_on_top_canvas_drag_data_received),
+ (e_day_view_on_main_canvas_drag_data_received):
+ * gui/e-week-view.c: (e_week_view_change_event_time),
+ (e_week_view_on_editing_stopped): Send FALSE to delegate
+ if the delegate in the call recur_component_dialog.
+
2005-06-20 Chenthill Palanisamy <pchenthill@novell.com>
* gui/dialogs/comp-editor.c (save_comp_with_send),
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index abd16741c4..e7bc7efa9c 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -666,6 +666,14 @@ save_comp (CompEditor *editor)
e_cal_component_set_exrule_list (priv->comp, NULL);
}
result = e_cal_modify_object (priv->client, icalcomp, priv->mod, &error);
+
+ if (result && priv->mod == CALOBJ_MOD_THIS) {
+ /* FIXME do we really need to do this ? */
+ if ((priv->flags & COMP_EDITOR_DELEGATE) || !e_cal_component_has_organizer (clone) || itip_organizer_is_user (clone, priv->client))
+ e_cal_component_commit_sequence (clone);
+ else
+ e_cal_component_abort_sequence (clone);
+ }
}
/* If the delay delivery is set, the items will not be created in the server immediately,
@@ -773,7 +781,7 @@ prompt_to_save_changes (CompEditor *editor, gboolean send)
switch (save_component_dialog (GTK_WINDOW(editor), priv->comp)) {
case GTK_RESPONSE_YES: /* Save */
if (e_cal_component_is_instance (priv->comp))
- if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
+ if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor), FALSE))
return FALSE;
if (send && save_comp_with_send (editor))
@@ -796,8 +804,10 @@ response_cb (GtkWidget *widget, int response, gpointer data)
CompEditor *editor = COMP_EDITOR (data);
CompEditorPrivate *priv;
ECalComponentText text;
+ gboolean delegated;
priv = editor->priv;
+ delegated = (priv->flags & COMP_EDITOR_DELEGATE);
switch (response) {
case GTK_RESPONSE_OK:
@@ -822,7 +832,7 @@ response_cb (GtkWidget *widget, int response, gpointer data)
commit_all_fields (editor);
if (e_cal_component_is_instance (priv->comp))
- if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
+ if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor), delegated))
return;
if (save_comp_with_send (editor)) {
@@ -858,7 +868,6 @@ delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
{
CompEditor *editor = COMP_EDITOR (data);
CompEditorPrivate *priv;
- ECalComponentText text;
priv = editor->priv;
@@ -1822,7 +1831,6 @@ real_edit_comp (CompEditor *editor, ECalComponent *comp)
static void
set_attendees_for_delegation (ECalComponent *comp, const char *address, ECalComponentItipMethod method)
{
- GSList *attendees, *l, *new;
icalproperty *prop;
icalparameter *param;
icalcomponent *icalcomp;
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 3671e7267e..5c934f338f 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -638,6 +638,9 @@ sensitize_widgets (EventPage *epage)
gtk_widget_set_sensitive (priv->categories_btn, !read_only && sens);
gtk_widget_set_sensitive (priv->sendoptions_button, !read_only && sens);
gtk_entry_set_editable (GTK_ENTRY (priv->categories), !read_only && sens);
+
+ if (COMP_EDITOR_PAGE (epage)->flags & COMP_EDITOR_PAGE_DELEGATE)
+ gtk_widget_set_sensitive (priv->sendoptions_button, TRUE);
}
void
@@ -677,7 +680,7 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
ECalComponentClassification cl;
ECalComponentTransparency transparency;
ECalComponentDateTime start_date, end_date;
- icalcomponent *icalcomp;
+ icalcomponent *icalcomp = NULL;
const char *location, *uid = NULL;
const char *categories;
ESource *source;
@@ -799,7 +802,7 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
e_source_option_menu_select (E_SOURCE_OPTION_MENU (priv->source_selector), source);
e_cal_component_get_uid (comp, &uid);
- if (e_cal_get_object (COMP_EDITOR_PAGE (epage)->client, uid, NULL, &icalcomp, NULL)) {
+ if (!(COMP_EDITOR_PAGE (epage)->flags & COMP_EDITOR_PAGE_DELEGATE) && e_cal_get_object (COMP_EDITOR_PAGE (epage)->client, uid, NULL, &icalcomp, NULL)) {
icalcomponent_free (icalcomp);
event_page_hide_options (epage);
}
diff --git a/calendar/gui/dialogs/recur-comp.c b/calendar/gui/dialogs/recur-comp.c
index cfffa29c69..de6d4ca0be 100644
--- a/calendar/gui/dialogs/recur-comp.c
+++ b/calendar/gui/dialogs/recur-comp.c
@@ -34,7 +34,7 @@ gboolean
recur_component_dialog (ECal *client,
ECalComponent *comp,
CalObjModType *mod,
- GtkWindow *parent)
+ GtkWindow *parent, gboolean delegated)
{
char *str;
GtkWidget *dialog, *rb_this, *rb_prior, *rb_future, *rb_all, *hbox;
@@ -48,7 +48,10 @@ recur_component_dialog (ECal *client,
switch (vtype) {
case E_CAL_COMPONENT_EVENT:
- str = g_strdup_printf (_("You are modifying a recurring event, what would you like to modify?"));
+ if (!delegated)
+ str = g_strdup_printf (_("You are modifying a recurring event, what would you like to modify?"));
+ else
+ str = g_strdup_printf (_("You are delegating a recurring event, what would like to delegate?"));
break;
case E_CAL_COMPONENT_TODO:
diff --git a/calendar/gui/dialogs/recur-comp.h b/calendar/gui/dialogs/recur-comp.h
index 94ccbdae87..6016ece436 100644
--- a/calendar/gui/dialogs/recur-comp.h
+++ b/calendar/gui/dialogs/recur-comp.h
@@ -29,6 +29,7 @@
gboolean recur_component_dialog (ECal *client,
ECalComponent *comp,
CalObjModType *mod,
- GtkWindow *parent);
+ GtkWindow *parent,
+ gboolean delegated);
#endif
diff --git a/calendar/gui/e-cal-model-calendar.c b/calendar/gui/e-cal-model-calendar.c
index b64dce21c6..312388f2a1 100644
--- a/calendar/gui/e-cal-model-calendar.c
+++ b/calendar/gui/e-cal-model-calendar.c
@@ -358,7 +358,7 @@ ecmc_set_value_at (ETableModel *etm, int col, int row, const void *value)
/* ask about mod type */
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (comp_data->client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (comp_data->client, comp, &mod, NULL, FALSE)) {
g_object_unref (comp);
return;
}
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index dc24ba258e..7a15196aac 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -3917,7 +3917,7 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
e_cal_component_commit_sequence (comp);
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
gtk_widget_queue_draw (day_view->top_canvas);
goto out;
}
@@ -4023,7 +4023,7 @@ e_day_view_finish_resize (EDayView *day_view)
day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
gtk_widget_queue_draw (day_view->top_canvas);
goto out;
}
@@ -5918,7 +5918,7 @@ e_day_view_change_event_time (EDayView *day_view, time_t start_dt, time_t end_dt
day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
gtk_widget_queue_draw (day_view->top_canvas);
goto out;
}
@@ -6141,7 +6141,7 @@ e_day_view_on_editing_stopped (EDayView *day_view,
CalObjModType mod = CALOBJ_MOD_ALL;
GtkWindow *toplevel;
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
goto out;
}
@@ -7284,7 +7284,7 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
e_cal_component_commit_sequence (comp);
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL))
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE))
return;
if (mod == CALOBJ_MOD_THIS) {
@@ -7479,7 +7479,7 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
e_cal_component_commit_sequence (comp);
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
g_object_unref (comp);
return;
}
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 4f6d3b2f2a..e6d430d157 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -3189,7 +3189,7 @@ e_week_view_change_event_time (EWeekView *week_view, time_t start_dt, time_t end
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
gtk_widget_queue_draw (week_view->main_canvas);
goto out;
}
@@ -3324,7 +3324,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
GtkWindow *toplevel;
if (e_cal_component_is_instance (comp)) {
- if (!recur_component_dialog (client, comp, &mod, NULL)) {
+ if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) {
goto out;
}