Commit Graph

188 Commits

Author SHA1 Message Date
c3876df777 Fixes bug #5282.
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-24 17:27:22 +00:00
04bda8ad1e added setDefaultTimezone() method.
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-23 00:23:42 +00:00
c44198513e we don't need to save the state
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-22 15:12:40 +00:00
d6e71d2ad9 listen for changes in the date editors (schedule_page_set_dates): update
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-22 03:51:41 +00:00
f6dfb49861 call the invite others dialog in the model
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 21:34:04 +00:00
88f393a6d0 removed Help button. Do we have any others?
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-16 01:25:14 +00:00
dba5f1b79e remove warnings.
2001-10-15  Larry Ewing  <lewing@ximian.com>

	* gui/dialogs/comp-editor.c (set_icon_from_comp): remove warnings.

svn path=/trunk/; revision=13686
2001-10-15 21:49:55 +00:00
a28d046880 call set_icon_from_comp. (set_icon_from_comp): set the window icon from
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-14 04:02:13 +00:00
8c4d603998 send cancellation comp if necessary
2001-10-13  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/task-editor.c (task_editor_send_comp): send
	cancellation comp if necessary

svn path=/trunk/; revision=13655
2001-10-13 17:01:19 +00:00
1bd22eb65b return fill_component success
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-12 22:09:57 +00:00
1359335208 fix logic checks
2001-10-10  JP Rosevear  <jpr@ximian.com>

	* pcs/cal-factory.c (add_uri): fix logic checks

	* gui/dialogs/event-editor.c (event_editor_init): init the
	exisiting_org boolean
	(set_menu_sens): base sensitivity on existing_org boolean
	(event_editor_edit_comp): set exisiting_org boolean

	* gui/dialogs/task-editor.c: same as above

	* gui/calendar-offline-handler.c (add_connection): handle the
	protocol or host being unknown

	* cal-util/cal-component.c (cal_component_has_organizer):
	implement

