From 3a68f719775b66faeb267cea99879dd659ab1cdf Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Sun, 28 Jul 2002 18:51:32 +0000 Subject: fixed mapping of popdown menu to ICAL_STATUS_ values. 2002-07-28 Rodrigo Moya * gui/dialogs/task-details-page.c: fixed mapping of popdown menu to ICAL_STATUS_ values. (task_details_page_fill_widgets): when we can't set the status, default to ICAL_STATUS_NONE, which maps to 'Not started'. Fixed use of 'percent' variable, which was being used after being freed. (percent_complete_changed): default to ICAL_STATUS_NONE (Not Started). * gui/dialogs/task-details-page.glade: added 'Needs Action' to popdown menu values. svn path=/trunk/; revision=17624 --- calendar/ChangeLog | 12 ++++++++++++ calendar/gui/dialogs/task-details-page.c | 25 +++++++++++++++---------- calendar/gui/dialogs/task-details-page.glade | 1 + 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 05a5b1d99c..b251dcb448 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,15 @@ +2002-07-28 Rodrigo Moya + + * gui/dialogs/task-details-page.c: fixed mapping of popdown menu + to ICAL_STATUS_ values. + (task_details_page_fill_widgets): when we can't set the status, + default to ICAL_STATUS_NONE, which maps to 'Not started'. Fixed + use of 'percent' variable, which was being used after being freed. + (percent_complete_changed): default to ICAL_STATUS_NONE (Not Started). + + * gui/dialogs/task-details-page.glade: added 'Needs Action' to + popdown menu values. + 2002-07-26 Rodrigo Moya * cal-util/cal-util.[ch] (cal_util_add_timezones_from_component): diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c index 84070ff541..d92b5c18e7 100644 --- a/calendar/gui/dialogs/task-details-page.c +++ b/calendar/gui/dialogs/task-details-page.c @@ -61,8 +61,9 @@ struct _TaskDetailsPagePrivate { /* Note that these two arrays must match. */ static const int status_map[] = { - ICAL_STATUS_NEEDSACTION, + ICAL_STATUS_NONE, ICAL_STATUS_INPROCESS, + ICAL_STATUS_NEEDSACTION, ICAL_STATUS_COMPLETED, ICAL_STATUS_CANCELLED, -1 @@ -295,7 +296,7 @@ task_details_page_fill_widgets (CompEditorPage *page, CalComponent *comp) { TaskDetailsPage *tdpage; TaskDetailsPagePrivate *priv; - int *priority_value, *percent; + int *priority_value, *percent = NULL; TaskEditorPriority priority; icalproperty_status status; const char *url; @@ -313,7 +314,6 @@ task_details_page_fill_widgets (CompEditorPage *page, CalComponent *comp) cal_component_get_percent (comp, &percent); if (percent) { e_dialog_spin_set (priv->percent_complete, *percent); - cal_component_free_percent (percent); } else { /* FIXME: Could check if task is completed and set 100%. */ e_dialog_spin_set (priv->percent_complete, 0); @@ -324,17 +324,19 @@ task_details_page_fill_widgets (CompEditorPage *page, CalComponent *comp) if (status == ICAL_STATUS_NONE) { /* Try to use the percent value. */ if (percent) { - if (*percent == 0) - status = ICAL_STATUS_NEEDSACTION; - else if (*percent == 100) + if (*percent == 100) status = ICAL_STATUS_COMPLETED; - else + else if (*percent > 0) status = ICAL_STATUS_INPROCESS; + else + status = ICAL_STATUS_NONE; } else - status = ICAL_STATUS_NEEDSACTION; + status = ICAL_STATUS_NONE; } e_dialog_option_menu_set (priv->status, status, status_map); + cal_component_free_percent (percent); + /* Completed Date. */ cal_component_get_completed (comp, &completed); if (completed) { @@ -586,10 +588,13 @@ status_changed (GtkMenu *menu, TaskDetailsPage *tdpage) priv->updating = TRUE; status = e_dialog_option_menu_get (priv->status, status_map); - if (status == ICAL_STATUS_NEEDSACTION) { + if (status == ICAL_STATUS_NONE) { e_dialog_spin_set (priv->percent_complete, 0); e_date_edit_set_time (E_DATE_EDIT (priv->completed_date), ctime); complete_date_changed (tdpage, 0, FALSE); + } else if (status == ICAL_STATUS_NEEDSACTION) { + e_date_edit_set_time (E_DATE_EDIT (priv->completed_date), ctime); + complete_date_changed (tdpage, 0, FALSE); } else if (status == ICAL_STATUS_INPROCESS) { e_dialog_spin_set (priv->percent_complete, 50); e_date_edit_set_time (E_DATE_EDIT (priv->completed_date), ctime); @@ -631,7 +636,7 @@ percent_complete_changed (GtkAdjustment *adj, TaskDetailsPage *tdpage) complete = FALSE; if (percent == 0) - status = ICAL_STATUS_NEEDSACTION; + status = ICAL_STATUS_NONE; else status = ICAL_STATUS_INPROCESS; } diff --git a/calendar/gui/dialogs/task-details-page.glade b/calendar/gui/dialogs/task-details-page.glade index 28bf6a3bcc..8c47c7d725 100644 --- a/calendar/gui/dialogs/task-details-page.glade +++ b/calendar/gui/dialogs/task-details-page.glade @@ -85,6 +85,7 @@ True Not Started In Progress +Needs Action Completed Cancelled -- cgit v1.2.3