From 54141f67b759d3533605a06305ead06d1d3ec4f7 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Tue, 18 Sep 2001 20:56:38 +0000 Subject: Fixes bug #2830. 2001-09-18 Federico Mena Quintero Fixes bug #2830. * gui/calendar-config.c (calendar_config_get_confirm_delete): New function. (calendar_config_set_confirm_delete): New function. (config_read): Get the default value for the ConfirmDelete option. (calendar_config_write): Set the value of ConfirmDelete. * gui/dialogs/delete-comp.c (delete_component_dialog): Handle the configuration option for confirmation. * gui/dialogs/cal-prefs-dialog.c (CalPrefsDialogPrivate): Added the fields for the Other page. (get_widgets): Handle the new widgets. (cal_prefs_dialog_show_config): Likewise. (cal_prefs_dialog_update_config): Likewise. svn path=/trunk/; revision=12953 --- calendar/gui/dialogs/cal-prefs-dialog.c | 62 +++++++++++++++++++---------- calendar/gui/dialogs/cal-prefs-dialog.glade | 8 ++-- calendar/gui/dialogs/delete-comp.c | 12 ++++-- 3 files changed, 54 insertions(+), 28 deletions(-) (limited to 'calendar/gui/dialogs') diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c index 0b3d43e98b..2cd3872881 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.c +++ b/calendar/gui/dialogs/cal-prefs-dialog.c @@ -68,6 +68,12 @@ struct _CalPrefsDialogPrivate { GtkWidget *tasks_hide_completed_checkbutton; GtkWidget *tasks_hide_completed_spinbutton; GtkWidget *tasks_hide_completed_optionmenu; + + /* Other page options */ + GtkWidget *confirm_delete; + GtkWidget *default_reminder; + GtkWidget *default_reminder_interval; + GtkWidget *default_reminder_units; }; static const int week_start_day_map[] = { @@ -239,6 +245,11 @@ get_widgets (CalPrefsDialog *prefs) priv->tasks_hide_completed_spinbutton = GW ("tasks-hide-completed-spinbutton"); priv->tasks_hide_completed_optionmenu = GW ("tasks-hide-completed-optionmenu"); + priv->confirm_delete = GW ("confirm-delete"); + priv->default_reminder = GW ("default-reminder"); + priv->default_reminder_interval = GW ("default-reminder-interval"); + priv->default_reminder_units = GW ("default-reminder-units"); + #undef GW return (priv->dialog @@ -264,7 +275,11 @@ get_widgets (CalPrefsDialog *prefs) && priv->tasks_overdue_color && priv->tasks_hide_completed_checkbutton && priv->tasks_hide_completed_spinbutton - && priv->tasks_hide_completed_optionmenu); + && priv->tasks_hide_completed_optionmenu + && priv->confirm_delete + && priv->default_reminder + && priv->default_reminder_interval + && priv->default_reminder_units); } @@ -497,7 +512,7 @@ cal_prefs_dialog_show_config (CalPrefsDialog *prefs) working_days = calendar_config_get_working_days (); mask = 1 << 0; for (day = 0; day < 7; day++) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->working_days[day]), (working_days & mask) ? TRUE : FALSE); + e_dialog_toggle_set (priv->working_days[day], (working_days & mask) ? TRUE : FALSE); mask <<= 1; } @@ -518,9 +533,9 @@ cal_prefs_dialog_show_config (CalPrefsDialog *prefs) /* 12/24 Hour Format. */ if (calendar_config_get_24_hour_format ()) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_24_hour), TRUE); + e_dialog_toggle_set (priv->use_24_hour, TRUE); else - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_12_hour), TRUE); + e_dialog_toggle_set (priv->use_12_hour, TRUE); sensitive = calendar_config_locale_supports_12_hour_format (); gtk_widget_set_sensitive (priv->use_12_hour, sensitive); @@ -533,18 +548,21 @@ cal_prefs_dialog_show_config (CalPrefsDialog *prefs) time_division_map); /* Show Appointment End Times. */ - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_end_times), - calendar_config_get_show_event_end ()); + e_dialog_toggle_set (priv->show_end_times, calendar_config_get_show_event_end ()); /* Compress Weekend. */ - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->compress_weekend), calendar_config_get_compress_weekend ()); + e_dialog_toggle_set (priv->compress_weekend, calendar_config_get_compress_weekend ()); /* Date Navigator - Show Week Numbers. */ - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no), calendar_config_get_dnav_show_week_no ()); + e_dialog_toggle_set (priv->dnav_show_week_no, calendar_config_get_dnav_show_week_no ()); /* Task list */ show_task_list_config (prefs); + + /* Other page */ + + e_dialog_toggle_set (priv->confirm_delete, calendar_config_get_confirm_delete ()); } /* Returns a pointer to a static string with an X color spec for the current @@ -597,49 +615,51 @@ cal_prefs_dialog_update_config (CalPrefsDialog *prefs) working_days = 0; mask = 1 << 0; for (day = 0; day < 7; day++) { - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->working_days[day]))) + if (e_dialog_toggle_get (priv->working_days[day])) working_days |= mask; mask <<= 1; } calendar_config_set_working_days (working_days); /* Week Start Day. */ - week_start_day = e_dialog_option_menu_get (priv->week_start_day, - week_start_day_map); + week_start_day = e_dialog_option_menu_get (priv->week_start_day, week_start_day_map); calendar_config_set_week_start_day (week_start_day); /* Start of Day. */ - e_date_edit_get_time_of_day (E_DATE_EDIT (priv->start_of_day), - &hour, &minute); + e_date_edit_get_time_of_day (E_DATE_EDIT (priv->start_of_day), &hour, &minute); calendar_config_set_day_start_hour (hour); calendar_config_set_day_start_minute (minute); /* End of Day. */ - e_date_edit_get_time_of_day (E_DATE_EDIT (priv->end_of_day), - &hour, &minute); + e_date_edit_get_time_of_day (E_DATE_EDIT (priv->end_of_day), &hour, &minute); calendar_config_set_day_end_hour (hour); calendar_config_set_day_end_minute (minute); /* 12/24 Hour Format. */ - calendar_config_set_24_hour_format (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_24_hour))); + calendar_config_set_24_hour_format (e_dialog_toggle_get (priv->use_24_hour)); /* Time Divisions. */ - time_divisions = e_dialog_option_menu_get (priv->time_divisions, - time_division_map); + time_divisions = e_dialog_option_menu_get (priv->time_divisions, time_division_map); calendar_config_set_time_divisions (time_divisions); /* Show Appointment End Times. */ - calendar_config_set_show_event_end (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->show_end_times))); + calendar_config_set_show_event_end (e_dialog_toggle_get (priv->show_end_times)); /* Compress Weekend. */ - calendar_config_set_compress_weekend (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->compress_weekend))); + calendar_config_set_compress_weekend (e_dialog_toggle_get (priv->compress_weekend)); /* Date Navigator - Show Week Numbers. */ - calendar_config_set_dnav_show_week_no (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no))); + calendar_config_set_dnav_show_week_no (e_dialog_toggle_get (priv->dnav_show_week_no)); /* Task list */ update_task_list_config (prefs); + /* Other page */ + + calendar_config_set_confirm_delete (e_dialog_toggle_get (priv->confirm_delete)); + + /* Done */ + calendar_config_write (); update_all_config_settings (); e_tasks_update_all_config_settings (); diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade index ed301e805c..a6eb2ceb66 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.glade +++ b/calendar/gui/dialogs/cal-prefs-dialog.glade @@ -851,7 +851,7 @@ Days GtkCheckButton - checkbutton1 + confirm-delete True False @@ -865,7 +865,7 @@ Days GtkCheckButton - checkbutton2 + default-reminder True False @@ -909,7 +909,7 @@ Days GtkSpinButton - spinbutton1 + default-reminder-interval True 1 0 @@ -932,7 +932,7 @@ Days GtkOptionMenu - optionmenu1 + default-reminder-units True Minutes Hours diff --git a/calendar/gui/dialogs/delete-comp.c b/calendar/gui/dialogs/delete-comp.c index a5ba1162db..39755832cb 100644 --- a/calendar/gui/dialogs/delete-comp.c +++ b/calendar/gui/dialogs/delete-comp.c @@ -45,10 +45,13 @@ * @widget: A widget to use as a basis for conversion from UTF8 into font * encoding. * - * Pops up a dialog box asking the user whether he wants to delete a number - * of calendar components. + * Pops up a dialog box asking the user whether he wants to delete a number of + * calendar components. The dialog will not appear, however, if the + * configuration option for confirmation is turned off. * - * Return value: TRUE if the user clicked Yes, FALSE otherwise. + * Return value: TRUE if the user clicked Yes, FALSE otherwise. If the + * configuration option for confirmation is turned off, this function will + * unconditionally return TRUE. **/ gboolean delete_component_dialog (CalComponent *comp, @@ -69,6 +72,9 @@ delete_component_dialog (CalComponent *comp, g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); + if (!calendar_config_get_confirm_delete ()) + return TRUE; + if (comp) { CalComponentText summary; char *tmp; -- cgit