svn path=/trunk/; revision=13552
2001-10-10 14:37:14 +00:00
4186cba8a6 util function to get address (itip_addresses_get_default): get only the
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 18:37:53 +00:00
2ddb68d1f7 refactor functionality into several function (comp_string): if we are
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
2001-10-03 20:15:28 +00:00
7e35463832 save the EXDATE as a DATE-TIME value, since we know the exact time. Fixes
2001-10-03  Damon Chaplin  <damon@ximian.com>

	* gui/comp-util.c (cal_comp_util_add_exdate): save the EXDATE as a
	DATE-TIME value, since we know the exact time. Fixes bug #11278.
	(Before we were setting is_date, but icaltime_from_timet_with_zone()
	didn't convert it properly. We need to figure out how to handle DATEs
	when using time_t's.)

	* gui/dialogs/recurrence-page.c (get_exception_string): use
	e_time_format_date_and_time() so we show the time as well, if the
	exception is a DATE-TIME value.

	* cal-util/timeutil.c: removed time_add_month(), time_year_begin(),
	time_month_begin() & time_week_begin() - old pre-timezone functions
	which we no longer use.

	* cal-util/cal-recur.c (cal_recur_from_icalproperty): set
	ir.until.is_date to FALSE before converting to a time_t.
	Hopefully fixes bug #5034.

svn path=/trunk/; revision=13366
2001-10-03 04:34:53 +00:00
11c665c925 Use bonobo_ui_component_new_default()', not bonobo_ui_component_new()'.
* e-shell-view.c (e_shell_view_construct): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* mail-account-gui.c (launch_signature_editor): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* e-msg-composer.c (setup_ui): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* gui/dialogs/comp-editor.c (setup_widgets): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

svn path=/trunk/; revision=13306
2001-10-02 18:33:34 +00:00
0586d60922 unref the page objects here, instead of in close_dialog(). (This was fixed
2001-10-01  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_destroy): unref the page
	objects here, instead of in close_dialog(). (This was fixed a while
	ago, but accidentally reverted.) Fixes bug #7543.

svn path=/trunk/; revision=13278
2001-10-01 20:12:00 +00:00
11b30502cd use bound_text to print the summary, so it wraps instead of being clipped
001-09-28  Damon Chaplin  <damon@ximian.com>

	* gui/print.c (print_comp_item): use bound_text to print the summary,
	so it wraps instead of being clipped to 1 line. Fixes part 3 of bug
	#10285, I think.

	* gui/dialogs/alarm-page.glade: left-aligned the Date/Time label.
	Also set the width of the Summary & Date/Time labels to 10, and set
	expand to TRUE, to make sure that the dialog doesn't keep getting
	wider as the summary text on the main page gets longer. Could possibly
	use an EClippedLabel here instead, so we get a '...' at the end if it
	is clipped.

	* gui/dialogs/recurrence-page.glade: changed Summary & Date/Time
	widths as above.

	* gui/print.c (print_calendar): use landscape mode for the month
	preview.
	(print_border_with_triangles): use EPSILON to account for floating
	point errors. Hopefully fixes part 2b of bug #10285.

svn path=/trunk/; revision=13246
2001-09-29 01:51:45 +00:00
b235a79eff added comparison functions for these special cell types. But the date and
2001-09-26  Damon Chaplin  <damon@ximian.com>

	* gui/e-calendar-table.c (date_compare_cb):
	(percent_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
	above.

svn path=/trunk/; revision=13186
2001-09-27 04:02:17 +00:00
4be389206b Fixes the GUI part of bug #7892.
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
2001-09-27 00:16:24 +00:00
568c0dcc4b disconnect signals first thing
2001-09-26  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_destroy): disconnect
	signals first thing

svn path=/trunk/; revision=13151
2001-09-26 16:25:25 +00:00
3c4c88c974 Warning fixes courtesy of Chris Lahey <clahey@ximian.com>.
2001-09-25  Federico Mena Quintero  <federico@ximian.com>

	Warning fixes courtesy of Chris Lahey <clahey@ximian.com>.

	* gui/e-itip-control.c (write_html): Warning fixes.  Also, don't
	strdup() more than necessary.

	* gui/e-meeting-time-sel.c (e_meeting_time_selector_refresh_cb):
	Warning fixes.

	* gui/itip-utils.c (itip_addresses_get): Warning fixes.

	* gui/print.c (print_day_background): Warning fixes.

	* gui/dialogs/alarm-options.c (alarm_to_aalarm_widgets): Warning
	fixes.
	(alarm_to_palarm_widgets): Likewise.

	* gui/dialogs/delete-comp.c: #include "../calendar-config.h"

svn path=/trunk/; revision=13120
2001-09-25 21:12:41 +00:00
ce71400f35 use bonobo-exception stuff to clean code
2001-09-25  JP Rosevear  <jpr@ximian.com>

	* pcs/cal.c: use bonobo-exception stuff to clean code

	* pcs/cal-factory.c (add_uri): add uri to the list if the type
	matches
	(impl_CalFactory_uriList): implement uriList method

	* pcs/cal-backend.h: new virtual function member

	* pcs/cal-backend.c (cal_backend_is_remote): call virtual function

	* pcs/cal-backend-file.c (cal_backend_file_class_init): override
	virtual function
	(cal_backend_file_is_remote): new virtual function, always return
	FALSE

	* idl/evolution-calendar.idl: uriList factory call, with flags for
	types to get

	* gui/dialogs/comp-editor.c (comp_editor_destroy): cast to remove
	warning

	* gui/e-itip-control.c (write_label_piece): kill warnings by take
	const char *

	* gui/component-factory.c (create_object): aggregate offline
	interface

	* gui/Makefile.am: compile new files

	* calobj.[hc]: Remove obsolete files

	* cal-util/cal-util.h: enum URI types for uriList call

	* cal-client/cal-client.c (build_uri_list): build list from string
	sequence
	(cal_client_uri_list): factory call to get uri list

	* cal-client/cal-client.h: new proto

	* cal-client/cal-client.c: use bonobo exception stuff to clean
	code

	* gui/calendar-offline-handler.[hc]: Start some skeleton routines
	for online/offline handling

	* pcs/cal-factory.c (launch_backend_for_uri): use accessor and
	remove FIXME

svn path=/trunk/; revision=13110
2001-09-25 16:35:40 +00:00
a2f7306500 make sure to release the ref on priv->comp.
2001-09-20  Larry Ewing  <lewing@ximian.com>

	* gui/dialogs/recurrence-page.c (recurrence_page_destroy): make
	sure to release the ref on priv->comp.

	* gui/dialogs/comp-editor.c (real_edit_comp): make sure to release
	the ref on priv->comp.

svn path=/trunk/; revision=13008
2001-09-20 05:19:37 +00:00
b597fe2844 Display a notification message always, in addition to playing the sound.
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"
	option.

	* gui/dialogs/alarm-page.c (action_map): Removed CAL_ALARM_EMAIL.

svn path=/trunk/; revision=13004
2001-09-20 02:35:36 +00:00
e5c7ee01fd listen for model changes (task_editor_edit_comp): add the attendees to the
2001-09-19  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/task-editor.c (init_widgets): listen for model
	changes
	(task_editor_edit_comp): add the attendees to the model and notify
	of need send
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/event-editor.c (init_widgets): listen for model
	changes
	(event_editor_init): flip page order
	(event_editor_edit_comp): set needs send value
	(schedule_meeting_cmd): flip page order
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/schedule-page.c: remove model change notification
	stuff
	(schedule_page_fill_widgets): no need to do the needs_send here
	because the editor handles this since it owns the model

	* gui/dialogs/event-editor.c (init_widgets): listen for model
	changes
	(event_editor_init): flip page order
	(event_editor_edit_comp): set needs send value
	(schedule_meeting_cmd): flip page order
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): no need
	to do the needs_send here because the editor handles this since it
	owns the model
	(invite_entry_changed): ditto

	* gui/dialogs/comp-editor.c (comp_editor_set_changed): new
	accessor
	(comp_editor_get_changed): ditto
	(comp_editor_set_needs_send): ditto
	(comp_editor_get_needs_send): ditto

	* gui/dialogs/comp-editor.h: new protos

	* gui/itip-utils.c (itip_addresses_get): reflect configuration
	path changes in the mailer

	* gui/e-meeting-model.c: remove commented out code, ifdef one
	section for later

