Commit Graph

246 Commits

Author SHA1 Message Date
22d4b2eee5 Return the original key in the hash table if requested.
2001-10-10  Federico Mena Quintero  <federico@ximian.com>

	* pcs/cal-factory.c (lookup_backend): Return the original key in
	the hash table if requested.
	(backend_last_client_gone_cb): Use lookup_backend() so that we
	have the URI mangling done for us.
	(impl_CalFactory_open): The type should be GtkType *, not GtkType!

svn path=/trunk/; revision=13557
2001-10-10 18:42:47 +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
6b431c0e47 deal correctly with URIs to be inserted into the hash table, so that we
2001-10-09  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal-factory.c (lookup_backend, add_backend): deal correctly with
	URIs to be inserted into the hash table, so that we don't add the same
	backend over and over because the URI strings were different (although
	refering to the same backend)

svn path=/trunk/; revision=13523
2001-10-09 18:14:21 +00:00
aa00c7fb19 moved to a common place (cal_backend_file_open): check if "uristr != NULL"
2001-10-09  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal-backend-file.c (mail_account_*): moved to a common place
	(cal_backend_file_open): check if "uristr != NULL" and not
	"uri != NULL"

	* pcs/cal-backend-util.c: moved to here

	* gui/e-day-view.c: add missing header file

svn path=/trunk/; revision=13517
2001-10-09 16:43:07 +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
967083749d replace use of gnome_vfs_uri with e_uri
2001-10-03  Rodrigo Moya <rodrigo@ximian.com>

	* gui/component-factory.c:
	* gui/calendar-offline-handler.c:
	* gui/comp-editor-factory.c: replace use of gnome_vfs_uri with e_uri

	* gui/e-meeting-model.c (start_addressbook_server): make it return void,
	since the return value does not mind

	* pcs/cal.c:
	* pcs/cal-factory.c:
	* pcs/cal-backend.[ch]: don't use GnomeVFS for URI management

	* pcs/cal-backend-file.c: ditto, only use GnomeVFS for internal
	operations

	* cal-client/cal-client.c (cal_client_open_calendar): don't CORBA_exception_free
	before checking for exceptions

svn path=/trunk/; revision=13380
2001-10-03 18:03:14 +00:00
68a1ba7115 strdup the uid to avoid double free, write out only after everything is
2001-10-01  JP Rosevear  <jpr@ximian.com>

	* pcs/cal-backend-file.c (cal_backend_file_compute_changes):
	strdup the uid to avoid double free, write out only after
	everything is done

svn path=/trunk/; revision=13266
2001-10-01 18:24:31 +00:00
aef67f0612 don't use gnome_vfs_uri_is_local on URIs created with
2001-10-01  Rodrigo Moya <rodrigo@ximian.com>

	* gui/gnome-cal.c (gnome_calendar_open): don't use
	gnome_vfs_uri_is_local on URIs created with
	gnome_vfs_uri_new_private

svn path=/trunk/; revision=13262
2001-10-01 16:55:44 +00:00
564c06f69d Handle the fields and category we don't sync by making sure we don't
2001-09-28  JP Rosevear  <jpr@ximian.com>

	* conduits/calendar/calendar-conduit.c (local_record_from_comp):
	Handle the fields and category we don't sync by making sure we
	don't overwrite them
	(local_record_to_pilot_record): use local record category
	(pre_sync): track db info

	* conduits/calendar/calendar-conduit.h: db info field

	* conduits/todo/todo-conduit.[hc]: same as above

svn path=/trunk/; revision=13235
2001-09-28 21:22:43 +00:00
32c4df4977 added InvalidURI and UnsupportedMethod exceptions to the CalFactory
2001-09-27  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: added InvalidURI and UnsupportedMethod
	exceptions to the CalFactory interface

	* pcs/cal-factory.c (impl_CalFactory_open): raise InvalidURI exception on
	URI errors and UnsupportedMethod when we don't support the method for
	a given URI

2001-09-26  Rodrigo Moya <rodrigo@ximian.com>

	* cal-client/cal-client.c: added support for using multiple calendar
	factories
	(cal_client_uri_list): use the list of factories loaded for this
	CalClient

