2001-10-10 Federico Mena Quintero <federico@ximian.com>
* pcs/cal-factory.c (lookup_backend): Return the original key in
the hash table if requested.
(backend_last_client_gone_cb): Use lookup_backend() so that we
have the URI mangling done for us.
(impl_CalFactory_open): The type should be GtkType *, not GtkType!
svn path=/trunk/; revision=13557
2001-10-09 JP Rosevear <jpr@ximian.com>
* gui/itip-utils.c (get_address): util function to get address
(itip_addresses_get_default): get only the default address
(itip_address_free): free single address
(itip_addresses_free): use above
(comp_limit_attendees): limit the number of attendees to one, the
user
(comp_sentby): set the sentby parameter if the user is not the
organizer
(comp_minimal): remove extraneous info for send (for refresh and
declinecounter)
(comp_compliant): remove all alarms, do various things to make the
components comply with itip spec based on method
(itip_send_comp): use comp_compliant method
* gui/itip-utils.h: new protos
* gui/e-itip-control.c: rescan the component when necessary
(get_next): don't get stuck in infinite loop if there are no
viewable components
(e_itip_control_set_data): if there are no viewable components,
spit an error message
* gui/dialogs/meeting-page.h: tidy
* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): use
organizer's cn if possible
(other_clicked_cb): no longer doing the sent by stuff directly,
hide more widgets
* pcs/query.c: use bonobo exception stuff
* cal-util/cal-component.c (cal_component_rescan): have the comp
rescan its libical component (for when you change things directly)
(free_icalcomponent): take a param on whether to free the
component or just clean up the mappings
(cal_component_has_attendees): util function
* cal-util/cal-component.h: new protos
svn path=/trunk/; revision=13525
2001-10-09 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-factory.c (lookup_backend, add_backend): deal correctly with
URIs to be inserted into the hash table, so that we don't add the same
backend over and over because the URI strings were different (although
refering to the same backend)
svn path=/trunk/; revision=13523
2001-10-09 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-backend-file.c (mail_account_*): moved to a common place
(cal_backend_file_open): check if "uristr != NULL" and not
"uri != NULL"
* pcs/cal-backend-util.c: moved to here
* gui/e-day-view.c: add missing header file
svn path=/trunk/; revision=13517
2001-10-03 JP Rosevear <jpr@ximian.com>
* gui/itip-utils.c (itip_send_comp): refactor functionality into
several function
(comp_string): if we are publishing, empty the attendee list
* gui/dialogs/event-editor.c (schedule_meeting_cmd): when we
schedule a new meeting, mark the event editor as changed
* pcs/cal.c (cal_class_init): get correct parent class
* gui/dialogs/comp-editor.c (comp_editor_merge_ui): use the
generated ui component name
svn path=/trunk/; revision=13385
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-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 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-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-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-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-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-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-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-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-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-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-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-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-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 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-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-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-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-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-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-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-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-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-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-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-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-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-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 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-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 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-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-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-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-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-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