svn path=/trunk/; revision=12983
2001-09-19 18:46:34 +00:00
d639a620a6 A page that shows the meeting time selector and free/busy data for
2001-09-18  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/schedule-page.*: A page that shows the meeting time
	selector and free/busy data for attendees

	* gui/dialogs/meeting-page.c: use the meeting model to track/edit
	attendees, remove table value conversion routines and simple table
	routines
	(set_attendees): take a pointer array
	(meeting_page_destroy): destroy the pointer array, save state
	(meeting_page_init): new pointer array
	(meeting_page_fill_widgets): don't null the deleted attendees
	field
	(popup_delegate_cb): array add
	(popup_delete_cb): array add
	(cleanup_attendees): iterate over the array to unref now
	(meeting_page_fill_widgets): don't null out fields, no need to add
	attendees here
	(invite_entry_changed): use e_meeting_attendee routines
	(popup_delegate_cb): ditto
	(popup_delete_cb): ditto
	(meeting_page_new): take new arg and pass it to construct
	(meeting_page_construct): take new arg, use e-meeting-model
	routines to construct table

	* gui/dialogs/task-editor.c (task_editor_init): new meeting model
	(task_editor_destroy): unref the model

	* gui/dialogs/event-editor.c (event_editor_init): make new model
	and pass it to meeting and schedule pages
	(event_editor_set_cal_client): virtual function, set meeting model
	client
	(event_editor_edit_comp): add the attendees to the model
	(event_editor_destroy): unref model

	* gui/dialogs/comp-editor.h: add virtual function

	* gui/dialogs/comp-editor.c (comp_editor_set_cal_client): make
	set_cal_client a virutal function

	* gui/e-meeting-types.h: generally useful type defines

	* gui/e-meeting-time-sel*.[hc]: Move here and use an e-table for
	the attendee list and extract display information from the new
	meeting model and attendees

	* gui/e-meeting-time-sel.etspec: spec for the table

	* gui/e-meeting-attendee.[hc]: meeting attendees for the model,
	with to/from conversions for CalComponentAttendee structure, emits
	changed signal and allows getting and setting of free busy
	periods

	* gui/e-meeting-model.[hc]: move the model out on its own

	* gui/e-itip-control.c (write_error_html): clean up warnings