svn path=/trunk/; revision=13189
2001-09-27 11:08:03 +00:00
943c0e6e23 new proto
2001-09-26  JP Rosevear  <jpr@ximian.com>

	* pcs/cal.h: new proto

	* pcs/cal.c (impl_Cal_set_mode): implement set mode method
	(cal_class_init): set setMode function in epv
	(cal_notify_mode): notify listener of mode change

	* pcs/cal-factory.c (add_uri): deal with UriType renaming

	* pcs/cal-backend.h: add new virtual methods and protos

	* pcs/cal-backend.c (cal_backend_class_init): init new virtual
	methods to null
	(cal_backend_set_mode): sets mode
	(cal_backend_get_mode): gets mode

	* pcs/cal-backend-file.c (cal_backend_file_class_init): overide
	get_mode and set_mode methods
	(cal_backend_file_get_mode): return mode
	(notify_mode): have listeners notified of the set mode call
	(cal_backend_file_set_mode): set the mode by indicating not
	supported

	* cal-client/cal-listener.h: update proto

	* cal-client/cal-listener.c (impl_notifyCalSetMode): implement set
	mode callback
	(cal_listener_construct): take set mode callback
	(cal_listener_new): ditto

	* cal-client/cal-client.h: update protos, add signal proto

	* cal-client/cal-client.c (cal_client_class_init): add
	cal_set_mode signal
	(cal_set_mode_cb): handle set mode callback from listener
	(cal_client_open_calendar): pass additional param to cal_listener_new
	(cal_client_set_mode): wrapper to set the calendar mode

	* idl/evolution-calendar.idl: make UriType into CalMode, add
	SetModeStatus enum and notifyCalSetMode method to the listener

	* gui/calendar-offline-handler.c (create_connection_list): fetch
	the uri list ourselves
	(impl_prepareForOffline): reflect param change of
	create_connect_list
	(update_offline): ditto
	(backend_cal_set_mode): set mode call back
	(backend_cal_opened): cal opened call back, set mode to local
	(impl_goOffline): reflect UriType renaming

	* cal-util/cal-util.h: rename UriType to CalMode

svn path=/trunk/; revision=13142
2001-09-26 06:40:50 +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
4ffc49d7b9 gets a config db (cal_backend_file_destroy): release config db
2001-09-20  JP Rosevear  <jpr@ximian.com>

	* pcs/cal-backend-file.c (load_db): gets a config db
	(cal_backend_file_destroy): release config db
	(cal_backend_file_init): use load_db
	(mail_account_get): gets a mail account by number
	(mail_account_get_default): gets the default mail account
	(mail_account_is_valid): looks to see if any accounts have the
	given address
	(create_user_free_busy): modularize so we can call multiple times
	if necessary, set organizer
	(cal_backend_file_get_free_busy): if the list of users is null,
	use the default account otherwise get the same info for each
	address that is an identity in the mailer

	* gui/itip-utils.c (itip_addresses_get): s/gint/glong/ for bonobo
	conf returns

	* gui/calendar-commands.c (publish_freebusy_cmd): fix problems
	from a merge so that we publish 6 weeks of free/busy information
	again

svn path=/trunk/; revision=13015
2001-09-20 19:52:58 +00:00
27dd700efb Fixed weird include path
svn path=/trunk/; revision=12981
2001-09-19 17:47:40 +00:00
85390babb9 add a new parameter (const char *iid) to specify the OAFIID of the factory
2001-09-19  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal-factory.c (cal_factory_oaf_register): add a new parameter
	(const char *iid) to specify the OAFIID of the factory being
	registered

svn path=/trunk/; revision=12977
2001-09-19 12:47:16 +00:00
2b78b5294a new class for managing multiple calendars, with an API very similar to the
2001-09-18  Rodrigo Moya <rodrigo@ximian.com>

	* cal-client/cal-client-multi.[ch]: new class for managing multiple
	calendars, with an API very similar to the CalClient one,
	for ease of transition from one to the other

	* gui/component-factory.c (xfer_folder, remove_folder, create_folder):
	reworked to be able to manage folders for any calendar backend, and
	not only the file: one

2001-09-18  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: changed signature for the getFreeBusy
	method, to return a sequence of CalObj's, and added sequence of users
	as a new parameter to that method

	* cal-client/cal-client.c (cal_client_get_free_busy): adapted to new
	IDL method signature, by adding a new "GList *users" parameter, for
	callers to be able to specify a list of users

	* pcs/cal-backend.[ch] (cal_backend_get_free_busy):
	* pcs/cal-backend-file.c (cal_backend_file_get_free_busy): add the
	"GList *users" parameter. In cal_backend_file_get_free_busy, call
	lookup_component to get the CalComponent for each uid, instead
	of calling cal_backend_get_object, which meant converting the
	component to a string and then parsing it again.

	* cal-client/client-test.c (cal_opened_cb):
	* gui/e-itip-control.c (send_freebusy):
	* gui/calendar-commands.c (publish_freebusy_cmd): adapted to
	new getFreeBusy method signature

