Commit Graph

51 Commits

Author SHA1 Message Date
843b04862e pass extra itip_send_comp params (send_freebusy): ditto (ok_clicked_cb):
002-02-19  JP Rosevear  <jpr@ximian.com>

 	* gui/e-itip-control.c (send_item): pass extra itip_send_comp
 	params
 	(send_freebusy): ditto
 	(ok_clicked_cb): ditto, including the timezones culled from the
 	component

 	* gui/e-week-view.c: pass extra itip_send_comp params

 	* gui/calendar-commands.c: ditto

 	* gui/e-day-view.c: ditto

 	* gui/dialogs/task-editor.c: ditto

 	* gui/dialogs/event-editor.c: ditto

 	* gui/dialogs/comp-editor.c: ditto

 	* gui/itip-utils.h (itip_send_comp): update proto

 	* gui/itip-utils.c (foreach_tzid_callback): check the passed in
 	zones, then the builtin time zones then the client

2002-02-19  JP Rosevear  <jpr@ximian.com>

 	* gui/e-itip-control.c (find_my_address): strip the ical value and
 	do a case insensitive compare
 	(find_attendee): ditto
 	(change_status): put the error message here
 	(ok_clicked_cb): don't update the item or rsvp unless
 	change_status was successful, trip the ical value and do a case
 	insensitive compare

 	* gui/itip-utils.c (get_address): strip the incoming address
 	(itip_strip_mailto): use g_strncasecmp
 	(comp_limit_attendees): strip the ical value and do a case
 	insensitive compare

svn path=/trunk/; revision=15763
2002-02-19 16:26:25 +00:00
72d188ef33 remove needs send signal related cruft (save_comp_with_send): with
2001-12-21  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c: remove needs send signal related
	cruft
	(save_comp_with_send): with send_component_dialog, indicate if the
	meeting info is newly created or not
	(real_edit_comp): remember if the dialog initially needs a send

	* gui/dialogs/send-comp.c (send_component_dialog): take a "new"
	parameter indicating whether the dialog should intimate if the
	component to be sent is a new meeting or not

	* gui/dialogs/send-comp.h: update proto

	* gui/dialogs/comp-editor.c: remove no longer used needs_send
	notification and signal

	* gui/dialogs/comp-editor.h: remove proto

	* gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received): add new
	param to send_component_dialog
	(e_day_view_finish_long_event_resize): ditto
	(e_day_view_finish_resize): ditto
	(e_day_view_on_editing_stopped): ditto
	(e_day_view_on_top_canvas_drag_data_received): ditto

	* gui/e-week-view.c (e_week_view_on_editing_stopped): add new
	param to send_component_dialog

svn path=/trunk/; revision=15204
2001-12-21 16:17:09 +00:00
1
ff1f6c3f1a inherit from bonobo window
2001-12-21    <jpr@ximian.com>

	* gui/dialogs/comp-editor.h: inherit from bonobo window

	* gui/dialogs/comp-editor.c: inherit from bonobo window
	(comp_editor_key_press_event): Look for an escape key press and
	close the window if found

svn path=/trunk/; revision=15202
2001-12-21 14:49:31 +00:00
f7c509da22 make sure to remove all attendees from the model when we edit a new comp,
2001-11-06  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/event-editor.c (event_editor_edit_comp): make sure
	to remove all attendees from the model when we edit a new comp,
	append the pages if they are needed and we weren't showing them
	before

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

 	* gui/dialogs/comp-editor.c (comp_editor_remove_page): check for a
 	return value indicating the page was not found and return if so

svn path=/trunk/; revision=14615
2001-11-07 15:43:32 +00:00
0051272a4e disconnect signals added in append_page(). Fixes Gtk-Critical warning
2001-10-30  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_remove_page): disconnect
	signals added in append_page(). Fixes Gtk-Critical warning about
	GtkAccelGroup being added twice to a window.