svn path=/trunk/; revision=12968
2001-09-19 04:33:33 +00:00
54141f67b7 Fixes bug #2830.
2001-09-18  Federico Mena Quintero  <federico@ximian.com>

	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
2001-09-18 20:56:38 +00:00
999889586b added a timeout to refresh the list every 10 minutes. Not ideal, as the
2001-09-17  Damon Chaplin  <damon@ximian.com>

	* gui/calendar-model.c: added a timeout to refresh the list every
	10 minutes. Not ideal, as the user may be editing a task when it gets
	refreshed.
	(adjust_query_sexp): use the 'completed-before?' operator to filter
	out tasks according to the config settings.

	* gui/dialogs/task-details-page.c (task_details_page_fill_widgets):
	added support for the 'Completed' date. This code must have got lost
	somewhere, as it used to work.
	(date_changed_cb): set the priv->updating flag while updating the other
	widgets.

	* pcs/cal-backend-file.c (cal_backend_file_update_objects): made sure
	we freed the components.

	* pcs/query.c (func_completed_before): added 'completed-before?'
	operator.

	* gui/calendar-config.c (calendar_config_configure_e_cell_date_edit):
	don't set the lower & upper hour. Use 0-24 like the EDateEdit does.

	* gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config): set
	the 12/24-hour time format options sensitive only if we support both.

	* gui/calendar-config.c (config_read): if the locale doesn't define
	'am' and 'pm' strings then we must use 24-hour format.

	* gui/calendar-commands.c (calendar_set_folder_bar_label): don't
	translate the '%d' as it doesn't make much sense. Resolves bug #8027.

svn path=/trunk/; revision=12925
2001-09-18 01:35:46 +00:00
67b6c40da6 Updated required version of gal to 0.11.99.4.
2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Updated required version of gal to 0.11.99.4.

From calendar/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* gui/dialogs/meeting-page.c (build_etable): Updated this to match
	the new ETableSimple interface.

From mail/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (ml_get_node_by_id): Made save_id const here.

From shell/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* e-storage-set-view.c (etree_get_node_by_id): Made save_id const
	here.