svn path=/trunk/; revision=12951
2001-09-18 20:16:39 +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
1784f9d02b [Automake 1.5 fixes pointed out by Richard Boulton
<richard@tartarus.org>, as per #9258.]

* pcs/Makefile.am: Set CLEANFILES directly instead of using
`+='.

svn path=/trunk/; revision=12843
2001-09-14 23:30:22 +00:00
49f07e62b5 See if the set of categories changed by using the removed_categories hash
2001-08-29  Federico Mena Quintero  <federico@ximian.com>

	* pcs/cal-backend-file.c (cal_backend_file_remove_object): See if
	the set of categories changed by using the removed_categories hash
	table.
	(cal_backend_file_init): Create a table of removed categories.
	This allows us to notify if and only if the set of category
	changes when an object is updated/removed, instead of
	unconditionally notifying if an object is updated.
	(cal_backend_file_update_objects): Only notify if the set of
	categories really changed.
	(update_categories_from_comp): Shuffle the categories between the
	priv->categories and priv->removed_categories lists.

svn path=/trunk/; revision=12522
2001-08-29 23:55:28 +00:00
f6ee20d909 Fixes bug #7879, a query may receive an update notification from the
2001-08-28  Federico Mena Quintero  <federico@ximian.com>

	Fixes bug #7879, a query may receive an update notification from
	the backend before the query itself gets populated.

	* pcs/query.c (ensure_sexp): New function; ensures that the esexp
	is created and notifies of parse errors.  It is the bulk of
	start_query_cb() but put in a separate function so that we can
	share it elsewhere.
	(start_query_cb): Use ensure_sexp().
	(process_component_cb): Oops, notify of a successfully finished
	query.
	(match_component): Call ensure_sexp().  This function can be
	called by the backend notification callbacks before the query is
	populated, so we need to make sure the esexp exists here.

svn path=/trunk/; revision=12509
2001-08-29 03:15:54 +00:00
ec13cd14da open the tasks folder associated with the calendar being opened, and not
2001-08-22  Rodrigo Moya <rodrigo@ximian.com>

	* gui/gnome-cal.c (gnome_calendar_open): open the tasks folder
	associated with the calendar being opened, and not always the local
	tasks.ics file

	* pcs/cal-factory.c (open_fn): use gnome_vfs_uri_new_private when
	parsing the URI to allow non-registered URIs

svn path=/trunk/; revision=12379
2001-08-22 12:09:12 +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
cc1b730fe4 new files to contain utility functions for calendar backends
2001-08-21  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal-backend-util.[ch]: new files to contain utility functions
	for calendar backends

	* pcs/cal-backend.c (cal_backend_add_cal): implement it here, and not in
	the calendar backends. Add a "cal_added" signal, so that backends are
	notified when a new Cal is added, if they need to
	(cal_backend_get_type_by_uid): implement it here

	* pcs/cal-backend-file.c (fill_alarm_instances_seq): moved to
	cal-backend-util.c
	(cal_backend_file_add_cal): removed
	(cal_backend_file_init): connect to the "cal_added" signal in the
	CalBackend class so that we can update categories when a new Cal is
	added
	(cal_backend_file_get_type_by_uid): removed

	* pcs/cal-backend-db.c (fill_alarm_instances_seq): moved to
	cal-backend-util.c
	(cal_backend_db_add_cal): removed
	(cal_backend_db_get_type_by_uid): removed

	* AUTHORS: added JP and Damon to list of authors

svn path=/trunk/; revision=12339
2001-08-21 13:21:23 +00:00
bd86610987 new functions moved from the CalBackendFile, to allow its use outside of
2001-08-20  Rodrigo Moya <rodrigo@ximian.com>

	* cal-util/cal-util.[ch] (cal_util_generate_alarms_for_list):
	(cal_util_generate_alarms_for_comp):
	new functions moved from the CalBackendFile, to allow its use outside
	of it. The signature has changed a little bit, since these functions
	need a way to get the timezones from the callers, so a callback
	function to resolve the timezones has been added to the list of
	parameters

	* pcs/cal-backend-file.c (generate_alarms_for_list):
	(generate_alarms_for_comp): moved to cal-util, with all their related
	functions/structures

	* pcs/cal-backend-db.c: removed functions that were moved to cal-util

svn path=/trunk/; revision=12338
2001-08-21 12:00:04 +00:00
eb410c5893 added new backend method to get the component given a UID.
2001-08-09  Damon Chaplin  <damon@ximian.com>

	* pcs/cal-backend.c (cal_backend_get_object_component): added new
	backend method to get the component given a UID.

	* pcs/cal-backend-file.c (cal_backend_file_get_object_component):
	added implementation of above virtual method.

	* pcs/query.c (match_component): use the new backend function to get
	the CalComponent rather than the string. This avoids converting all
	the calendar components to strings and parsing them back into
	components for every query! (That wasn't a good idea, was it ;)

	* gui/e-week-view.c:
	* gui/e-day-view.c: use a timeout handler to layout the events,
	to avoid doing a layout for each event we get from a query.

	* gui/print.c (print_day_add_event):
	* gui/e-day-view.c (e_day_view_add_event): set start_row_or_col and
	num_columns to 0. They are guint8's.

	* gui/e-week-view.c (e_week_view_free_events): hide all the jump
	buttons. Fixes bug #5946.

	* gui/calendar-commands.c (calendar_set_folder_bar_label): added the
	day numbers for the month view.

	* gui/dialogs/recurrence-page.glade: changed "_Delete" to "_Remove",
	since it clashed with "_Add". Also added underlined accelerators for
	the recurrence radio buttons. Note that none of these accelerators
	actually work at present, due to the way we are using .glade files
	for each notebook page. I need to add a bug about this.
	Also, the "_Action" menu doesn't popup when I press Alt+A, even though
	the "_File" menu does popup when I press Alt+F. Strange.

	* pcs/cal-backend-file.c (cal_backend_file_get_timezone_object):
	removed debug msgs.

svn path=/trunk/; revision=11866
2001-08-10 02:12:57 +00:00
26cbf6cd5f New function to stop further notification from happening.
2001-08-07  Federico Mena Quintero  <federico@ximian.com>

	* cal-client/cal-listener.c (cal_listener_stop_notification): New
	function to stop further notification from happening.
	(impl_notifyCalOpened): Do not notify if requested.
	(impl_notifyObjUpdated): Likewise.
	(impl_notifyObjRemoved): Likewise.
	(impl_notifyCategoriesChanged): Likewise.
	(CalListenerPrivate): Do not keep a reference to the server-side
	Cal.  This would create a circular reference since the server
	keeps a reference to the listener.
	(cal_listener_destroy): Likewise.
	(impl_notifyCalOpened): Likewise.

	* pcs/cal.c (cal_destroy): bonobo_object_release_unref() the listener.

	* cal-client/cal-client.c (cal_client_destroy): Ask the listener
	to stop notifications.  Also, do not unref it as the server does
	that itself when we unref the Cal.

svn path=/trunk/; revision=11758
2001-08-08 00:22:07 +00:00
9d8f948049 added 'different_timezone' fields to EDayViewEvent and EWeekViewEvent, to
2001-08-06  Damon Chaplin  <damon@ximian.com>

	* gui/e-week-view.h:
	* gui/e-day-view.h: added 'different_timezone' fields to EDayViewEvent
	and EWeekViewEvent, to note that the event is in a different timezone.
	We now compute this once when we add the event to the array, rather
	than each time we draw the event. If it is set, we will draw the
	timezone icon next to the event.

	* gui/e-day-view-main-item.c: take transparency into account when
	drawing the blue vertical bars to represent busy time.

	* gui/tag-calendar.c: take transparency into account when tagging
	the mini calendar.

	* gui/e-calendar-table.c (e_calendar_table_init): removed the "None"
	options for transparency and classification, since these properties
	have defaults anyway, so we may as well use those to keep it simple.
	Also use "Free" and "Busy" for transparency, rather than "Transparent"
	and "Opaque".

	* gui/calendar-model.c: updated classification & transparency code
	as above.

	* gui/e-calendar-table.etspec: changed "Transparency" to "Show Time As"
	since people have a chance of understanding that.

	* gui/e-week-view.c:
	* gui/e-day-view.c:
	* gui/gnome-cal.c: added functions to get the visible time range.

	* gui/calendar-commands.c: finished stuff to set the folder bar
	label to the dates currently displayed.

	* gui/control-factory.c (control_factory_new_control): connected
	signal to update the folder title bar label when the dates shown
	are changed. I had to connect it here since we need the BonoboControl
	in the callback, and I don't know how to get the control from the
	widget.

	* gui/tasks-control.c (tasks_control_activate): clear the folder bar
	label. We could display something here at some point.

	* gui/dialogs/recurrence-page.glade: changed "_Add" to "A_dd", since
	we have an "_Actions" menu. (These also use Alt+key, right?)

	* gui/dialogs/event-page.glade:
	* gui/dialogs/event-page.c: added 'Show Time As' field, which is
	really the TRANSP property but with a better name!
	Also changed one of the "_Confidential" to "Con_fidential" since we
	already have "_Contacts" using the same 'C' key.

	* pcs/cal-backend-file.c (cal_backend_file_get_free_busy): skip
	events that are TRANSPARENT. Also added comment as this code looks
	inefficient.

	* cal-util/cal-component.c: removed stuff for comparing timezones.

	* gui/comp-util.c (cal_comp_util_compare_event_timezones): moved the
	above function here, and updated it to compare the UTC offsets of the
	times as well as the TZIDs.

svn path=/trunk/; revision=11717
2001-08-07 00:46:56 +00:00
ddcc505dbf The calendar search bar widget now includes a drop-down menu of available
2001-08-01  Federico Mena Quintero  <federico@ximian.com>

	The calendar search bar widget now includes a drop-down menu of
	available categories.

	* pcs/query.c (func_has_categories): Handle one and only one #f
	value as meaning "unfiled", for components that have no categories
	at all.

	* pcs/cal-backend-file.c (open_cal): Duh, do not notify here about
	changed categories since at this point we don't have any clients
	bound to us yet.
	(create_cal): Likewise.
	(cal_backend_file_add_cal): Notify here.

	* gui/cal-search-bar.h (CalSearchBarClass): New signal
	"category_changed".

	* gui/cal-search-bar.c (cal_search_bar_construct): Add a drop-down
	menu for the list of categories.
	(search_option_items): Removed the "Has category" option, since we
	now have the drop-down menu instad and it would be confusing to
	have both options.
	(regen_query): Likewise.  Also, this function is now the old
	cal_search_bar_query_changed() and is shared by that very function
	and by the callback from the drop-down menu.
	(notify_query_contains): Include the sub-sexp for the categories.
	(cal_search_bar_set_categories): New function.
	(cal_search_bar_get_category): New function.
	(categories_selection_done_cb): Emit the "category_changed" signal.

	* gui/e-tasks.c (obj_updated_cb): Removed function since it did
	not do anything; all updates are handled by the CalendarModel.
	(obj_removed_cb): Likewise.
	(ETasksPrivate): Removed the fields for the categories option
	menu, since now it is in the ESearchBar.
	(search_bar_sexp_changed_cb): Use calendar_model_set_query()
	directly here, as we do not need to frob the sexp anymore.
	(update_query): Removed.
	(client_categories_changed_cb): New callback.
	(search_bar_category_changed_cb): New callback.
	(e_tasks_new_task): Set the default category on the component to
	the one that is selected in the search bar.
	(e_tasks_on_filter_selected): Removed.
	(e_tasks_on_categories_changed): Removed.
	(e_tasks_rebuild_categories_menu): Removed.
	(e_tasks_add_menu_item): Removed.
	(e_tasks_setup_view_menus): Sanitized not to sink objects wildly.
	(e_tasks_discard_view_menus): New function.

	* gui/calendar-model.h (CalendarModelClass): Removed the
	"categories_changed" signal since this is handled in the Wombat
	now.

	* gui/calendar-model.c (calendar_model_get_categories): Removed.
	(calendar_model_set_value_at): Do not collect the categories.
	(query_obj_updated_cb): Likewise.
	(calendar_model_collect_categories): Removed.
	(calendar_model_set_default_category): Constify.

	* gui/tasks-control.c (tasks_control_deactivate): Call
	e_tasks_discard_view_menus().

	* gui/gnome-cal.c (search_bar_category_changed_cb): Set the
	default category for the task pad's model.

svn path=/trunk/; revision=11559
2001-08-01 23:33:40 +00:00
96d24f1297 The Wombat now keeps track of which categories are present in the objects
2001-07-31  Federico Mena Quintero  <federico@ximian.com>

	The Wombat now keeps track of which categories are present in the
	objects of a calendar.  It will notify the clients of changes in
	this set.  This is to make the category drop-down menus in the
	calendar/tasks views be always up to date.

	* idl/evolution-calendar.idl (Listener): Added a
	notifyCategoriesChanged() method.  The Wombat now keeps track of
	the categories within a calendar.

	* cal-client/cal-listener.[ch]: Switched it to use BonoboXObject.
	Also added the notifyCategoriesChanged implementation.

	* cal-client/cal-client.[ch]: Added a "categories_changed" signal.

	* pcs/cal-backend-file.c: Maintain a list of the live categories.
	(update_categories_from_comp): New function to maintain the set of
	live categories.
	(add_component): Update the set of categories.
	(remove_component): Likewise.
	(open_cal): Notify about changes in the set of categories.
	(create_cal): Likewise.
	(cal_backend_file_update_objects): Likewise.
	(cal_backend_file_remove_object): Likewise.
	(notify_categories_changed): New function to notify the clients
	about the current set of categories.

	* pcs/cal.c (cal_notify_categories_changed): New function.

svn path=/trunk/; revision=11536
2001-08-01 03:41:51 +00:00
ca87e4cc43 implemented
2001-07-30  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal-backend-file.c (cal_backend_file_get_free_busy): implemented

svn path=/trunk/; revision=11472
2001-07-30 13:23:17 +00:00
c55a14f76a new proto
2001-07-12  JP Rosevear  <jpr@ximian.com>

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

	* cal-util/cal-util.c (cal_util_new_top_level): standard place to
	get your top level calendar component

	* pcs/cal-backend-file.c (create_cal): use it

	* gui/itip-utils.c (itip_send_comp): ditto

	* gui/e-calendar-table.c (e_calendar_table_copy_clipboard): ditto

svn path=/trunk/; revision=11053
2001-07-12 18:56:07 +00:00
421aa80ae6 renamed updateObject to updateObjects and removed the UID argument, since
2001-07-11  Damon Chaplin  <damon@ximian.com>

	* idl/evolution-calendar.idl: renamed updateObject to updateObjects
	and removed the UID argument, since it can add/update multiple objects
	at once. (It can't yet, but it will!)

	* pcs/cal.c:
	* pcs/cal-backend.[hc]:
	* pcs/cal-backend-file.c: renamed update_object to update_objects and
	got rid of the UID arg.

	* cal-client/cal-client.c (cal_client_update_objects): new function to
	add/update multiple objects in one go, i.e for iTIP and for importing
	calendars.

	* gui/print.c (print_date_label): fixed type bug.

	* gui/e-week-view.[hc]:
	* gui/e-week-view-event-item.c: draw the timezone icons if the event's
	DTSTART or DTEND is in a different timezone to the current one.
	Note that we may want to change this so it compares the UTC offsets
	rather than the TZIDs, since currently it will draw the icons for all
	events coming from iTIP requests from other clients.

svn path=/trunk/; revision=11027
2001-07-12 02:38:25 +00:00
0e6d346872 more timezone updates. I'm pretty much done with the calendar code now,
2001-07-10  Damon Chaplin  <damon@ximian.com>

	* gui/calendar-model.c:
	* 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-week-view.c:
	* gui/gnome-cal.c:
	* gui/print.c:
	* gui/dialogs/cal-prefs-dialog.c:
	* gui/dialogs/comp-editor-util.c:
	* gui/dialogs/event-page.c:
	* pcs/cal-backend-file.c:
	* pcs/query.c:
	* cal-util/cal-component.[hc]:
	* cal-util/cal-recur.c:
	* cal-util/timeutil.[hc]:
	* cal-client/cal-client.[hc]: more timezone updates. I'm pretty much
	done with the calendar code now, except for alarms and conduits,
	which Federico and JP know more about. And there are a couple of
	other minor things to fix. But it is still pretty buggy.

svn path=/trunk/; revision=10984
2001-07-11 03:56:03 +00:00
1b3ce1c888 Pass the parent vCalendar component as the timezone closure of
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
	cal_recur_generate_instances().

	* 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
2001-07-10 18:39:25 +00:00
2c95c4d8e9 added virtual method to get a VTIMEZONE component given a TZID. We need
2001-07-03  Damon Chaplin  <damon@ximian.com>

	* pcs/cal-backend.[hc]: added virtual method to get a VTIMEZONE
	component given a TZID. We need this to resolve TZIDs when expanding
	an event using cal_recur_generate_instances() in query.c.

	* pcs/cal-backend-file.c (cal_backend_file_get_timezone): implemented
	virtual method.
	(cal_backend_file_update_object): fixed bug, kind -> child_kind.

	* pcs/query.c (func_occur_in_time_range): use the virtual method for
	resolving TZIDs. The other way didn't work anyway, as we didn't have
	the entire VCALENDAR with VTIMEZONEs in it.

	* gui/dialogs/recurrence-page.c (init_widgets):
	(make_ending_until_special): moved the call to
	e_date_edit_set_get_time_callback() from init_widgets to
	make_ending_until_special(), since that is where the widget gets
	created.

	* gui/e-timezone-entry.c (e_timezone_entry_set_timezone): handle zone
	being NULL.

svn path=/trunk/; revision=10732
2001-07-03 06:06:18 +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
03b231a20b Renamed the occur field to occur_start; added an occur_end field. This way
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
	cases.

	* 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
2001-06-27 00:12:28 +00:00
5a5ec44e5a Initialize libglade.
2001-06-24  Federico Mena Quintero  <federico@ximian.com>

	* gui/alarm-notify/notify-main.c (main): Initialize libglade.

	* pcs/cal-backend-file.c (compute_alarm_range):
	icaldurationtype_as_int() will now return a negative value if
	dur->is_neg is true, so we need to flip the sign of some
	operations here.
	(add_alarm_occurrences_cb): Likewise.

	* pcs/cal-backend-db.c (compute_alarm_range): Likewise.
	(add_alarm_occurrences_cb): Likewise.

svn path=/trunk/; revision=10456
2001-06-24 23:56:38 +00:00
2c1887f5fe Converted to use BonoboXObject.
2001-06-24  Federico Mena Quintero  <federico@ximian.com>

	* gui/alarm-notify/alarm-notify.c: Converted to use BonoboXObject.

	* gui/gnome-cal.c (gnome_calendar_open): Ask the alarm
	notification service to add the calendar and tasks URIs.
	(add_alarms): New function.

	* gui/alarm-notify/notify-main.c (main): Doh, fixed typo in the
	OAFIID.
	(main): Initialize and shut down gnome-vfs.

	* gui/Makefile.am (IDLS): Added evolution-calendar.idl, sigh.
	(evolution_calendar_SOURCES): Added the files generated from the IDL.

	* gui/alarm-notify/alarm-queue.c (alarm_trigger_cb): New function
	used when an alarm is triggered.

	* gui/dialogs/Makefile.am: Removed the alarm-notify-dialog files;
	they are now in gui/alarm-notify.

	* gui/alarm-notify/Makefile.am: Added the alarm-notify-dialog
	files.

	* pcs/cal.c (cal_forget_password): This was incorrectly named
	cal_client_forget_password(); renamed it.

	* gui/main.c (main): Initialize and shut down gnome-vfs.

svn path=/trunk/; revision=10453
2001-06-24 22:53:14 +00:00
91cc026904 Update the copyrights, replacing Helix Code with Ximian and
helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440
2001-06-23 08:52:02 +00:00
273ead4314 new function for the backends to be able to call the getPassword method on
2001-06-22  Rodrigo Moya <rodrigo@ximian.com>

	* pcs/cal.[ch] (cal_get_password): new function for the backends to
	be able to call the getPassword method on the associated
	WombatClient
	(cal_forget_password): ditto for the forgetPassword method

svn path=/trunk/; revision=10396
2001-06-22 16:08:01 +00:00
a7846c7d6d changed getFreeBusy method to return a CalObj instead of a sequence
2001-06-22  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: changed getFreeBusy method to return
	a CalObj instead of a sequence

	* cal-client/cal-client.[ch] (cal_client_get_free_busy): changed it to
	work like the cal_client_get_object function, that is, it does not
	return anymore a list of UIDs, but a CalClientGetStatus code, and
	added a new parameter for the caller to get the component back when
	this function returns
	(cal_client_open): aggregate WombatClient interface to the CalListener
	being used

	* pcs/cal-backend-db.c, pcs/cal-backend-file.c (..get_free_busy): set
	return value to "char *" as it will be returning a FreeBusy object,
	and not a list of UIDs

	* pcs/cal-backend.[ch] (cal_backend_get_free_busy): ditto

	* pcs/cal.c (cal_construct): queryInterface on the listener to obtain
	the WombatClient interface

svn path=/trunk/; revision=10393
2001-06-22 13:08:02 +00:00
d9e3885428 added getFreeBusy method
2001-06-20  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: added getFreeBusy method

	* pcs/cal.c (impl_Cal_get_free_busy): implementation of the new
	getFreeBusy added method

	* pcs/cal-backend.[ch]: added new virtual method to the CalBackend
	class (get_free_busy)

	* pcs/cal-backend-db.c (cal_backend_db_get_free_busy): new function,
	not implemented yet

	* pcs/cal-backend-file.c (cal_backend_file_get_free_busy): new funtion,
	not implemented yet

svn path=/trunk/; revision=10333
2001-06-20 15:21:48 +00:00
a5ae0a3c3d removed stuff to get builtin timezone info from the server.
2001-06-19  Damon Chaplin  <damon@ximian.com>

	* pcs/cal.c:
	* idl/evolution-calendar.idl:
	* cal-client/cal-client.[hc]: removed stuff to get builtin timezone
	info from the server.

svn path=/trunk/; revision=10322
2001-06-20 02:56:02 +00:00
4517358deb new dialog for setting the time zone.
2001-06-14  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/e-timezone-dialog.[hc]:
	* gui/dialogs/e-timezone-dialog.glade: new dialog for setting the
	time zone.

	* gui/dialogs/Makefile.am: added timezone dialog files.

	* idl/evolution-calendar.idl: added CalTimezoneInfo struct and seq,
	and getBuiltinTimezoneInfo method.

	* pcs/cal.c (impl_Cal_get_builtin_timezone_info): implemented method.
	(cal_class_init): added method to epv.

	* cal-client/cal-client.c (struct CalClientPrivate): added
	timezone_info array to contain cached info on builtin timezone city
	names and coordinates.
	(cal_client_get_builtin_timezone_info): new function to get the info
	about builtin timezones.

	* cal-client/cal-client.h: added CalTimezoneInfo struct, to contain
	the city names and coords of the builtin timezones.

svn path=/trunk/; revision=10223
2001-06-14 06:00:21 +00:00
2ed7c634ca Convert to bonobo xobject
2001-05-07  JP Rosevear  <jpr@ximian.com>

	* pcs/cal-factory.[hc]: Convert to bonobo xobject

	* pcs/cal.[hc]: Convert to bonobo xobject

svn path=/trunk/; revision=9703
2001-05-07 22:13:14 +00:00
9462327e66 Connect to the "changed" signal of the categories entry so that they will
2001-04-17  Federico Mena Quintero  <federico@ximian.com>

	* gui/event-editor.c (init_widgets): Connect to the "changed"
	signal of the categories entry so that they will be applied
	correctly.
	(EventEditorPrivate): Added fields for the contacts button and
	entry.
	(init_widgets): Disable the contacts widgets as we do not support
	them yet.
	(get_widgets): Get the contacts widgets.

	* gui/dialogs/task-editor.c (get_widgets): Get the contacts
	button, which was missing.
	(init_widgets): Disable the contacts widgets as we do not support
	them yet.

	* pcs/query.c (matches_text_list): Use e_utf8_strstrcasedecomp()
	instead of plain e_utf8_strstrcase().
	(matches_summary): Likewise.

svn path=/trunk/; revision=9436
2001-04-18 01:52:45 +00:00
0dd9493f10 Add EXTRA_GNOME_CFLAGS, for gal.
* pcs/Makefile.am (INCLUDES): Add EXTRA_GNOME_CFLAGS, for gal.

svn path=/trunk/; revision=9395
2001-04-16 23:29:17 +00:00
819a11d2fc Create the ESearchBar thingy. (search_bar_query_changed_cb): Build the
2001-04-15  Federico Mena Quintero  <federico@ximian.com>

	* gui/gnome-cal.c (setup_widgets): Create the ESearchBar thingy.
	(search_bar_query_changed_cb): Build the different queries based
	on the type and string.

	* pcs/query.c (backend_obj_updated_cb): Ref the query while we are
	notifying the listener so that it will not disappear from under us.
	(backend_obj_removed_cb): Likewise.
	(process_component_cb): Likewise.
	(func_contains): New function to match text fields.
	(matches_comment): New function to match comment lists.
	(matches_description): New function to match description lists.
	(matches_summary): New function to match summaries.
	(matches_any): New function to match any text field.
	(func_has_categories): New function to match categories.

svn path=/trunk/; revision=9340
2001-04-16 02:50:55 +00:00