svn path=/trunk/; revision=14518
2001-10-31 05:37:20 +00:00
61fd4ec1b8 Fix bug #10016.
2001-10-30  Federico Mena Quintero  <federico@ximian.com>

	Fix bug #10016.

	* gui/dialogs/comp-editor.c (comp_editor_merge_ui): Use
	bonobo_ui_util_set_ui() instead of doing things by hand.  Hmmm, if
	only that function had a way of telling us whether it failed so
	that we could avoid setting the verb list...

	* gui/dialogs/event-editor.c (event_editor_init): Do not pass the
	filename with the full path so that Bonobo can find it in a smart
	way.

	* gui/dialogs/task-editor.c (task_editor_init): Likewise.

svn path=/trunk/; revision=14447
2001-10-30 09:47:58 +00:00
70708440ca when the week start day is set to Sunday, we have to be careful to make
2001-10-27  Damon Chaplin  <damon@ximian.com>

	* gui/print.c (print_week_view):
	(range_selector_new): when the week start day is set to Sunday, we
	have to be careful to make sure we print the correct week, since
	the previous Saturday is actually printed first. Fixes bug #13687.
	(print_week_summary): always set compress_weekend to true if
	multi_week_view is FALSE (i.e. we are printing the week view).
	Fixes bug #13688.

	* gui/e-itip-control.c (send_freebusy): use the timezones from the
	DTSTART and DTEND.
	(write_label_piece): output the date-time and the timezone after it.
	Note that we may want to convert it to the current timezone and display
	that as well. Also converted COMPLETED to the current timezone.
	And fixed all uses of old timezone functions.

	* gui/dialogs/comp-editor.c (commit_all_fields): added function to
	set the focus in the window to NULL, so all fields lose their focus,
	so they emit "changed" signals and update their values if needed.
	We call this when most menu commands are used, e.g. 'Save and Close',
	'Print' etc. Fixes bug #11434. In future we should also check fields
	are valid and show dialogs if they are not.

	* gui/calendar-model.c (get_completed): use the completed value
	properly. Fixes bug #13694.

	* cal-util/timeutil.c (icaltimetype_to_tm_with_zone): don't check
	from_zone and to_zone != NULL. A NULL zone is valid, it is for
	floating times.

svn path=/trunk/; revision=14266
2001-10-28 02:26:21 +00:00
54634a1357 Delete appointments with empty summaries. Fixes Ximian bug #780.
2001-10-27  Federico Mena Quintero  <federico@ximian.com>

	* gui/e-day-view.c (e_day_view_on_editing_stopped): Delete
	appointments with empty summaries.  Fixes Ximian bug #780.

	* gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise.

	* gui/dialogs/delete-comp.c (delete_component_dialog): Added an
	argument to specify whether we unconditionally want single
	components to be considered as not having a summary.

	* gui/comp-util.c (cal_comp_confirm_delete_empty_comp): New
	function.

	* gui/misc.[ch]: New files with miscellaneous utility functions;
	moved string_is_empty() over from calendar-model.c.

	* gui/calendar-model.c: Use the string_is_empty()
	function from misc.c.

	* gui/Makefile.am (evolution_calendar_SOURCES): Added misc.[ch] to
	the list of sources.

svn path=/trunk/; revision=14233
2001-10-27 22:13:20 +00:00
7ba9607966 Fixing the license text.
svn path=/trunk/; revision=14214
2001-10-27 17:38:13 +00:00
7b5415e500 convert the formatted date to UTF-8.
2001-10-26  Damon Chaplin  <damon@ximian.com>

	* gui/e-itip-control.c (write_label_piece): convert the formatted
	date to UTF-8.

	* cal-util/cal-recur.c (CAL_OBJ_DEBUG): turn off debug functions.

	* gui/dialogs/comp-editor-util.c (parse_contact_string): handle UTF8
	correctly. Bug #4450. Good enough for 1.0.

	* gui/e-week-view-event-item.c (e_week_view_draw_time): set the gc
	color before drawing. Should fix bug #11469.

	* gui/dialogs/task-editor.c (task_editor_edit_comp): show or hide the
	meeting page as appropriate. Note this may be called more than once,
	if the task gets updated somewhere else and the user clicks 'Update
	the object'. Hopefully fixes bug #12930.

	* gui/print.c (print_comp_item): printed more fields and made a little
	prettier. Fixes bug #9352.
	(print_date_label): used the correct timezones for each date field.

	* *.c: removed several debug messages.

