2001-10-25 Federico Mena Quintero <federico@ximian.com>
* gui/GNOME_Evolution_Calendar.oaf.in: The tasks folder does not
support the PersistFile interface; removed it. Removed it as well
from the calendar folder since it is aggregated but not actually
implemented.
svn path=/trunk/; revision=14088
2001-10-25 Federico Mena Quintero <federico@ximian.com>
* gui/component-factory.c (xfer_folder): Handle tasks folders as
well; was always using "calendar.ics" as the filename.
svn path=/trunk/; revision=14087
2001-10-24 Damon Chaplin <damon@ximian.com>
* pcs/cal-backend-file.c (cal_backend_file_update_objects): when
iterating over the subcomponents, use 'subcomp' rather than 'icalcomp'.
That meant it wasn't working at all well when an entire VCALENDAR
was passed in.
* cal-util/cal-component.c: handle DURATION property used instead of
DTEND or DUE. In cal_component_get_dtend/due we will return DTSTART
+ DURATION if necessary. In set_dtend/due we remove any DURATION
property. Fixes bug #11262.
* gui/e-meeting-model.c (build_etable):
* gui/e-calendar-table.c (e_calendar_table_init): use U_ for the
ECellCombo popdown strings, as it expects UTF-8 strings.
svn path=/trunk/; revision=13992
2001-10-24 JP Rosevear <jpr@ximian.com>
* gui/e-meeting-time-sel.c (e_meeting_time_selector_construct):
track the spacer vbox
(e_meeting_time_selector_style_set): make sure the rows are the
correct size for the style
* gui/e-meeting-time-sel-item.c
(e_meeting_time_selector_item_paint_day_top): slight adjustments
to where the text is drawn
* gui/e-meeting-time-sel.h: new member
* gui/e-meeting-model.c (build_etable): ensure uniform row height
* conduits/todo/todo-conduit.c (comp_from_remote_record): mark
status as completed in appropriate places and don't overwrite
legitimate percentages and such
svn path=/trunk/; revision=13989
2001-10-24 Federico Mena Quintero <federico@ximian.com>
Fixes bug #5282.
* cal-util/timeutil.c (icaltimetype_to_tm_with_zone): New function
to avoid copying the same code all over the place.
(icaltimetype_to_tm): Also set the tm.tm_wday.
* gui/alarm-notify/alarm-queue.c (queue_midnight_refresh): Use
time_day_end_with_zone().
(load_alarms_for_today): Likewise. And oops, we were only
computing the times and not loading the alarms.
(obj_updated_cb): Likewise.
(load_alarms): Removed assertion that is no longer valid because
we may load the alarms for a client in two stages.
* gui/dialogs/alarm-page.c (get_alarm_string): Convert absolute
trigger times to the local timezone.
* gui/alarm-notify/alarm-notify-dialog.c (write_html_heading):
Convert the times to the local timezone.
(alarm_notify_dialog): Likewise, for the window title.
(alarm_notify_dialog): Set the window layer to WIN_LAYER_ONTOP.
* gui/e-cell-date-edit-text.c (ecd_get_text): Use
icaltimetype_to_tm_with_zone().
* gui/alarm-notify/save.c (get_config_db): Made public.
(discard_config_db): Made public.
* gui/alarm-notify/config-data.[ch]: New files with functions to
fetch the calendar configuration data used by the alarm daemon.
svn path=/trunk/; revision=13986
2001-10-23 Damon Chaplin <damon@ximian.com>
* cal-util/cal-component.c (cal_component_event_dates_match): make sure
we free all the CalComponentDateTime's when we are finished.
* gui/gnome-cal.c (gnome_calendar_notify_dates_shown_changed): just
return if no time range is set.
svn path=/trunk/; revision=13957
2001-10-23 JP Rosevear <jpr@ximian.com>
* gui/e-meeting-model.c (build_etable): no longer set the
scrollbar policy here
* gui/e-meeting-time-sel.c
(e_meeting_time_selector_update_main_canvas_scroll_region): add an
extra row to the height so the click to add row can be properly
seen
(e_meeting_time_selector_construct): set the scrollbar policy for
the etable scrolled
svn path=/trunk/; revision=13948
2001-10-23 JP Rosevear <jpr@ximian.com>
* cal-util/timeutil.c (icaltimetype_to_tm): convert an
icaltimetype to a tm
(tm_to_icaltimetype): vice versa
* cal-util/timeutil.h: new protos
* conduits/calendar/calendar-conduit.c: replace all mktime and
localtime calls (except for debugging calls)
* conduits/todo/todo-conduit.c: ditto
(comp_from_remote_record): make sure the completed time is in UTC
svn path=/trunk/; revision=13946
2001-10-23 Rodrigo Moya <rodrigo@ximian.com>
* cal-client/cal-query.c (cal_query_construct) set priv->corba_query
to CORBA_OBJECT_NIL if there was an error
svn path=/trunk/; revision=13939
2001-10-22 Damon Chaplin <damon@ximian.com>
* idl/evolution-calendar.idl: added setDefaultTimezone() method.
* pcs/cal-backend.c (cal_backend_get_default_timezone):
(cal_backend_set_default_timezone): new functions to call class
methods.
* pcs/cal-backend-file.c: lots of changes to handle the default
timezone and use it.
* pcs/query.c: use the default timezone.
* gui/dialogs/task-details-page.c (date_changed_cb): initialized
completed_tt.
* gui/dialogs/event-page.c: changed it to handle DATE values. The
'All Day Event' checkbox is only set now when the DTSTART and DTEND
are DATE values.
* gui/dialogs/comp-editor-util.c (comp_editor_free_dates): free the
CalComponentDateTime structs as well.
* gui/e-tasks.c: set the default timezone on the server.
* gui/tag-calendar.c:
* gui/gnome-cal.c:
* gui/e-week-view.c:
* gui/e-day-view.c: updates to handle DATE values.
* gui/e-calendar-table.c (date_compare_cb): updated to use the new
ECellDateEditValue values, so it now works.
(percent_compare_cb): updated to use GPOINTER_TO_INT values.
(e_calendar_table_init): use an ECellPercent for the percent field
and an ECellDateEditText for the date fields.
* gui/comp-util.c (cal_comp_util_compare_event_timezones): return TRUE
if the DTSTART or DTEND is a DATE value. We don't want to show the
timezone icons for DATE values.
* gui/comp-editor-factory.c (resolve_pending_requests): set the default
timezone on the server.
* gui/calendar-model.c: major changes to support sorting properly.
For date and percent fields we now use subclasses of ECellText, so
we don't use a char* as the model value. For the percent field we now
use a GINT_TO_POINTER. For the date fields we now use a
ECellDateEditValue* as the value.
* gui/calendar-config.c (calendar_config_configure_e_cell_date_edit):
set the timezone and use_24_hour flags of the new ECellDateEditText.
* conduits/todo/todo-conduit.c (pre_sync):
* conduits/calendar/calendar-conduit.c (pre_sync): set the default
timezone on the server.
* cal-util/timeutil.c (time_days_in_month): removed debug message.
* cal-util/test-recur.c: try to handle timezones in the iCalendar
file properly, and updated to pass default timezone.
* cal-util/cal-util.c (cal_util_generate_alarms_for_comp):
(cal_util_generate_alarms_for_list): added default timezone argument.
* cal-util/cal-recur.c: changed many of the functions to take a default
timezone, to use to resolve DATE and floating DATE-TIME values.
* cal-client/cal-client.c (cal_client_set_default_timezone): new
function to set the default timezone.
(cal_client_ensure_timezone_on_server): new function to ensure that
a given timezone is on the server.
* gui/e-cell-date-edit-text.c: new subclass of ECellText to display
and edit a date value.
* cal-util/cal-recur.c (cal_obj_byday_expand_monthly): changed week_num
to -week_num when calculating the weeks to go back from the end of the
month for things like BYDAY=-2WE. Fixes bug #11525.
(cal_recur_generate_instances_of_rule): only go up to MAX_YEAR (2037).
We can't really handle anything past that anyway.
(cal_recur_ensure_rule_end_date): initialize cb_date.end_date to 0,
so if the RULE doesn't generate COUNT instances we save 0 as the
time_t.
svn path=/trunk/; revision=13920
2001-10-22 Federico Mena Quintero <federico@ximian.com>
* gui/tasks-control-factory.c (tasks_control_factory_fn): Put up a
warning dialog box if we failed to create the tasks control.
Fixes bug #13033.
svn path=/trunk/; revision=13917
2001-10-22 JP Rosevear <jpr@ximian.com>
* gui/e-itip-control.c (set_date_label): write out the correct
time in the control
* pcs/cal.c (build_fb_seq): utility function to build sequences of
f/b data
(impl_Cal_get_free_busy): use above so we never return a NULL
* conduits/calendar/calendar-conduit-config.h
(calconduit_save_configuration): fix c/p error
(calconduit_load_configuration): ditto
svn path=/trunk/; revision=13876
2001-10-22 JP Rosevear <jpr@ximian.com>
* gui/dialogs/meeting-page.c (meeting_page_destroy): we don't need
to save the state
* gui/e-meeting-time-sel.c (e_meeting_time_selector_destroy):
ditto
* gui/e-meeting-model.c (build_etable): listen for the etable
being destroyed
(table_destroy_cb): save the state when the etable is destroyed
svn path=/trunk/; revision=13872
2001-10-21 JP Rosevear <jpr@ximian.com>
* gui/dialogs/schedule-page.c (init_widgets): listen for changes
in the date editors
(schedule_page_set_dates): update the times when they change
elsewhere
(update_time): set the time in the dialog
(time_changed_cb): notify of changed times
* gui/dialogs/comp-editor.c (page_dates_changed_cb): don't call
the set dates function on the page that noted the change
(page_summary_changed_cb): same for set summary function
* gui/dialogs/event-page.c (update_time): move time setting stuff
to util function
(event_page_set_dates): use it
(event_page_fill_component): ditto
* gui/e-meeting-time-sel.h: fix comment
svn path=/trunk/; revision=13863
2001-10-19 Federico Mena Quintero <federico@ximian.com>
* gui/alarm-notify/alarm-notify.c (add_uri_to_load): Do not assert
if we fail to load the URI list. This would of course have been a
bonobo-conf activation problem.
(remove_uri_to_load): Likewise.
* gui/alarm-notify/notify-main.c (load_calendars): Likewise.
* gui/alarm-notify/alarm-queue.c (load_missed_alarms): Make the
time range half-open so that we do not display the last alarm
twice.
svn path=/trunk/; revision=13797
2001-10-19 Rodrigo Moya <rodrigo@ximian.com>
* gui/calendar-model.c (calendar_model_set_status_message): make
it a public function
* gui/e-tasks.c (e_tasks_open): display progress messages
(cal_opened_cb): clean up status bar messages
* gui/gnome-cal.c (gnome_calendar_open): display progress messages
(client_cal_opened_cb): clean up status bar messages
svn path=/trunk/; revision=13796
2001-10-19 Rodrigo Moya <rodrigo@ximian.com>
* gui/calendar-model.c (set_status_message): new function
(update_query): call set_status_message
(query_query_done_cb):
(query_eval_error_cb): clean up status bar messages
(get_location, set_location): new functions for setting and
retrieving the location in the calendar model
svn path=/trunk/; revision=13794
2001-10-19 Rodrigo Moya <rodrigo@ximian.com>
* gui/component-factory.c (owner_set_cb): keep a reference to the
EvolutionShellClient component
* gui/e-week-view.c (e_week_view_set_status_message): new function
(update_query): call e_week_view_set_status_message
(query_query_done_cb):
(query_eval_error_cb): clean up status bar messages
* gui/e-day-view.c (e_day_view_set_status_message): new function
(update_query): call e_day_view_set_status_message
(query_query_done_cb):
(query_eval_error_cb): clean up status bar messages
* gui/Makefile.am: added EVOLUTION_IMAGESDIR to CFLAGS
svn path=/trunk/; revision=13793
2001-10-18 JP Rosevear <jpr@ximian.com>
* gui/e-meeting-time-sel.c
(e_meeting_time_selector_on_invite_others_button_clicked): call
the invite others dialog in the model
* gui/e-meeting-attendee.c (e_meeting_attendee_get_atype): pick
attendee type based on role and cutype
* gui/e-meeting-attendee.h: remove proto
* gui/Makefile.am: compile select names idl
* gui/e-meeting-model.h: new proto
* gui/dialogs/meeting-page.c: remove invite others dialogs bits
from here
* gui/e-meeting-model.c (e_meeting_model_invite_others_dialog):
and put them here
* gui/dialogs/Makefile.am: compile corba bits in parent dir
* gui/dialogs/comp-editor-util.h: reflect above in includes
* gui/dialogs/e-delegate-dialog.c: ditto
* gui/dialogs/schedule-page.c: ditto and clean includes
svn path=/trunk/; revision=13775
2001-10-18 Larry Ewing <lewing@ximian.com>
* gui/alarm-notify/alarm-notify-dialog.c: add html widget
(url_requested_cb): add function to load images from file as they
are requested.
(write_html_heading): convert to using html.
(alarm_notify_dialog): convert to use html display.
(make_html_display): this is the function the custom widget in the
galde file uses to create the html widget.
* gui/alarm-notify/alarm-notify.glade: add placeholder for the
custom html widget.
* gui/alarm-notify/Makefile.am: add flags for gtkhtml and gal.
svn path=/trunk/; revision=13766
2001-10-18 Federico Mena Quintero <federico@ximian.com>
Adds session management for the alarm daemon. Also makes it store
a list of calendars to be monitored. Those calendars will all be
loaded when the alarm daemon starts up.
* idl/evolution-calendar.idl (AlarmNotify): Removed the ::die()
method. The alarm daemon now handles termination via the session
manager's commands.
* gui/alarm-notify/notify-main.c (set_session_parameters): New
function, sets some parameters so that the session manager can
restart the daemon via the evolution-alarm-client program. Also,
sets up the "die" signal so that the daemon can terminate when the
session ends.
(load_calendars): New function to load the calendars on startup.
(main): Set the session parameters. Load the calendars on startup.
* gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): New
function, moved over from the impl_ function. Added a
load_afterwards argument to indicate whether the calendar should
just be loaded or if it should also be added to the list of
calendars to load on startup.
(AlarmNotify_addCalendar): Use alarm_notify_add_calendar().
(AlarmNotify_removeCalendar): Remove the calendar from the list of
calendars to load on startup.
* gui/alarm-notify/save.c (save_calendars_to_load): New function,
saves a sequence of the URIs to load.
(get_calendars_to_load): New function, loads a sequence of
calendars to load.
* gui/alarm-notify/alarm.h: Removed stale prototype for alarm_init().
* gui/component-factory.c (remove_folder): Ask the alarm daemon to
stop monitoring alarms for the folder that is being deleted.
svn path=/trunk/; revision=13763
2001-10-17 Rodrigo Moya <rodrigo@ximian.com>
* pcs/query.c (match_component): there may be cases when the backend
will return an invalid component from a valid UID (an UID returned
by the get_uids method), so don't abort if that's the case
svn path=/trunk/; revision=13725
2001-10-15 Damon Chaplin <damon@ximian.com>
* gui/dialogs/cal-prefs-dialog.glade: removed Help button. Do we have
any others?
svn path=/trunk/; revision=13692
2001-10-15 JP Rosevear <jpr@ximian.com>
* conduits/calendar/calendar-conduit.c (process_multi_day):
function to break up multi day events into single events for both
evo and the pilot and create new CalClientChange structures
(pre_sync): call above function, and adjust changed list if
necessary
svn path=/trunk/; revision=13678
2001-10-15 JP Rosevear <jpr@ximian.com>
* conduits/calendar/calendar-conduit.c (is_all_day): util function
to determine if event is all day
(local_record_from_comp): use new util function
(comp_from_remote_record): kill use of deprecated time functions
svn path=/trunk/; revision=13673
2001-10-13 Larry Ewing <lewing@ximian.com>
* gui/dialogs/comp-editor.c (real_edit_comp): call
set_icon_from_comp.
(set_icon_from_comp): set the window icon from the comp.
(make_icon_from_comp): get the icon path based on comp type.
* gui/dialogs/Makefile.am (iconsdir): EVOLUTION_ICONSDIR bits.
svn path=/trunk/; revision=13666
2001-10-12 JP Rosevear <jpr@ximian.com>
* gui/dialogs/alarm-page.c: return fill_component success
* gui/dialogs/task-page.c: ditto
* gui/dialogs/task-details-page.c: ditto
* gui/dialogs/schedule-page.c: ditto
* gui/dialogs/recurrence-page.c: ditto
* gui/dialogs/event-page.c: ditto
* gui/dialogs/meeting-page.c: use e_notice instead of
duplicate_error
(meeting_page_get_cancel_comp): duh, deleted_attendees is an array
now
(meeting_page_fill_component): spew gui errors if there is no
organizer or no attendees, return success
* gui/dialogs/event-editor.c (event_editor_send_comp): always call
parent method and don't send the cancellation comp if the method
is publish
(refresh_meeting_cmd): use the orginal comp to refresh
(forward_cmd): prompt the user for the version they want to send
(current, original)
* gui/dialogs/task-editor.c (forward_cmd): as above
(refresh_task_cmd): ditto
* gui/dialogs/comp-editor-page.c
(comp_editor_page_fill_component): return boolean of whether the
component could be filled or not
* gui/dialogs/comp-editor-page.h: update proto
* gui/dialogs/comp-editor.c (prompt_to_save_changes): take a param
on whether to try and send or not
(comp_editor_get_current_comp): only fill component if its changed
(comp_editor_save_comp): prompt user as well
* gui/dialogs/comp-editor.h: change proto
* gui/itip-utils.c: replace error_dialog with e_notice
(comp_content_type): specify charset
svn path=/trunk/; revision=13635
2001-10-11 Larry Ewing <lewing@ximian.com>
* gui/e-itip-control.c: large reworking of i18n tagging and now
uses gtk_html_stream write and U_ where appropriate. More to
come.
svn path=/trunk/; revision=13592
2001-10-10 Federico Mena Quintero <federico@ximian.com>
* pcs/cal-factory.c (lookup_backend): Return the original key in
the hash table if requested.
(backend_last_client_gone_cb): Use lookup_backend() so that we
have the URI mangling done for us.
(impl_CalFactory_open): The type should be GtkType *, not GtkType!
svn path=/trunk/; revision=13557
2001-10-09 Federico Mena Quintero <federico@ximian.com>
Fixes bug #884.
* gui/alarm-notify/save.[ch]: New files with functions to
save/load the last notification time.
* gui/alarm-notify/alarm-queue.c (alarm_trigger_cb): Save the last
notification time.
(alarm_queue_init): Load the last notification time when the
daemon is inited.
(alarm_queue_add_client): Load the alarms that we missed while the
alarm daemon was not running.
(cal_opened_cb): Likewise.
* gui/alarm-notify/Makefile.am (evolution_alarm_notify_SOURCES):
Added save.[ch] to the list of sources.
svn path=/trunk/; revision=13538
2001-10-09 JP Rosevear <jpr@ximian.com>
* gui/itip-utils.c (get_address): util function to get address
(itip_addresses_get_default): get only the default address
(itip_address_free): free single address
(itip_addresses_free): use above
(comp_limit_attendees): limit the number of attendees to one, the
user
(comp_sentby): set the sentby parameter if the user is not the
organizer
(comp_minimal): remove extraneous info for send (for refresh and
declinecounter)
(comp_compliant): remove all alarms, do various things to make the
components comply with itip spec based on method
(itip_send_comp): use comp_compliant method
* gui/itip-utils.h: new protos
* gui/e-itip-control.c: rescan the component when necessary
(get_next): don't get stuck in infinite loop if there are no
viewable components
(e_itip_control_set_data): if there are no viewable components,
spit an error message
* gui/dialogs/meeting-page.h: tidy
* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): use
organizer's cn if possible
(other_clicked_cb): no longer doing the sent by stuff directly,
hide more widgets
* pcs/query.c: use bonobo exception stuff
* cal-util/cal-component.c (cal_component_rescan): have the comp
rescan its libical component (for when you change things directly)
(free_icalcomponent): take a param on whether to free the
component or just clean up the mappings
(cal_component_has_attendees): util function
* cal-util/cal-component.h: new protos
svn path=/trunk/; revision=13525
2001-10-09 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-factory.c (lookup_backend, add_backend): deal correctly with
URIs to be inserted into the hash table, so that we don't add the same
backend over and over because the URI strings were different (although
refering to the same backend)
svn path=/trunk/; revision=13523
2001-10-09 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-backend-file.c (mail_account_*): moved to a common place
(cal_backend_file_open): check if "uristr != NULL" and not
"uri != NULL"
* pcs/cal-backend-util.c: moved to here
* gui/e-day-view.c: add missing header file
svn path=/trunk/; revision=13517
2001-10-03 JP Rosevear <jpr@ximian.com>
* gui/itip-utils.c (itip_send_comp): refactor functionality into
several function
(comp_string): if we are publishing, empty the attendee list
* gui/dialogs/event-editor.c (schedule_meeting_cmd): when we
schedule a new meeting, mark the event editor as changed
* pcs/cal.c (cal_class_init): get correct parent class
* gui/dialogs/comp-editor.c (comp_editor_merge_ui): use the
generated ui component name
svn path=/trunk/; revision=13385