aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-calendar-table.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@helixcode.com>2000-12-07 06:48:19 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2000-12-07 06:48:19 +0800
commit2f57510fe7434743e7483c827206a0248c594d47 (patch)
tree6bee0506fbf41ce2f2264cc8ff908d9286dc4f73 /calendar/gui/e-calendar-table.c
parent804acf56c64c6259435e40337bc09f7d294876bd (diff)
downloadgsoc2013-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.c31
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);
}