svn path=/trunk/; revision=14187
2001-10-27 00:07:29 +00:00
e4e894969e subtract 1 from any positive BYSETPOS value, since our array is 0-based.
2001-10-25  Damon Chaplin  <damon@ximian.com>

	* cal-util/cal-recur.c (cal_obj_bysetpos_filter): subtract 1 from
	any positive BYSETPOS value, since our array is 0-based.

	* gui/dialogs/recurrence-page.c (simple_recur_to_comp):
	(recurrence_page_fill_widgets): Outlook (2000) will not accept monthly
	recurrences like BYDAY=2TU. Instead it uses BYDAY=TU;BYSETPOS=2.
	So to be compatable with it we now do the same, although we still
	accept and convert the old format.

	* cal-client/cal-client.c (cal_client_get_component_as_string): new
	function to return a complete VCALENDAR string containing a VEVENT
	or VTODO with all the VTIMEZONEs it uses.

	* gui/dialogs/comp-editor.c (save_as_ok): use above function so we
	save the VTIMEZONE data with the VEVENT/VTODO. Fixes bug #????.
	Also made sure we output "METHOD:PUBLISH" since Outlook (2000) will
	not import it otherwise.

	* gui/dialogs/comp-editor.c (page_mapped_cb):
	(page_unmapped_cb): install/uninstall the GtkAccelGroup for the page.
	(comp_editor_append_page): connect to the map/unmap signals to
	install/uninstall the accelerators. (This is all for bug #11609,
	though of course it doesn't work too well in GTK+ 1.2 anyway.)

	* gui/dialogs/task-page.c (get_widgets):
	* gui/dialogs/task-details-page.c (get_widgets):
	* gui/dialogs/schedule-page.c (get_widgets):
	* gui/dialogs/recurrence-page.c (get_widgets):
	* gui/dialogs/meeting-page.c (get_widgets):
	* gui/dialogs/event-page.c (get_widgets):
	* gui/dialogs/alarm-page.c (get_widgets): got the GtkAccelGroup from
	the original window, ref'ed it and placed it in the CompEditorPage
	struct.

	* gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): unref
	any GtkAccelGroup for the page.

	* gui/dialogs/task-page.glade: changed '_Confidential' to
	'Con_fidential' as it clashed with '_Contacts'. It now matches the
	event editor as well.

	* gui/dialogs/event-page.glade:
	* gui/dialogs/task-page.glade: Set CAN_FOCUS to TRUE for the custom
	EDateEdit widgets, and set them as the accel targets of the labels.

svn path=/trunk/; revision=14108
2001-10-25 23:28:15 +00:00
8f14d0c6c9 show an error message when we can't update the object on the calendar
2001-10-25  Rodrigo Moya <rodrigo@ximian.com>

	* gui/dialogs/comp-editor.c (save_comp): show an error message when
	we can't update the object on the calendar server

svn path=/trunk/; revision=14090
2001-10-25 12:00:00 +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
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
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
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
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
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
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
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
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
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
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
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
732c21a0a8 only fill the component and save it if something has changed
2001-08-15  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (save_comp): only fill the component
	and save it if something has changed
	(save_comp_with_send): only try to send if something has changed
	and the editor needs a send

