aboutsummaryrefslogtreecommitdiffstats
path: root/modules/calendar
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2010-02-25 20:32:32 +0800
committerMilan Crha <mcrha@redhat.com>2010-02-25 20:32:32 +0800
commit1341a56ed1347f0762e9d81f4cfc6197c1656f0b (patch)
tree633cdf04043063992aed81d8447b466a788f4b11 /modules/calendar
parent98f8e3672530a9231c3c28cea137452e9127d214 (diff)
downloadgsoc2013-evolution-1341a56ed1347f0762e9d81f4cfc6197c1656f0b.tar.gz
gsoc2013-evolution-1341a56ed1347f0762e9d81f4cfc6197c1656f0b.tar.zst
gsoc2013-evolution-1341a56ed1347f0762e9d81f4cfc6197c1656f0b.zip
Bug #529331 - Deletes appointments when moving to the same calendar
Diffstat (limited to 'modules/calendar')
-rw-r--r--modules/calendar/e-cal-shell-view-actions.c22
-rw-r--r--modules/calendar/e-cal-shell-view-private.c5
2 files changed, 21 insertions, 6 deletions
diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c
index 03a6eb6bd3..4e80a99db2 100644
--- a/modules/calendar/e-cal-shell-view-actions.c
+++ b/modules/calendar/e-cal-shell-view-actions.c
@@ -507,7 +507,7 @@ action_event_copy_cb (GtkAction *action,
GnomeCalendarViewType view_type;
GnomeCalendar *calendar;
ECalendarView *calendar_view;
- ESource *destination_source = NULL;
+ ESource *source_source = NULL, *destination_source = NULL;
ECal *destination_client = NULL;
GList *selected, *iter;
@@ -522,9 +522,16 @@ action_event_copy_cb (GtkAction *action,
selected = e_calendar_view_get_selected_events (calendar_view);
g_return_if_fail (selected != NULL);
+ if (selected->data) {
+ ECalendarViewEvent *event = selected->data;
+
+ if (event && event->comp_data && event->comp_data->client)
+ source_source = e_cal_get_source (event->comp_data->client);
+ }
+
/* Get a destination source from the user. */
destination_source = select_source_dialog (
- GTK_WINDOW (shell_window), E_CAL_SOURCE_TYPE_EVENT);
+ GTK_WINDOW (shell_window), E_CAL_SOURCE_TYPE_EVENT, source_source);
if (destination_source == NULL)
return;
@@ -762,7 +769,7 @@ action_event_move_cb (GtkAction *action,
GnomeCalendarViewType view_type;
GnomeCalendar *calendar;
ECalendarView *calendar_view;
- ESource *destination_source = NULL;
+ ESource *source_source = NULL, *destination_source = NULL;
ECal *destination_client = NULL;
GList *selected, *iter;
@@ -777,9 +784,16 @@ action_event_move_cb (GtkAction *action,
selected = e_calendar_view_get_selected_events (calendar_view);
g_return_if_fail (selected != NULL);
+ if (selected->data) {
+ ECalendarViewEvent *event = selected->data;
+
+ if (event && event->comp_data && event->comp_data->client)
+ source_source = e_cal_get_source (event->comp_data->client);
+ }
+
/* Get a destination source from the user. */
destination_source = select_source_dialog (
- GTK_WINDOW (shell_window), E_CAL_SOURCE_TYPE_EVENT);
+ GTK_WINDOW (shell_window), E_CAL_SOURCE_TYPE_EVENT, source_source);
if (destination_source == NULL)
return;
diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c
index b5f9ba55d7..e5c1ed4bd6 100644
--- a/modules/calendar/e-cal-shell-view-private.c
+++ b/modules/calendar/e-cal-shell-view-private.c
@@ -737,8 +737,9 @@ e_cal_shell_view_transfer_item_to (ECalShellView *cal_shell_view,
success = e_cal_modify_object (
destination_client, icalcomp_event,
CALOBJ_MOD_ALL, NULL);
- if (!success)
- return;
+
+ /* do not delete the event when it was found in the calendar */
+ return;
} else {
icalproperty *icalprop;
gchar *new_uid;