1. 24 Oct, 2001 1 commit
    • Federico Mena Quintero's avatar
      Fixes bug #5282. · c3876df7
      Federico Mena Quintero authored
      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
      	(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
      	* 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
  2. 12 Oct, 2001 1 commit
    • JP Rosevear's avatar
      return fill_component success · 1bd22eb6
      JP Rosevear authored
      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
      	(meeting_page_get_cancel_comp): duh, deleted_attendees is an array
      	(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
  3. 27 Sep, 2001 2 commits
    • Damon Chaplin's avatar
      added comparison functions for these special cell types. But the date and · b235a79e
      Damon Chaplin authored
      2001-09-26  Damon Chaplin  <damon@ximian.com>
      	* gui/e-calendar-table.c (date_compare_cb):
      	(priority_compare_cb): added comparison functions for these special
      	cell types. But the date and percent ones don't work yet due to the
      	use of static text buffers for return cell values.
      	(e_calendar_table_init): added the comparison functions to the
      	ETableExtras. NOTE: task_compare_cb() never seems to be called.
      	I'm not sure why it is there.
      	* gui/e-calendar-table.etspec: set the comparison function names for
      	the date/percent/priority fields.
      	* cal-util/cal-util.c (cal_util_priority_to_string):
      	(cal_util_priority_from_string): new utility functions.
      	* gui/calendar-model.c (get_priority):
      	(set_priority): used above utility functions, and removed the warning
      	dialog which isn't useful now that the field isn't editable.
      	* gui/dialogs/event-page.c (times_updated): handle timezones and for
      	all-day events make sure it stays an all-day event after adjusting.
      	Fixes bugs #5945 and #10222.
      	* gui/calendar-commands.c (pixmaps): fixed the E_PIXMAP paths - the
      	edit items were moved beneath 'EditPlaceholder'. This gets rid of
      	those long Bonobo warnings! (and we get the icons back)
      	* gui/dialogs/comp-editor.c (pixmaps): removed the PrintPreview toolbar
      	icon, since it doesn't appear in the xml file. Gets rid of warning.
      	* gui/dialogs/event-page.c (notify_dates_changed): new function to
      	emit the notification signal when the dates are changed. It also
      	handles timezones now.
      	* gui/dialogs/comp-editor-page.h (CompEditorPageDates): used
      	CalComponentDateTime for start/end/due so we have the timezone as well
      	as the time.
      	* gui/dialogs/comp-editor-util.c (comp_editor_dates): updated to get
      	the timezones as well as the times.
      	(comp_editor_free_dates): new function needed to free all the structs.
      	* gui/dialogs/recurrence-page.c (recurrence_page_set_dates): added call
      	to preview_recur() to make sure the preview gets updated.
      	* gui/dialogs/alarm-page.c (alarm_page_fill_widgets): free the
      	CompEditorPageDates struct after use.
      	* gui/tag-calendar.c (tag_calendar_by_comp): added 'comp_is_on_server'
      	argument. If FALSE, we try to use builtin timezones first. This is
      	needed for the recurrence page of the event editor, because the
      	timezones may not have been added to the server yet. This and the
      	changes to the notification stuff should fix bug #5034.
      	* gui/gnome-cal.c (dn_query_obj_updated_cb): call above
      	tag_calendar_by_comp() with TRUE since the events will be on the
      	server in this case.
      	* gui/e-day-view-layout.c:
      	* gui/e-day-view.c: made sure an event always takes up at least one
      	row, even when the start & end times are the same. Fixes bug #5944.
      	I don't know if we should try to also handle events with the end time
      	before the start time.
      	* gui/e-week-view.c (e_week_view_style_set): check that the small font
      	is actually smaller than the normal font. If it isn't, don't use it.
      	Hopefully fixes bug #6876.
      	(e_week_view_on_new_appointment): if only one day is selected, then
      	we set the initial time of the event to 1/2-hour from the start of the
      	working day, to differentiate 'New Appointment' from 'New All Day
      	Event'. Fixes bug #8892.
      	* gui/e-day-view.c (e_day_view_on_new_appointment): do the same as the
      svn path=/trunk/; revision=13186
    • Federico Mena Quintero's avatar
      Fixes the GUI part of bug #7892. · 4be38920
      Federico Mena Quintero authored
      2001-09-26  Federico Mena Quintero  <federico@ximian.com>
      	Fixes the GUI part of bug #7892.
      	* gui/dialogs/alarm-page.c (get_alarm_duration_string): Return
      	NULL if the duration is zero.
      	(get_alarm_string): Handle duration of zero.  Also, hopefully
      	make the strings be more l10n-friendly.
      	* gui/alarm-notify/alarm.c (alarm_ready_cb): I am a moron.  Fix
      	reversed test.
      svn path=/trunk/; revision=13182
  4. 20 Sep, 2001 1 commit
    • Federico Mena Quintero's avatar
      Display a notification message always, in addition to playing the sound. · b597fe28
      Federico Mena Quintero authored
      2001-09-19  Federico Mena Quintero  <federico@ximian.com>
      	* gui/alarm-notify/alarm-queue.c (audio_notification): Display a
      	notification message always, in addition to playing the sound.
      	(procedure_notification): Present a confirmation dialog before
      	actually running the alarm's program.
      	(procedure_notification): Use gnome_execute_shell() instead of
      	gnome_execute_async() so that we handle multiple arguments
      	properly.  Plus, it is most likely what the user expects.
      	(mail_notification): Display a message about unsupported email
      	reminders instead of blindly dropping the alarm.
      	* gui/dialogs/alarm-options.glade: Added an explanatory message
      	about mail alarms not being supported.
      	* gui/dialogs/alarm-page.glade: Removed the "Send an email"
      	* gui/dialogs/alarm-page.c (action_map): Removed CAL_ALARM_EMAIL.
      svn path=/trunk/; revision=13004
  5. 04 Sep, 2001 1 commit
    • Damon Chaplin's avatar
      don't call calendar_config_check_timezone_set() now, since the startup · b5660966
      Damon Chaplin authored
      2001-09-03  Damon Chaplin  <damon@ximian.com>
      	* gui/calendar-commands.c (calendar_control_activate):
      	* gui/tasks-control.c (tasks_control_activate): don't call
      	calendar_config_check_timezone_set() now, since the startup wizard
      	handles that.
      	* gui/e-tasks.c (e_tasks_class_init): changed selection_changed signal
      	to GTK_RUN_LAST. It has no reason to be GTK_RUN_FIRST.
      	* gui/gnome-cal.c:
      	* gui/e-week-view.c:
      	* gui/e-day-view.c: added "selection_changed" signal,
      	XX_delete_event() and XX_get_num_events_selected().
      	* gui/e-day-view-top-item.c (e_day_view_top_item_draw): fix the shadow
      	around the dates at the top - it was 1 pixel off.
      	* gui/calendar-commands.c: added sensitize_commands(), similar to in
      	tasks-control.c, so we only make Cut/Copy/Delete sensitive when an
      	event is selected. Also added delete_event_cmd().
      	* gui/dialogs/task-page.c (task_page_set_summary):
      	* gui/dialogs/event-page.c (event_page_set_summary): do nothing,
      	since the summary only gets changed on the main event/task page now.
      	Fixes bug #6939.
      	* gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received):
      	(e_day_view_on_top_canvas_drag_data_received): check that we are
      	dragging an event from the same EDayView. We currently don't support
      	DnD from other widgets.
      	(e_day_view_update_top_canvas_drag): only get the summary if we
      	actually have an event. Fixes bug #5162.
      	* gui/e-day-view.c (e_day_view_on_editing_stopped): if the text hasn't
      	changed we need to call e_day_view_update_event_label() to show the
      	times again if necessary. Fixes bug #1813.
      	* gui/dialogs/comp-editor.c (comp_editor_destroy): destroy the
      	CompEditorPage objects here rather than in close_dialog(), after the
      	widgets have been destroyed. We do this because the widgets have lots
      	of signal handlers connected with the CompEditorPage objects as the
      	signal data, so we want to ensure that the data pointer is always
      	valid. (Alternatively we could disconnect all the handlers when the
      	CompEditorPage objects are destroyed, or use connect_while_alive()).
      	Fixes bug #7543.
      	Note: there is still a small bug in that if you type in a time and
      	then hit 'Save and Close', the time won't be saved. I'm not sure
      	where this should be fixed - should the actions which close the
      	dialog grab the focus to the toplevel, so any widgets currently
      	being edited finish the edit and emit 'changed'?
      	* gui/dialogs/recurrence-page.c (append_exception): use
      	gtk_clist_set_row_data_full() so freeing is handled automatically by
      	the GtkClist. This helps avoid problems at destroy-time.
      	(exception_delete_cb): just call gtk_clist_remove() now. No need to
      	free the row data as GtkCList now handles it.
      	(recurrence_page_destroy): no need to free the data in the clist.
      	* gui/dialogs/alarm-page.c: ditto.
      	* gui/dialogs/meeting-page.c: ditto.
      	(etable_destroy_cb): save the ETable state in this new handler cb
      	rather than in the destroy method, since the widget will already be
      	destroyed by then.
      svn path=/trunk/; revision=12575
  6. 16 Aug, 2001 2 commits
  7. 09 Aug, 2001 1 commit
  8. 10 Jul, 2001 1 commit
    • Federico Mena Quintero's avatar
      Pass the parent vCalendar component as the timezone closure of · 1b3ce1c8
      Federico Mena Quintero authored
      2001-07-09  Federico Mena Quintero  <federico@ximian.com>
      	* pcs/cal-backend-file.c (generate_alarms_for_comp): Pass the
      	parent vCalendar component as the timezone closure of
      	* gui/dialogs/alarm-page.c (get_alarm_string): Make the string
      	consistent with the option menu text.
      	(get_alarm_string): Removed extra spaces from the last part of the
      	alarm string.
      svn path=/trunk/; revision=10961
  9. 04 Jul, 2001 1 commit
    • Federico Mena Quintero's avatar
      Fixes bug #4018 and what would be the analogous bugs for the other · dcb5ea41
      Federico Mena Quintero authored
      2001-07-04  Federico Mena Quintero  <federico@ximian.com>
      	Fixes bug #4018 and what would be the analogous bugs for the other
      	component editors.
      	* gui/dialogs/comp-editor-page.h (CompEditorPageClass): New
      	virtual method "::focus_main_widget()".
      	* gui/dialogs/comp-editor-page.c
      	(comp_editor_page_focus_main_widget): New function.
      	* gui/dialogs/comp-editor.c (comp_editor_append_page): If we are
      	inserting the main page, ask it to focus its main widget.
      	* gui/dialogs/alarm-page.c (alarm_page_focus_main_widget):
      	* gui/dialogs/event-page.c (event_page_focus_main_widget):
      	#include "e-util/e-categories-config.h".
      	* gui/dialogs/meeting-page.c (meeting_page_focus_main_widget):
      	* gui/dialogs/recurrence-page.c
      	(recurrence_page_focus_main_widget): Implemented.
      	* gui/dialogs/task-details-page.c
      	(task_details_page_focus_main_widget): Implemented.
      	* gui/dialogs/task-page.c (task_page_focus_main_widget):
      svn path=/trunk/; revision=10784
  10. 03 Jul, 2001 1 commit
    • Federico Mena Quintero's avatar
      New files with the alarm options dialog; this configures the · eb52ee5a
      Federico Mena Quintero authored
      2001-07-02  Federico Mena Quintero  <federico@ximian.com>
      	* gui/dialogs/alarm-options.[ch]: New files with the alarm options
      	dialog; this configures the repeat/duration properties and the
      	options specific to each alarm action type.
      	* gui/dialogs/alarm-page.c (AlarmPagePrivate): Added the alarm
      	options button.  Also, keep an alarm structure which we are
      	editing and an alarm options dialog.
      	(init_widgets): Connect to the options button.
      	(add_clicked_cb): Clone the component we are editing instead of
      	creating a new one so that we preserve the data from the alarm
      	options dialog.
      	(button_options_clicked_cb): Pop up the alarm options dialog.
      	* cal-util/cal-component.c (cal_component_alarm_new): Doh,
      	initialize the other fields in the new alarm.
      svn path=/trunk/; revision=10731
  11. 27 Jun, 2001 1 commit
    • Federico Mena Quintero's avatar
      Renamed the occur field to occur_start; added an occur_end field. This way · 03b231a2
      Federico Mena Quintero authored
      2001-06-26  Federico Mena Quintero  <federico@ximian.com>
      	* idl/evolution-calendar.idl (CalAlarmInstance): Renamed the occur
      	field to occur_start; added an occur_end field.  This way we can
      	present the complete times for the occurrence from the server.
      	* cal-util/cal-component.h (CalAlarmInstance): Likewise.
      	* pcs/cal-backend-file.c (add_alarm_occurrences_cb): Fill the new
      	fields appropriately.
      	(generate_absolute_triggers): Likewise; we use -1 in case the
      	component has no DTSTART or DTEND because there are no meaningful
      	occurrence dates here.
      	(fill_alarm_instances_seq): Fill in the new fields.
      	* cal-client/cal-client.c (build_alarm_instance_list): Likewise.
      	* gui/alarm-notify/alarm-notify-dialog.c (alarm_notify_dialog):
      	Take in both the occur_start and occur_end times.
      	* gui/goto.c (goto_dialog): Free the dlg structure on the bail-out
      	* gui/dialogs/event-page.c (get_widgets): Do not assert if we
      	cannot find the main widget; just return FALSE.
      	* gui/dialogs/alarm-page.c (get_widgets): Likewise.
      	* gui/dialogs/task-page.c (get_widgets): Likewise.
      	* gui/dialogs/task-details-page.c (get_widgets): Likewise.
      	* gui/dialogs/meeting-page.c (get_widgets): Likewise.
      svn path=/trunk/; revision=10517
  12. 01 Jun, 2001 1 commit
    • JP Rosevear's avatar
      renamed from editor-page for consistency, more complete implementation · f4e8698f
      JP Rosevear authored
      2001-06-01  JP Rosevear  <jpr@ximian.com>
      	* gui/dialogs/comp-editor-page.[hc]: renamed from editor-page for
      	consistency, more complete implementation
      	* gui/dialogs/comp-editor.[hc]: More complete implementation
      	* gui/dialogs/*-page.*: The various pages needed to construct the
      	event and task dialogs
      	* gui/dialogs/comp-editor-util.[hc]: useful utility functions for the
      	component editor pages to use
      	* gui/dialogs/Makefile.am: Build and install new files
      	* gui/event-editor*: Remove, obsoleted by the new comp-editor
      	* gui/dialogs/task-editor-dialog.glade: ditto
      	* gui/e-calendar-table.c (open_task): update to use comp editor
      	* gui/e-tasks.c (e_tasks_new_task): ditto
      	* gui/gnome-cal.c (gnome_calendar_edit_object): ditto
      	* gui/Makefile.am: don't build non-existent files nor try to
      	install them
      svn path=/trunk/; revision=10088
  13. 23 May, 2001 1 commit
    • Federico Mena Quintero's avatar
      Finished porting from the old event-editor.c. Made it store a clone of the · 30dce44f
      Federico Mena Quintero authored
      2001-05-23  Federico Mena Quintero  <federico@ximian.com>
      	* gui/dialogs/recurrence-page.c: Finished porting from the old
      	event-editor.c.  Made it store a clone of the component for when
      	we need to expand the recurrence set.
      2001-05-22  Federico Mena Quintero  <federico@ximian.com>
      	* gui/dialogs/event-page.c (event_page_get_dates): New function.
      	* gui/dialogs/editor-page.c (editor_page_set_dates): Renamed from
      	editor_page_set_dtstart(); now sets both DTSTART and DTEND.
      	* gui/dialogs/alarm-page.c (alarm_page_set_dates): Ahem, it is a
      svn path=/trunk/; revision=9953
  14. 16 May, 2001 1 commit
    • Federico Mena Quintero's avatar
      Split the event and task editors into different objects for the separate · f00e9367
      Federico Mena Quintero authored
      2001-05-16  Federico Mena Quintero  <federico@ximian.com>
      	Split the event and task editors into different objects for the
      	separate pages; this way they can be shared by both editors.
      	* gui/dialogs/editor-page.[ch]: New abstract class for a page in a
      	calendar component editor.
      	* gui/dialogs/event-page.[ch]: Main page of an event editor.
      	* gui/dialogs/alarm-page.[ch]: Alarm page of a calendar component
      	* gui/dialogs/recurrence-page.[ch]: Recurrence page of a calendar
      	component editor.
      	* gui/dialogs/event-page.c (event_page_fill_widgets): Eeek, this
      	was missing a bunch of break statements.
      	(event_page_fill_component): Use a temporary variable rather than
      	allocating a struct icaltimetype.
      	* gui/dialogs/alarm-page.c (get_alarm_string): Do not use
      	fixed-size buffers.
      	(alarm_page_fill_widgets): Use cal_obj_uid_list_free().
      	(append_reminder): Now the list stores the plain CalComponentAlarm
      	structures in the row data.  We do *NOT* want to be frobbing the
      	component's data directly.  Rather, we clone the alarms from the
      	component and maintain them on our own.
      	(alarm_page_fill_component): Clone the alarms before adding them
      	to the component so that we maintain the invariant that the alarm
      	structures in the list did *not* come from the component.
      	* cal-util/cal-component.c (cal_component_add_alarm): Added
      	(cal_component_remove_alarm): Added documentation.
      	(cal_component_remove_alarm): Do a lookup in our hash table of
      	alarms instead of scanning the whole component.
      	(CalComponentAlarm): Removed the `parent' field, since it was
      	(cal_component_free_alarm_uids): Removed function, since
      	cal_component_get_alarm_uids() is documented so that the user will
      	know that he must use cal_obj_uid_list_free().
      	(cal_component_alarm_clone): New function.
      svn path=/trunk/; revision=9861