svn path=/trunk/; revision=12052
2001-08-15 15:30:45 +00:00
8ff06a283d Remove progress frame
2001-08-09  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/task-page.*: Remove progress frame

	* gui/dialogs/task-details-page.*: Put in progress frame, remove
	basics frame

	* gui/dialogs/task-editor.c (set_menu_sens): util function to set
	menu sensitivity based on state
	(task_editor_init): add meeting page
	(task_editor_edit_comp): show page if necessary
	(task_editor_destroy): unref meeting page
	(assign_task_cmd): bring up meeting page
	(refresh_task_cmd): save before sending
	(forward_cmd): ditto

	* gui/dialogs/comp-editor.c (save_cmd): implement new save command

svn path=/trunk/; revision=11846
2001-08-09 23:08:33 +00:00
ec730bb5f7 set the attendees of a component (meeting_page_fill_component): use above
2001-08-08  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c (set_attendees): set the attendees of
	a component
	(meeting_page_fill_component): use above
	(meeting_page_get_cancel_comp): return a comp with the attendees
	to be cancelled

	* gui/dialogs/meeting-page.h: get a component that will be sent as
	a cancellation

	* gui/dialogs/event-editor.c (event_editor_class_init): override
	send_comp class method
	(event_editor_send_comp): send cancellation notices to deleted
	attendees
	(refresh_meeting_cmd): save before send
	(forward_cmd): ditto

	* gui/dialogs/comp-editor.c (comp_editor_class_init): set default
	send_comp method
	(real_send_comp): do the real work
	(comp_editor_send_comp): call class method
	(save_comp): don't do any sending
	(save_comp_with_send): save and send here
	(prompt_to_save_changes): use above
	(save_close_cmd): ditto

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

svn path=/trunk/; revision=11803
2001-08-08 22:16:08 +00:00
f7af48b5a9 used the new print preview icon.
2001-07-25  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (pixmaps): used the new print preview icon.

	* gui/print.c (range_selector_new): changed the 'Current day/week...'
	strings to 'Selected day/week...' to make a little less confusing.
	Fixes bug #5451.

svn path=/trunk/; revision=11416
2001-07-25 22:15:16 +00:00
d20ac81f62 updated to use new print icon.
2001-07-19  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (pixmaps):
	* gui/calendar-commands.c (pixmaps): updated to use new print icon.

svn path=/trunk/; revision=11244
2001-07-19 22:21:36 +00:00
cac847c063 Add popup support so you can delete users from the list
2001-07-10  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c: Add popup support so you can delete
	users from the list

	* gui/dialogs/comp-editor.c (setup_widgets): fix typo

svn path=/trunk/; revision=10982
2001-07-11 02:55:18 +00:00
85eb30010f connect to the entry not the combo
2001-07-06  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c (init_widgets): connect to the entry
	not the combo

	* gui/dialogs/event-editor.c (set_menu_sens): set menu
	sensitivities based on whether or not the meeting page is shown
	(event_editor_init): call above
	(event_editor_edit_comp): ditto
	(schedule_meeting_cmd): ditto

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

	* gui/dialogs/comp-editor.c (comp_editor_set_ui_prop): new
	function to allow for set of ui props (esp. "sensitive")

svn path=/trunk/; revision=10861
2001-07-06 21:23:53 +00:00
ea8185e64b actually clear some widgets and hide/show widgets in the default setup
2001-07-06  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c (clear_widgets): actually clear some
	widgets and hide/show widgets in the default setup
	(meeting_page_destroy): destroy the address lists
	(meeting_page_fill_widgets): allow the user to select among their
	identities as a new organizer, or show the existing organizer as
	label
	(meeting_page_fill_component): set the "MAILTO:" bit of the
	organizer to match spec, set CN properly if we know it
	(get_widgets): load new widgets
	(other_clicked_cb): handle "Other Organizer" click
	(change_clicked_cb): handle "Change Organizer" click
	(init_widgets): listen for clicks on new buttons

	* gui/dialogs/comp-editor.c (comp_editor_remove_page): remove the
	page from our internal list and unref it

	* gui/itip-utils.c (itip_addresses_get): get the configure mail
	identities
	(itip_addresses_free): free a list of identities returned by
	itip_addresses_get

	* gui/itip-utils.h: remove obsolete protos, and new protos

	* gui/gnome-cal.html: Remove ancient file

