aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog9
-rw-r--r--calendar/gui/e-tasks.c33
2 files changed, 42 insertions, 0 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index ed8c651f4c..1a364e8912 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,5 +1,14 @@
2004-03-04 Rodrigo Moya <rodrigo@ximian.com>
+ Fixes #50294
+
+ * gui/e-tasks.c (setup_widgets): connect to "model_rows_deleted" signal
+ on the ETable's model.
+ (model_rows_deleted_cb): callback for clearing the preview widget when
+ the currently selected task is removed.
+
+2004-03-04 Rodrigo Moya <rodrigo@ximian.com>
+
* gui/calendar-commands.c (calendar_control_sensitize_calendar_commands):
set the sensitivity correctly, depending on whether the command applied
to the currently selected event or the default client.
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index 5a0b4b56c3..ea3e9dd12e 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -486,6 +486,37 @@ model_row_changed_cb (ETableModel *etm, int row, gpointer data)
}
static void
+model_rows_deleted_cb (ETableModel *etm, int row, int count, gpointer data)
+{
+ ETasks *tasks;
+ ETasksPrivate *priv;
+ ECalModelComponent *comp_data;
+
+ tasks = E_TASKS (data);
+ priv = tasks->priv;
+
+ if (priv->current_uid) {
+ const char *uid;
+ int i;
+
+ for (i = row; i < row + count; i++) {
+ comp_data = e_cal_model_get_component_at (E_CAL_MODEL (etm), i);
+ if (comp_data) {
+ uid = icalcomponent_get_uid (comp_data->icalcomp);
+ if (!strcmp (uid ? uid : "", priv->current_uid)) {
+ ETable *etable;
+
+ etable = e_table_scrolled_get_table (
+ E_TABLE_SCROLLED (E_CALENDAR_TABLE (priv->tasks_view)->etable));
+ table_cursor_change_cb (etable, 0, tasks);
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void
setup_config (ETasks *tasks)
{
ETasksPrivate *priv;
@@ -577,6 +608,8 @@ setup_widgets (ETasks *tasks)
model = e_calendar_table_get_model (E_CALENDAR_TABLE (priv->tasks_view));
g_signal_connect (G_OBJECT (model), "model_row_changed",
G_CALLBACK (model_row_changed_cb), tasks);
+ g_signal_connect (G_OBJECT (model), "model_rows_deleted",
+ G_CALLBACK (model_rows_deleted_cb), tasks);
}
/* Class initialization function for the gnome calendar */