diff options
author | Damon Chaplin <damon@helixcode.com> | 2000-10-20 08:42:20 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2000-10-20 08:42:20 +0800 |
commit | b274ab5c91aab08729c6b504ee7cd10631e3a42d (patch) | |
tree | 4d1617f7047c000f1cf8020100bb2361fb793ef7 /calendar/cal-util | |
parent | 9dd3248b61831d6530fb61dfde4b277d3820e7ed (diff) | |
download | gsoc2013-evolution-b274ab5c91aab08729c6b504ee7cd10631e3a42d.tar.gz gsoc2013-evolution-b274ab5c91aab08729c6b504ee7cd10631e3a42d.tar.zst gsoc2013-evolution-b274ab5c91aab08729c6b504ee7cd10631e3a42d.zip |
added _click-to-add-message, though I'm not sure if i18n will work.
2000-10-20 Damon Chaplin <damon@helixcode.com>
* gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): added
_click-to-add-message, though I'm not sure if i18n will work.
* cal-util/cal-recur.c (cal_obj_time_add_hours):
(cal_obj_time_add_minutes):
(cal_obj_time_add_seconds): updated to handle -ve args.
* cal-util/timeutil.c (time_add_day): set tm_isdst to -1 before calling
mktime().
* cal-util/cal-recur.c (generate_instances_for_chunk): don't call the
callback if the event ends exactly on the interval start time.
* gui/e-week-view.c (e_week_view_reshape_event_span):
* gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons):
* gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event):
* gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event):
* gui/e-day-view.c (e_day_view_reshape_long_event):
(e_day_view_reshape_day_event): use cal_component_has_alarms().
* cal-util/cal-component.[hc]: added cal_component_has_alarms().
2000-10-16 Damon Chaplin <damon@helixcode.com>
* gui/calendar-config.c (config_read): set default MonthVPanePosition
to 1 rather than 0, so if you move the hpane you'll see the date
navigator.
svn path=/trunk/; revision=6063
Diffstat (limited to 'calendar/cal-util')
-rw-r--r-- | calendar/cal-util/cal-component.c | 25 | ||||
-rw-r--r-- | calendar/cal-util/cal-component.h | 1 | ||||
-rw-r--r-- | calendar/cal-util/cal-recur.c | 58 | ||||
-rw-r--r-- | calendar/cal-util/test-recur.c | 1 | ||||
-rw-r--r-- | calendar/cal-util/timeutil.c | 1 |
5 files changed, 73 insertions, 13 deletions
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c index 4efb29a610..42185fec4f 100644 --- a/calendar/cal-util/cal-component.c +++ b/calendar/cal-util/cal-component.c @@ -3228,6 +3228,31 @@ cal_component_free_text_list (GSList *text_list) +/** + * cal_component_has_alarms: + * @comp: A calendar component object. + * + * Checks whether the component has any alarms. + * + * Return value: TRUE if the component has any alarms. + **/ +gboolean +cal_component_has_alarms (CalComponent *comp) +{ + CalComponentPrivate *priv; + icalcomponent *subcomp; + + g_return_val_if_fail (comp != NULL, FALSE); + g_return_val_if_fail (IS_CAL_COMPONENT (comp), FALSE); + + priv = comp->priv; + g_return_val_if_fail (priv->icalcomp != NULL, FALSE); + + subcomp = icalcomponent_get_first_component (priv->icalcomp, ICAL_VALARM_COMPONENT); + + return subcomp != NULL ? TRUE : FALSE; +} + /* Scans an icalproperty from a calendar component and adds its mapping to our * own alarm structure. */ diff --git a/calendar/cal-util/cal-component.h b/calendar/cal-util/cal-component.h index 91d62ae548..32c3449b55 100644 --- a/calendar/cal-util/cal-component.h +++ b/calendar/cal-util/cal-component.h @@ -294,6 +294,7 @@ typedef struct { } u; } CalComponentAlarmTrigger; +gboolean cal_component_has_alarms (CalComponent *comp); CalComponentAlarm *cal_component_get_first_alarm (CalComponent *comp); CalComponentAlarm *cal_component_get_next_alarm (CalComponent *comp); diff --git a/calendar/cal-util/cal-recur.c b/calendar/cal-util/cal-recur.c index 74a0dbf6f7..057bde1368 100644 --- a/calendar/cal-util/cal-recur.c +++ b/calendar/cal-util/cal-recur.c @@ -578,6 +578,11 @@ cal_recur_generate_instances (CalComponent *comp, CalRecurInstanceFn cb, gpointer cb_data) { +#if 0 + g_print ("In cal_recur_generate_instances comp: %p\n", comp); + g_print (" start: %li - %s", start, ctime (&start)); + g_print (" end : %li - %s", end, ctime (&end)); +#endif cal_recur_generate_instances_of_rule (comp, NULL, start, end, cb, cb_data); } @@ -1119,7 +1124,7 @@ generate_instances_for_chunk (CalComponent *comp, break; } - if (end_time < interval_start_time) + if (end_time <= interval_start_time) continue; cb_status = (*cb) (comp, start_time, end_time, cb_data); @@ -3171,13 +3176,22 @@ static void cal_obj_time_add_hours (CalObjTime *cotime, gint hours) { - guint hour; + gint hour, days; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ hour = cotime->hour + hours; cotime->hour = hour % 24; - if (hour >= 24) - cal_obj_time_add_days (cotime, hour / 24); + if (hour >= 0) { + if (hour >= 24) + cal_obj_time_add_days (cotime, hour / 24); + } else { + days = hour / 24; + if (cotime->hour != 0) { + cotime->hour += 24; + days -= 1; + } + cal_obj_time_add_days (cotime, days); + } } @@ -3187,13 +3201,22 @@ static void cal_obj_time_add_minutes (CalObjTime *cotime, gint minutes) { - guint minute; + gint minute, hours; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ minute = cotime->minute + minutes; cotime->minute = minute % 60; - if (minute >= 60) - cal_obj_time_add_hours (cotime, minute / 60); + if (minute >= 0) { + if (minute >= 60) + cal_obj_time_add_hours (cotime, minute / 60); + } else { + hours = minute / 60; + if (cotime->minute != 0) { + cotime->minute += 60; + hours -= 1; + } + cal_obj_time_add_hours (cotime, hours); + } } @@ -3203,13 +3226,22 @@ static void cal_obj_time_add_seconds (CalObjTime *cotime, gint seconds) { - guint second; + gint second, minutes; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ second = cotime->second + seconds; cotime->second = second % 60; - if (second >= 60) - cal_obj_time_add_minutes (cotime, second / 60); + if (second >= 0) { + if (second >= 60) + cal_obj_time_add_minutes (cotime, second / 60); + } else { + minutes = second / 60; + if (cotime->second != 0) { + cotime->second += 60; + minutes -= 1; + } + cal_obj_time_add_minutes (cotime, minutes); + } } diff --git a/calendar/cal-util/test-recur.c b/calendar/cal-util/test-recur.c index 620e65c185..6ec214b18b 100644 --- a/calendar/cal-util/test-recur.c +++ b/calendar/cal-util/test-recur.c @@ -141,6 +141,7 @@ generate_occurrences (icalcomponent *icalcomp) g_print ("#############################################################################\n"); g_print ("%s\n\n", icalcomponent_as_ical_string (tmp_icalcomp)); + occurrences = 0; cal_recur_generate_instances (comp, -1, -1, occurrence_cb, &occurrences); diff --git a/calendar/cal-util/timeutil.c b/calendar/cal-util/timeutil.c index 1281e6fe92..a509bd3cba 100644 --- a/calendar/cal-util/timeutil.c +++ b/calendar/cal-util/timeutil.c @@ -136,6 +136,7 @@ time_add_day (time_t time, int days) #endif tm->tm_mday += days; + tm->tm_isdst = -1; if ((new_time = mktime (tm)) == -1){ g_message ("time_add_day(): mktime() could not handling adding %d days with\n", |