From 8e8fcea05d20217a19285cb7599d1d0b96de4b3b Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Thu, 4 Mar 2004 11:17:56 +0000 Subject: Fixes #53137 2004-03-04 Rodrigo Moya Fixes #53137 * gui/dialogs/comp-editor-page.[ch]: made fill_widgets virtual method return a gboolean. (comp_editor_page_fill_widgets): return value from virtual method implementation. * gui/dialogs/event-page.c (event_page_fill_widgets): * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): * gui/dialogs/recurrence-page.c (recurrence_page_fill_widgets): * gui/dialogs/schedule-page.c (schedule_page_fill_widgets): * gui/dialogs/task-details-page.c (task_details_page_fill_widgets): * gui/dialogs/task-page.c (task_page_fill_widgets): * gui/dialogs/alarm-page.c (alarm_page_fill_widgets): return value, as expected from the virtual method signature. * gui/dialogs/comp-editor.c (comp_editor_append_page): dont add the page if there was an error calling the fill_widgets method. svn path=/trunk/; revision=24960 --- calendar/gui/dialogs/event-page.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'calendar/gui/dialogs/event-page.c') diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index cffa9f2e9a..129acd1a2a 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -95,7 +95,7 @@ static void event_page_finalize (GObject *object); static GtkWidget *event_page_get_widget (CompEditorPage *page); static void event_page_focus_main_widget (CompEditorPage *page); -static void event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp); +static gboolean event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp); static gboolean event_page_fill_component (CompEditorPage *page, ECalComponent *comp); static void event_page_set_summary (CompEditorPage *page, const char *summary); static void event_page_set_dates (CompEditorPage *page, CompEditorPageDates *dates); @@ -408,7 +408,7 @@ clear_widgets (EventPage *epage) /* fill_widgets handler for the event page */ -static void +static gboolean event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) { EventPage *epage; @@ -422,7 +422,7 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) ESource *source; GSList *l; - g_return_if_fail (page->client != NULL); + g_return_val_if_fail (page->client != NULL, FALSE); epage = EVENT_PAGE (page); priv = epage->priv; @@ -452,7 +452,16 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) /* Start and end times */ e_cal_component_get_dtstart (comp, &start_date); + if (!start_date.value) { + comp_editor_page_display_validation_error (page, _("Event with no start time"), priv->start_time); + return FALSE; + } + e_cal_component_get_dtend (comp, &end_date); + if (!end_date.value) { + comp_editor_page_display_validation_error (page, _("Event with no end time"), priv->end_time); + return FALSE; + } update_time (epage, &start_date, &end_date); @@ -520,6 +529,8 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) e_source_option_menu_select (E_SOURCE_OPTION_MENU (priv->source_selector), source); priv->updating = FALSE; + + return TRUE; } /* fill_component handler for the event page */ -- cgit v1.2.3