svn path=/trunk/; revision=10856
2001-07-06 20:27:31 +00:00
dcb5ea4101 Fixes bug #4018 and what would be the analogous bugs for the other
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):
	Implemented.

	* gui/dialogs/event-page.c (event_page_focus_main_widget):
	Implemented.
	#include "e-util/e-categories-config.h".

	* gui/dialogs/meeting-page.c (meeting_page_focus_main_widget):
	Implemented.

	* 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):
	Implemented.

svn path=/trunk/; revision=10784
2001-07-04 21:25:30 +00:00
720a792d11 Add new columns for information specification (meeting_page_destroy): save
2001-07-03  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/meeting-page.c: Add new columns for information
	specification
	(meeting_page_destroy): save the table state
	(build_etable): load new table state

	* gui/dialogs/task-editor.c (task_editor_destroy): unref pages

	* gui/dialogs/event-editor.c (event_editor_destroy): unref pages

	* gui/dialogs/comp-editor.c (setup_widgets): kill warning
	(comp_editor_append_page): ref page passed in
	(close_dialog): unref pages

svn path=/trunk/; revision=10777
2001-07-04 01:33:05 +00:00
642d32d63f cal-client/cal-client.[hc] cal-util/cal-component.c
2001-07-03  Damon Chaplin  <damon@ximian.com>

	* cal-client/cal-client.[hc]
	* cal-util/cal-component.c
	* cal-util/cal-recur.[hc]
	* cal-util/test-recur.c
	* cal-util/timeutil.c
	* gui/calendar-config.c
	* gui/calendar-model.[hc]
	* gui/comp-util.[hc]
	* gui/e-calendar-table.c
	* gui/e-day-view-main-item.c
	* gui/e-day-view-top-item.c
	* gui/e-day-view.[hc]
	* gui/e-itip-control.c
	* gui/e-timezone-entry.[hc]
	* gui/e-week-view.[hc]
	* gui/gnome-cal.[hc]
	* gui/goto.c
	* gui/tag-calendar.[hc]
	* gui/dialogs/cal-prefs-dialog.c
	* gui/dialogs/comp-editor-page.[hc]
	* gui/dialogs/comp-editor-util.[hc]
	* gui/dialogs/comp-editor.c
	* gui/dialogs/e-timezone-dialog.[hc]
	* gui/dialogs/event-page.c
	* gui/dialogs/meeting-page.c
	* gui/dialogs/recurrence-page.c
	* gui/dialogs/task-details-page.c
	* gui/dialogs/task-details-page.glade
	* gui/dialogs/task-page.c
	* idl/evolution-calendar.idl
	* pcs/cal-backend-file.c
	* pcs/cal-backend.c
	* pcs/cal-backend.h
	* pcs/cal.c
	* pcs/query.c: timezone changes everywhere. There's still quite a
	few things to update, and its not working well at present.

svn path=/trunk/; revision=10729
2001-07-03 04:21:37 +00:00
b4e780fd75 implement
2001-07-02  JP Rosevear  <jpr@ximian.com>

	* gui/e-itip-control.c (send_freebusy): implement

	* cal-util/cal-component.c (set_attendee_list): add the delto
	property rather than the delfrom property twice

	* gui/dialogs/task-editor.c (task_editor_edit_comp): show
	delegation info if appropriate
	(delegate_task_cmd): delegate command
	(cancel_task_cmd): cancel command
	(refresh_task_cmd): refresh command

	* gui/dialogs/task-details-page.c: Load new widgets
	(task_details_page_show_delegation): show/hide delegation info widgets

	* gui/dialogs/task-details-page.h: new proto

	* gui/dialogs/event-editor.c (event_editor_edit_comp): free
	attendee list when finished

	* gui/dialogs/comp-editor.c (setup_widgets): explicitly show the
	widgets, update pixmaps after the verbs have been added
	(comp_editor_focus): don't do a show all

