From 2f57510fe7434743e7483c827206a0248c594d47 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 6 Dec 2000 22:48:19 +0000 Subject: Fixes bug #920. 2000-12-06 Federico Mena Quintero Fixes bug #920. * gui/e-calendar-table.c (delete_component): New function. (e_calendar_table_on_delete_task): Use delete_component(). (e_calendar_table_on_key_press): Likewise. Also, mark the event as handled. * gui/calendar-model.c (calendar_model_get_component): Renamed function from calendar_model_get_cal_object(). (calendar_model_delete_task): Removed function. * gui/dialogs/delete-comp.[ch]: New files with the dialog for deleting a calendar component. * gui/e-day-view.c (e_day_view_on_delete_appointment): Confirm before actually deleting the appointment. * gui/e-week-view.c (e_week_view_on_delete_appointment): Likewise. * gui/dialogs/Makefile.am (libcal_dialogs_a_SOURCES): Added delete-comp.[ch] to the list of sources. * cal-util/cal-component.c (cal_component_destroy): Free the alarm UID hash. svn path=/trunk/; revision=6828 --- calendar/gui/e-calendar-table.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'calendar/gui/e-calendar-table.c') diff --git a/calendar/gui/e-calendar-table.c b/calendar/gui/e-calendar-table.c index de247778a8..850315577a 100644 --- a/calendar/gui/e-calendar-table.c +++ b/calendar/gui/e-calendar-table.c @@ -37,6 +37,7 @@ #include #include "e-calendar-table.h" #include "calendar-model.h" +#include "dialogs/delete-comp.h" #include "dialogs/task-editor.h" /* Pixmaps. */ @@ -390,14 +391,35 @@ e_calendar_table_on_mark_task_complete (GtkWidget *menuitem, } +/* Deletes a component from the table */ +static void +delete_component (CalendarModel *model, int row) +{ + CalComponent *comp; + + comp = calendar_model_get_component (model, row); + + if (delete_component_dialog (comp)) { + CalClient *client; + const char *uid; + + client = calendar_model_get_cal_client (model); + cal_component_get_uid (comp, &uid); + + /* We don't check the return value; FALSE can mean the object + * was not in the server anyways. + */ + cal_client_remove_object (client, uid); + } +} + static void e_calendar_table_on_delete_task (GtkWidget *menuitem, gpointer data) { ECalendarMenuData *menu_data = (ECalendarMenuData*) data; - calendar_model_delete_task (menu_data->cal_table->model, - menu_data->row); + delete_component (menu_data->cal_table->model, menu_data->row); } @@ -410,7 +432,8 @@ e_calendar_table_on_key_press (ETable *table, ECalendarTable *cal_table) { if (event->keyval == GDK_Delete) { - calendar_model_delete_task (cal_table->model, row); + delete_component (cal_table->model, row); + return TRUE; } return FALSE; @@ -427,7 +450,7 @@ e_calendar_table_open_task (ECalendarTable *cal_table, tedit = task_editor_new (); task_editor_set_cal_client (tedit, calendar_model_get_cal_client (cal_table->model)); - comp = calendar_model_get_cal_object (cal_table->model, row); + comp = calendar_model_get_component (cal_table->model, row); task_editor_set_todo_object (tedit, comp); } -- cgit v1.2.3