diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-10-30 17:25:24 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-10-30 17:25:24 +0800 |
commit | f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5 (patch) | |
tree | 7ab4397aab4f3e85da00c269112ddc3b1a75b49c /calendar/cal-util/cal-component.c | |
parent | 6bf38a0ba9bc70423c228445de61d6cbf4f7bd60 (diff) | |
download | gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.gz gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.zst gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.zip |
Use an EMessageBox instead of a gnome_dialog_question so that the label
2001-10-30 Federico Mena Quintero <federico@ximian.com>
* gui/dialogs/delete-comp.c (delete_component_dialog): Use an
EMessageBox instead of a gnome_dialog_question so that the label
gets line breaking. Fixes bug #11260.
2001-10-29 Federico Mena Quintero <federico@ximian.com>
Fix bug #13649.
* gui/calendar-config.c
(calendar_config_get_use_default_reminder): New function.
(calendar_config_set_use_default_reminder): New function.
(calendar_config_get_default_reminder_interval): New function.
(calendar_config_set_default_reminder_interval): New function.
(calendar_config_get_default_reminder_units): New function.
(calendar_config_set_default_reminder_units): New function.
(config_read): Get the options for default reminders.
(calendar_config_write): Set the options for default reminders.
* gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config):
Set the default reminder widgets from the config values.
(cal_prefs_dialog_update_config): Set the config values from the
widgets.
* gui/comp-util.c (cal_comp_event_new_with_defaults): New
function; creates a VEVENT component with the default alarm.
* gui/e-day-view.c (e_day_view_key_press): Use
cal_comp_event_new_with_defaults ();
* gui/e-week-view.c (e_week_view_key_press): Likewise.
* gui/calendar-model.c (calendar_model_append_row): Likewise.
* gui/comp-editor-factory.c (get_default_component): Likewise.
* gui/gnome-cal.c (gnome_calendar_new_appointment_for): Likewise.
* cal-util/cal-component.c (ensure_alarm_properties_cb): Ensure we
have a DESCRIPTION property.
(cal_component_commit_sequence): Ensure we have the mandatory
alarm properties.
svn path=/trunk/; revision=14446
Diffstat (limited to 'calendar/cal-util/cal-component.c')
-rw-r--r-- | calendar/cal-util/cal-component.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c index a2074525a6..6e652b4851 100644 --- a/calendar/cal-util/cal-component.c +++ b/calendar/cal-util/cal-component.c @@ -23,6 +23,9 @@ #include <string.h> #include <stdlib.h> #include <unistd.h> +#include <glib.h> +#include <libgnome/gnome-defs.h> +#include <libgnome/gnome-i18n.h> #include "cal-component.h" #include "timeutil.h" @@ -1164,6 +1167,66 @@ cal_component_get_as_string (CalComponent *comp) return buf; } +/* Used from g_hash_table_foreach(); ensures that an alarm subcomponent + * has the mandatory properties it needs. + */ +static void +ensure_alarm_properties_cb (gpointer key, gpointer value, gpointer data) +{ + CalComponent *comp; + CalComponentPrivate *priv; + icalcomponent *alarm; + icalproperty *prop; + enum icalproperty_action action; + const char *str; + + alarm = value; + + comp = CAL_COMPONENT (data); + priv = comp->priv; + + prop = icalcomponent_get_first_property (alarm, ICAL_ACTION_PROPERTY); + if (!prop) + return; + + action = icalproperty_get_action (prop); + + switch (action) { + case ICAL_ACTION_DISPLAY: + /* Ensure we have a DESCRIPTION property */ + prop = icalcomponent_get_first_property (alarm, ICAL_DESCRIPTION_PROPERTY); + if (prop) + break; + + if (!priv->summary.prop) + str = _("Untitled appointment"); + else + str = icalproperty_get_summary (priv->summary.prop); + + prop = icalproperty_new_description (str); + icalcomponent_add_property (alarm, prop); + + break; + + default: + break; + /* FIXME: add other action types here */ + } +} + +/* Ensures that alarm subcomponents have the mandatory properties they need, + * even when clients may not have set them properly. + */ +static void +ensure_alarm_properties (CalComponent *comp) +{ + CalComponentPrivate *priv; + + priv = comp->priv; + + g_hash_table_foreach (priv->alarm_uid_hash, ensure_alarm_properties_cb, comp); +} + /** * cal_component_commit_sequence: * @comp: @@ -1186,6 +1249,8 @@ cal_component_commit_sequence (CalComponent *comp) priv = comp->priv; g_return_if_fail (priv->icalcomp != NULL); + ensure_alarm_properties (comp); + if (!priv->need_sequence_inc) return; |