svn path=/trunk/; revision=10697
2001-07-02 19:21:49 +00:00
825502031f update to new call
2001-06-21  JP Rosevear  <jpr@ximian.com>

	* gui/main.c (main): update to new call

	* gui/e-itip-control.[hc]: break the widget bits out on their own
	into a proper object, basic stuff seems to be working again

	* gui/itip-control-factory.c: put the control specific bits here
	from e-itip-control.c

	* gui/itip-control-factory.h: new header

svn path=/trunk/; revision=10389
2001-06-22 02:40:59 +00:00
b6ef512a92 remove buttons and use evolution's standard ui config
2001-06-21  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (setup_widgets): remove buttons and
	use evolution's standard ui config

	* gui/print.c (print_comp_item): print description text

svn path=/trunk/; revision=10383
2001-06-21 20:39:58 +00:00
7aac092a0a print menu command (print_preview_cmd): ditto for print preview
2001-06-20  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (print_cmd): print menu command
	(print_preview_cmd): ditto for print preview
	(print_setup_cmd): ditto for print setup
	(comp_editor_set_cal_client): listen for updated and removed
	signals
	(obj_updated_cb): if the item changes else where, query the user
	for the course of action
	(obj_removed_cb): ditto for removal

	* gui/print.c (print_setup): rudimentary page setup support
	(print_comp): rudimentary individual event/task printing support

	* gui/print.h: new protos

	* gui/dialogs/changed-comp.[hc]: dialog to query the user about
	what to do when a item is changed elsewhere

	* gui/dialogs/Makefile.am: build new files

	* gui/dialogs/send-comp.c (send_component_dialog): remove useless
	assignment

svn path=/trunk/; revision=10338
2001-06-20 16:59:31 +00:00
c9e9b9a7bd added a 'Time zone' setting. Also rearranged a little, adding a new
2001-06-19  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/cal-prefs-dialog.c: added a 'Time zone' setting. Also
	rearranged a little, adding a new 'General' page, since we had too
	many settings on the 'Calendar' page.

	* gui/e-timezone-entry.[hc]:
	* gui/dialogs/e-timezone-dialog.[hc]:
	* gui/dialogs/comp-editor.c:
	* gui/dialogs/comp-editor-page.[hc]:
	* gui/dialogs/event-page.c:
	* gui/dialogs/task-details-page.c:
	* gui/dialogs/task-page.c: removed CalClient stuff. The timezone dialog
	now uses the timezone data directly from the client's libical library.

svn path=/trunk/; revision=10321
2001-06-20 02:45:03 +00:00
0adb39b6b0 add ui (forward_cmd): implement forward command
2001-06-19  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/task-editor.c (task_editor_init): add ui
	(forward_cmd): implement forward command

	* gui/dialogs/comp-editor.c (save_as_ok): bug fix, seems to work
	now

