diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-12-07 06:48:19 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2000-12-07 06:48:19 +0800 |
commit | 2f57510fe7434743e7483c827206a0248c594d47 (patch) | |
tree | 6bee0506fbf41ce2f2264cc8ff908d9286dc4f73 /calendar/gui/e-calendar-table.c | |
parent | 804acf56c64c6259435e40337bc09f7d294876bd (diff) | |
download | gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar.gz gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar.bz2 gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar.lz gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar.xz gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.tar.zst gsoc2013-evolution-2f57510fe7434743e7483c827206a0248c594d47.zip |
Fixes bug #920.
2000-12-06 Federico Mena Quintero <federico@helixcode.com>
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
Diffstat (limited to 'calendar/gui/e-calendar-table.c')
-rw-r--r-- | calendar/gui/e-calendar-table.c | 31 |
1 files changed, 27 insertions, 4 deletions
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 <gal/e-table/e-cell-text.h> #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); } |