svn path=/trunk/; revision=12870
2001-09-17 04:00:31 +00:00
772312b867 [Automake 1.5 fixes pointed out by Richard Boulton
<richard@tartarus.org>, as per #9258.]

* gui/alarm-notify/Makefile.am: Set CLEANFILES directly instead of using
`+='.

svn path=/trunk/; revision=12842
2001-09-14 23:26:40 +00:00
b280d814d6 use ical partstat, role, cutypes directly
2001-09-13  JP Rosevear  <jpr@ximian.com>

	* cal-util/cal-component.h: use ical partstat, role, cutypes
	directly

	* cal-util/cal-component.c: ditto

	* gui/e-itip-control.c (find_my_address): set my addresses if the
	addresses match
	(find_attendee): strstr returns non-null on a match
	(write_html): use new icon, select the name displayed (organizer
	or attendee) based on method,
	(ok_clicked_cb): when rsvp'ing strip off all but the attendee
	being replied for as is specified in the spec
	(find_attendee_partstat): new util function to extract the
	partstat of an attendee
	(update_attendee_status): updates the partstat of a specific
	attendee in the reply message

	* gui/dialogs/meeting-page.c: use ical partstat, role, cutypes
	directly
	(popup_delegate_cb): if we delegate, notify of needs send and
	changed
	(popup_delete_cb): notify of needs send and changed for each
	deletion

svn path=/trunk/; revision=12806
2001-09-13 19:06:15 +00:00
ff6d984bb6 free the destination vector when we finish with it, if we actually add
2001-09-11  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c (invite_entry_changed): free the
	destination vector when we finish with it, if we actually add
	anyone, notify listeners of the needs send and changed info. Fixes
	bug #8632.

svn path=/trunk/; revision=12771
2001-09-11 23:32:45 +00:00
7eca7e4590 Handle the new icalattach type instead of struct icalattachtype.
2001-09-10  Federico Mena Quintero  <federico@ximian.com>

	* cal-util/cal-component.c (cal_component_alarm_get_attach):
	Handle the new icalattach type instead of struct icalattachtype.
	(cal_component_alarm_set_attach): Likewise.

	* gui/dialogs/alarm-options.c (alarm_to_aalarm_widgets): Likewise.
	(alarm_to_palarm_widgets): Likewise.
	(aalarm_widgets_to_alarm): Likewise.
	(palarm_widgets_to_alarm): Likewise.

svn path=/trunk/; revision=12749
2001-09-10 23:00:17 +00:00
b5660966bd don't call calendar_config_check_timezone_set() now, since the startup
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
2001-09-04 00:36:49 +00:00
c453eb0f45 fix debugging messages so they use "" rather than NULL. Fixes bug #8559.
2001-08-31  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_widget):
	(comp_editor_contacts_to_component): fix debugging messages so they
	use "" rather than NULL. Fixes bug #8559.

svn path=/trunk/; revision=12539
2001-08-31 21:24:52 +00:00
e27c0f7d1a Unset the priv->updating flag before returning in the case the component
2001-08-22  Federico Mena Quintero  <federico@ximian.com>

	* gui/dialogs/recurrence-page.c (recurrence_page_fill_widgets):
	Unset the priv->updating flag before returning in the case the
	component has no recurrence information.  Fixes bug #6850.

svn path=/trunk/; revision=12413
2001-08-23 01:57:25 +00:00
d464c77c92 Added a snooze flag to differentiate snoozed alarms from real occurrences.
2001-08-22  Federico Mena Quintero  <federico@ximian.com>

	* gui/alarm-notify/alarm-queue.c (QueuedAlarm): Added a snooze
	flag to differentiate snoozed alarms from real occurrences.
	(add_component_alarms): Do not specify a destroy function for the
	alarm trigger.  We handle this in the callbacks now.
	(alarm_trigger_cb): Just remove the alarms for the unimplemented
	notification types.
	(create_snooze): Implemented snooze.
	(notify_dialog_cb): Snooze as appropriate.

svn path=/trunk/; revision=12412
2001-08-23 01:41:56 +00:00
fd6f190235 Handle the case where there is no attachment. Fixes bug #7257.
2001-08-21  Federico Mena Quintero  <federico@ximian.com>

	* gui/dialogs/alarm-options.c (alarm_to_palarm_widgets): Handle
	the case where there is no attachment.  Fixes bug #7257.

svn path=/trunk/; revision=12368
2001-08-21 22:08:39 +00:00
c8905eabfc added new e-sexp operator. We don't currently use it though.
2001-08-21  Damon Chaplin  <damon@ximian.com>

	* pcs/query.c (func_is_completed): added new e-sexp operator. We
	don't currently use it though.

	* gui/dialogs/cal-prefs-dialog.glade: Changed '_Overdue' to 'O_verdue'
	since we have an '_Other' notebook tab. Added '_Hide' accel.

	* gui/dialogs/cal-prefs-dialog.c: hooked up config options to dialog.

	* gui/calendar-config.c: added config options for hiding completed
	tasks.

	* gui/e-week-view-event-item.c (e_week_view_event_item_draw):
	* gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event):
	* gui/e-day-view.c (e_day_view_reshape_long_event): added 2 pixels
	extra space between icons and text for long events, and 1 pixel space
	between icons in all events.
	(e_day_view_realize): changed the background color to match the
	EGrayBar in the shell.

svn path=/trunk/; revision=12347
2001-08-21 19:06:17 +00:00
dffd242dab use Delete icon in menu, and change to bigger Save icon in toolbar.
2001-08-20  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (pixmaps): use Delete icon in menu, and
	change to bigger Save icon in toolbar.

svn path=/trunk/; revision=12280
2001-08-20 09:47:41 +00:00
5ab5cd2560 use new delete icon for toolbar.
2001-08-20  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (pixmaps): use new delete icon for toolbar.

svn path=/trunk/; revision=12244
2001-08-20 04:33:56 +00:00
8bd886a64a added option to hide completed tasks after a given number of
2001-08-18  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/cal-prefs-dialog.glade: added option to hide completed
	tasks after a given number of minutes/hours/days. Unfinished.

	* gui/dialogs/event-page.c (event_page_fill_component): initialize
	zone to NULL to avoid a warning.
	(contacts_clicked_cb): work around a bug in SelectNames by notifying
	that the page has changed when you click the 'Contacts' button.
	Otherwise it is easy to lose changes.

	* gui/dialogs/task-page.c (contacts_clicked_cb): ditto.

svn path=/trunk/; revision=12215
2001-08-19 02:57:47 +00:00
92f1432df4 used new Save/Save As icons.
2001-08-18  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (pixmaps): used new Save/Save As icons.

	* gui/tasks-control.c:
	* gui/calendar-commands.c (pixmaps): added new Cut/Copy/Paste icons,
	and changed the 'New Task' icon to use the bigger one I made.

svn path=/trunk/; revision=12214
2001-08-19 02:44:28 +00:00
152714f030 Use e_dialog_editable_get instead of gtk_editable_get_chars (we need UTF-8
2001-08-05  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/dialogs/task-page.c (summary_changed_cb):
	Use e_dialog_editable_get instead of gtk_editable_get_chars (we need
	UTF-8 string).

svn path=/trunk/; revision=12209
2001-08-18 23:00:18 +00:00
4e60b7d947 Startup assistant stuff
svn path=/trunk/; revision=12145
2001-08-17 04:29:11 +00:00
b9b5aa0a0e hide the timezone fields for all-day events. We will use DATE values for
2001-08-16  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/event-page.c: hide the timezone fields for all-day
	events. We will use DATE values for these eventually, and these
	don't have timezones associated with them. Currently we just use the
	default timezone for all-day events, as a workaround until we have
	DATE values working.

	* gui/dialogs/comp-editor-util.c (comp_editor_new_date_edit): added
	make_time_insensitive flag. Though we may not use it.

	* gui/dialogs/event-page.glade: made the 'All day event' toggle
	right-aligned, so it doesn't move when the other widgets are shown
	and hidden.

	* gui/e-timezone-entry.c (e_timezone_entry_set_default_timezone): new
	function to set the default timezone of the widget. If the current
	timezone setting matches the default then the entry field is hidden.
	Most people won't use timezones so this makes the GUI simpler.

	* gui/dialogs/event-page.c (init_widgets):
	* gui/dialogs/task-page.c (init_widgets): set the default timezone
	using the above function.

	* gui/dialogs/task-page.c (task_page_fill_widgets): if the start date
	or due date is not set, we use the default timezone, so the user
	doesn't have to set this each time they set the date.

svn path=/trunk/; revision=12137
2001-08-16 23:37:38 +00:00
5c7afa96f0 If the component has no alarms remember to set the priv->updating flag to
2001-08-16  Federico Mena Quintero  <federico@ximian.com>

	* gui/dialogs/alarm-page.c (alarm_page_fill_widgets): If the
	component has no alarms remember to set the priv->updating flag to
	FALSE before returning.

svn path=/trunk/; revision=12128
2001-08-16 21:35:24 +00:00
052416eb6f get the destinations property, not the text property
2001-08-16  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/e-delegate-dialog.c
	(e_delegate_dialog_get_delegate_name): get the destinations
	property, not the text property

svn path=/trunk/; revision=12126
2001-08-16 21:06:23 +00:00
8399cad791 Set the default-to-add notification to be display a message 15 minutes
2001-08-16  Federico Mena Quintero  <federico@ximian.com>

	* gui/dialogs/alarm-page.c (clear_widgets): Set the default-to-add
	notification to be display a message 15 minutes before the start
	of the appointment.  Fixes bug #7175.

svn path=/trunk/; revision=12123
2001-08-16 20:45:43 +00:00
ced6dc05f8 New function to strip surrounding whitespace from a string of categories
2001-08-16  Federico Mena Quintero  <federico@ximian.com>

	* gui/dialogs/comp-editor-util.c (comp_editor_strip_categories):
	New function to strip surrounding whitespace from a string of
	categories entered by the user.

	* gui/dialogs/task-page.c (task_page_fill_component): Use
	comp_editor_strip_categories().

	* gui/dialogs/event-page.c (event_page_fill_component): Likewise.

svn path=/trunk/; revision=12122
2001-08-16 20:27:04 +00:00