svn path=/trunk/; revision=10315
2001-06-19 23:48:12 +00:00
ca603236ed itip/imip send dialog
2001-06-19  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/send-comp.c: itip/imip send dialog

	* gui/dialogs/send-comp.h: new proto

	* gui/dialogs/recurrence-page.c (recurrence_page_set_dates): only
	use the weekday picker if visible

	* gui/dialogs/meeting-page.c: just show the meeting list

	* gui/dialogs/event-editor.c (event_editor_edit_comp): remove the
	meeting page if no attendees
	(schedule_meeting_cmd): schedule a meeting menu item
	(refresh_meeting_cmd): refresh meeting request menu item
	(cancel_meeting_cmd): ditto for cancel
	(forward_cmd): send as attachment

	* gui/dialogs/comp-editor.c (comp_editor_remove_page): remove page
	from dialog
	(comp_editor_show_page): show a given page
	(comp_editor_get_current_comp): return a cal component
	representing the current widget state
	(comp_editor_save_comp): save the cal component
	(comp_editor_delete_comp): delete the cal component
	(comp_editor_send_comp): send the cal component
	(comp_editor_merge_ui): merge xml in to the bonobo gui
	(setup_widgets): use a bonobo window instead of a gtk window, add menus again
	(save_as_cmd): save to file on disk - still broken
	(save_close_cmd): close menu command
	(save_close_cmd): save and close menu command

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

	* gui/dialogs/cancel-comp.c (cancel_component_dialog): itip/imip
	cancellation dialog

	* gui/dialogs/cancel-comp.h: new proto

	* gui/dialogs/Makefile.am: build new files

	* gui/dialogs/comp-editor-page.c
	(comp_editor_page_notify_needs_send): emit needs_send signal

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

	* gui/itip-utils.c (itip_send_comp): new function to send cal
	components

	* gui/itip-utils.h: new proto

	* gui/e-itip-control.c (pstream_load): trim using cal-component
	wrapper stuff
	(accept_button_clicked_cb): use itip_send_comp
	(tentative_button_clicked_cb): ditto
	(decline_button_clicked_cb): ditto

	* gui/Makefile.am: compile select name idl stuff

	* cal-util/cal-component.c (cal_component_get_organizer): get the organizer
	(cal_component_set_organizer): set the organizer
	(cal_component_get_recurid): get the recurrence id
	(cal_component_set_recurid): set the recurrence id
	(set_attendee_list): actually set the attendee list
	(get_attendee_list): build the attendee list

	* cal-util/cal-component.h: new protos

svn path=/trunk/; revision=10299
2001-06-19 19:24:08 +00:00
4583098b34 Sync - Federico
svn path=/trunk/; revision=10293
2001-06-19 17:26:04 +00:00
84dc93b8de added timezone fields. Also moved the 'All Day' flag into an alignment so
2001-06-19  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/task-details-page.glade:
	* gui/dialogs/task-page.glade:
	* gui/dialogs/event-page.glade: added timezone fields. Also moved the
	'All Day' flag into an alignment so it doesn't mess up the height of
	the other widgets.

	* gui/dialogs/task-details-page.c:
	* gui/dialogs/task-page.c:
	* gui/dialogs/event-page.c: added code to handle the timezone fields.
	This still needs to be hooked up when the libical code is finished.

	* gui/dialogs/e-timezone-dialog.c (on_map_leave): new function to
	clear the preview label and turn off the highlighted point on the
	map when you move the mouse outside it.
	(find_selected_point): new function to try to find the point
	corresponding to the text in the combo.
	(on_combo_changed): call the above function to update the selected
	point.
	(on_map_leave): turn off the preview point & label when the mouse
	leaves the map.
	(e_timezone_dialog_set_cal_client): changed it so that selecting "None"
	clears the entry.

	* gui/dialogs/comp-editor-page.[hc]: added set_cal_client() virtual
	method since some pages need to access the CalClient to get timezone
	information. Also added comp_editor_page_set_cal_client() to call
	the virtual method.

	* gui/dialogs/comp-editor.c (comp_editor_set_cal_client): called
	comp_editor_page_set_cal_client() on each page.

	* gui/calendar-config.c: added functions to get & set the timezone.

svn path=/trunk/; revision=10285
2001-06-19 05:23:16 +00:00
f4e8698fdd renamed from editor-page for consistency, more complete implementation
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
	stuff

	* gui/dialogs/task-editor-dialog.glade: ditto

	* gui/e-calendar-table.c (open_task): update to use comp editor
	stuff

	* 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
2001-06-01 23:54:43 +00:00