[evolution-patches] patch for re-adding 'Make this occurrence movable' menu item in calendar view
- From: Rodrigo Moya <rodrigo novell com>
- To: Evolution Patches <evolution-patches lists ximian com>
- Subject: [evolution-patches] patch for re-adding 'Make this occurrence movable' menu item in calendar view
- Date: Mon, 09 Aug 2004 11:31:28 +0000
This menu item was removed by mistake some time ago. The string is
already in the .po files, so this doesnt break string freeze.
--
Rodrigo Moya <rodrigo novell com>
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2478
diff -u -p -r1.2478 ChangeLog
--- ChangeLog 7 Aug 2004 22:32:15 -0000 1.2478
+++ ChangeLog 9 Aug 2004 11:29:39 -0000
@@ -1,3 +1,9 @@
+2004-08-09 Rodrigo Moya <rodrigo novell com>
+
+ * gui/e-calendar-view.c: re-added 'Make this occurrence movable' menu
+ item, gone by mistake.
+ (on_unrecur_appointment): new callback for the new menu item.
+
2004-08-06 JP Rosevear <jpr ximian com>
Fixes #62021
@@ -13,7 +19,7 @@
it
* gui/tasks-component.c (setup_create_ecal): ditto
-
+
2004-08-05 Parthasarathi S A <sparthasarathi novell com>
Fix for bug #61673.
Index: gui/e-calendar-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-calendar-view.c,v
retrieving revision 1.62
diff -u -p -r1.62 e-calendar-view.c
--- gui/e-calendar-view.c 2 Aug 2004 07:33:38 -0000 1.62
+++ gui/e-calendar-view.c 9 Aug 2004 11:29:40 -0000
@@ -1255,6 +1255,76 @@ on_delete_appointment (GtkWidget *widget
}
static void
+on_unrecur_appointment (GtkWidget *widget, gpointer user_data)
+{
+ ECalendarView *cal_view;
+ ECalendarViewEvent *event;
+ ECalComponent *comp, *new_comp;
+ ECalComponentDateTime date;
+ struct icaltimetype itt;
+ GList *selected;
+ char *new_uid;
+
+ cal_view = E_CALENDAR_VIEW (user_data);
+
+ selected = e_calendar_view_get_selected_events (cal_view);
+ if (!selected)
+ return;
+
+ event = (ECalendarViewEvent *) selected->data;
+
+ date.value = &itt;
+ date.tzid = NULL;
+
+ /* For the recurring object, we add an exception to get rid of the
+ instance. */
+
+ comp = e_cal_component_new ();
+ e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ cal_comp_util_add_exdate (comp, event->comp_data->instance_start, e_calendar_view_get_timezone (cal_view));
+ e_cal_component_commit_sequence (comp);
+
+ /* For the unrecurred instance we duplicate the original object,
+ create a new uid for it, get rid of the recurrence rules, and set
+ the start & end times to the instances times. */
+ new_comp = e_cal_component_new ();
+ e_cal_component_set_icalcomponent (new_comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ new_uid = e_cal_component_gen_uid ();
+ e_cal_component_set_uid (new_comp, new_uid);
+ g_free (new_uid);
+ e_cal_component_set_rdate_list (new_comp, NULL);
+ e_cal_component_set_rrule_list (new_comp, NULL);
+ e_cal_component_set_exdate_list (new_comp, NULL);
+ e_cal_component_set_exrule_list (new_comp, NULL);
+
+ date.value = &itt;
+ date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (cal_view));
+
+ *date.value = icaltime_from_timet_with_zone (event->comp_data->instance_start, FALSE,
+ e_calendar_view_get_timezone (cal_view));
+ e_cal_component_set_dtstart (new_comp, &date);
+ *date.value = icaltime_from_timet_with_zone (event->comp_data->instance_end, FALSE,
+ e_calendar_view_get_timezone (cal_view));
+ e_cal_component_set_dtend (new_comp, &date);
+ e_cal_component_commit_sequence (new_comp);
+
+ /* Now update both ECalComponents. Note that we do this last since at
+ * present the updates happen synchronously so our event may disappear.
+ */
+ if (!e_cal_modify_object (event->comp_data->client, e_cal_component_get_icalcomponent (comp), CALOBJ_MOD_THIS, NULL))
+ g_message ("e_day_view_on_unrecur_appointment(): Could not update the object!");
+
+ g_object_unref (comp);
+
+ if (!e_cal_create_object (event->comp_data->client, e_cal_component_get_icalcomponent (new_comp), &new_uid, NULL))
+ g_message ("e_day_view_on_unrecur_appointment(): Could not update the object!");
+
+ g_free (new_uid);
+ g_object_unref (new_comp);
+ g_list_free (selected);
+}
+
+static void
on_delete_occurrence (GtkWidget *widget, gpointer user_data)
{
ECalendarView *cal_view;
@@ -1378,6 +1448,7 @@ static EPopupMenu child_items [] = {
E_POPUP_SEPARATOR,
E_POPUP_ITEM (N_("_Delete"), GTK_SIGNAL_FUNC (on_delete_appointment), MASK_EDITABLE | MASK_SINGLE | MASK_EDITING),
+ E_POPUP_ITEM (N_("Make this Occurrence _Movable"), GTK_SIGNAL_FUNC (on_unrecur_appointment), MASK_EDITABLE | MASK_RECURRING | MASK_EDITING | MASK_INSTANCE),
E_POPUP_ITEM (N_("Delete this _Occurrence"), GTK_SIGNAL_FUNC (on_delete_occurrence), MASK_RECURRING | MASK_EDITING | MASK_EDITABLE),
E_POPUP_ITEM (N_("Delete _All Occurrences"), GTK_SIGNAL_FUNC (on_delete_appointment), MASK_RECURRING | MASK_EDITING | MASK_EDITABLE),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]