aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs
Commit message (Collapse)AuthorAgeFilesLines
* new method.Rodrigo Moya2002-04-126-2/+58
| | | | | | | | | | | | | | | 2002-04-05 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend.[ch] (cal_backend_get_query): new method. * pcs/cal-backend-file.c (cal_backend_file_get_query): new method. * pcs/cal.c (impl_Cal_get_query): call the CalBackend's implementation instead of calling query_new directly. * pcs/query.[ch]: fixed headers. svn path=/trunk/; revision=16443
* Remove dead files.JP Rosevear2002-04-072-1250/+0
| | | | | | | | 2002-04-06 JP Rosevear <jpr@ximian.com> * pcs/cal-backend-db.[hc]: Remove dead files. svn path=/trunk/; revision=16381
* simple fix for DB3 header inclusion in Mac OS X, by Max HornRodrigo Moya2002-04-021-0/+4
| | | | | | | | | 2002-04-01 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-db.c: simple fix for DB3 header inclusion in Mac OS X, by Max Horn <max@quendi.de> svn path=/trunk/; revision=16309
* Clean up some of the Makefiles so we dont' link every library multipleEttore Perazzoli2002-01-251-3/+2
| | | | | | times, causing big libtool 1.4 pain. svn path=/trunk/; revision=15461
* (committed by Damon)Federico Mena Quintero2001-12-081-25/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-11-09 Federico Mena Quintero <federico@ximian.com> (committed by Damon) Fix bug #14699. * pcs/query.c (QueryState): Added a state QUERY_WAIT_FOR_BACKEND to indicate that the query is not populated as we are waiting for the backend to be opened. (query_init): Start in the QUERY_WAIT_FOR_BACKEND state. (query_destroy): Only disconnect from the backend if we are in a state that implies that we are connected to its signals. (query_construct): If the backend is already loaded, immediately set the state to QUERY_START_PENDING. (backend_opened_cb): Disconnect from the backend's "opened" signal. Set the state to QUERY_START_PENDING. (match_component): We can now only match components if the query is in progress or if it is done. Assert to that effect, and do not ensure_sexp(). (match_component): Do not check for a nonexistent component using g_return_if_fail(). Also, there is no need to ref/unref the component. (backend_obj_updated_cb): Assert to the effect of our state. (backend_obj_removed_cb): Likewise. (parse_sexp): Renamed from ensure_sexp(). Assert that the query has not started. Do not disconnect from the backend's signals here, since we have no connections. (start_query_cb): Set the state to QUERY_IN_PROGRESS here instead of in populate_query(). svn path=/trunk/; revision=14941
* recurrence expansion callback for free/busy (create_user_free_busy):JP Rosevear2001-11-121-18/+44
| | | | | | | | | | | 2001-11-11 JP Rosevear <jpr@ximian.com> * pcs/cal-backend-file.c (free_busy_instance): recurrence expansion callback for free/busy (create_user_free_busy): expand recurrences and use date/time values for dtstart and dtend svn path=/trunk/; revision=14670
* don't leak the string returned by cal_component_get_as_string nor theRodrigo Moya2001-11-091-1/+7
| | | | | | | | | | | 2001-11-08 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-file.c (cal_backend_file_compute_changes_foreach_key): don't leak the string returned by cal_component_get_as_string nor the temporary CalComponent we create svn path=/trunk/; revision=14629
* If a query is not in progress, just retag the whole thing. An event mayFederico Mena Quintero2001-10-311-41/+41
| | | | | | | | | | | | | | | | | | | | 2001-10-31 Federico Mena Quintero <federico@ximian.com> * gui/gnome-cal.c (dn_query_obj_updated_cb): If a query is not in progress, just retag the whole thing. An event may change dates and tag_calendar_by_comp() would not know how to untag the old dates. Fixes bug #10220. * pcs/query.c (start_query_cb): Connect to the backend's "obj_updated" and "obj_removed" signals here instead of in query_construct(). If a query is started while another one is notifying of an update, these signal connections would get appened to the running signal (the one that triggered the notification about an update) and the new signal handlers would also get called. We are really not interested in updates before we populate the query, because we'll catch the changes anyways. svn path=/trunk/; revision=14533
* new function. (dump_backend): new function.Chris Toshok2001-10-302-0/+25
| | | | | | | | | | | | | 2001-10-29 Chris Toshok <toshok@ximian.com> * pcs/cal-factory.c (cal_factory_dump_active_backends): new function. (dump_backend): new function. * pcs/cal-factory.h: add prototype for cal_factory_dump_active_backends. svn path=/trunk/; revision=14374
* Fixing the license text.Ettore Perazzoli2001-10-2817-68/+51
| | | | svn path=/trunk/; revision=14214
* Get a fresh CORBA_Environment for every CORBA call. Hopefully will fixFederico Mena Quintero2001-10-261-1/+6
| | | | | | | | | | | 2001-10-26 Federico Mena Quintero <federico@ximian.com> * pcs/cal.c (cal_construct): Get a fresh CORBA_Environment for every CORBA call. Hopefully will fix #11978, but I'm not sure about what else could be happening. (cal_get_password): Free the exception. svn path=/trunk/; revision=14126
* when iterating over the subcomponents, use 'subcomp' rather thanDamon Chaplin2001-10-251-2/+2
| | | | | | | | | | | | | | | | | | | | 2001-10-24 Damon Chaplin <damon@ximian.com> * pcs/cal-backend-file.c (cal_backend_file_update_objects): when iterating over the subcomponents, use 'subcomp' rather than 'icalcomp'. That meant it wasn't working at all well when an entire VCALENDAR was passed in. * cal-util/cal-component.c: handle DURATION property used instead of DTEND or DUE. In cal_component_get_dtend/due we will return DTSTART + DURATION if necessary. In set_dtend/due we remove any DURATION property. Fixes bug #11262. * gui/e-meeting-model.c (build_etable): * gui/e-calendar-table.c (e_calendar_table_init): use U_ for the ECellCombo popdown strings, as it expects UTF-8 strings. svn path=/trunk/; revision=13992
* added setDefaultTimezone() method.Damon Chaplin2001-10-235-92/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-22 Damon Chaplin <damon@ximian.com> * idl/evolution-calendar.idl: added setDefaultTimezone() method. * pcs/cal-backend.c (cal_backend_get_default_timezone): (cal_backend_set_default_timezone): new functions to call class methods. * pcs/cal-backend-file.c: lots of changes to handle the default timezone and use it. * pcs/query.c: use the default timezone. * gui/dialogs/task-details-page.c (date_changed_cb): initialized completed_tt. * gui/dialogs/event-page.c: changed it to handle DATE values. The 'All Day Event' checkbox is only set now when the DTSTART and DTEND are DATE values. * gui/dialogs/comp-editor-util.c (comp_editor_free_dates): free the CalComponentDateTime structs as well. * gui/e-tasks.c: set the default timezone on the server. * gui/tag-calendar.c: * gui/gnome-cal.c: * gui/e-week-view.c: * gui/e-day-view.c: updates to handle DATE values. * gui/e-calendar-table.c (date_compare_cb): updated to use the new ECellDateEditValue values, so it now works. (percent_compare_cb): updated to use GPOINTER_TO_INT values. (e_calendar_table_init): use an ECellPercent for the percent field and an ECellDateEditText for the date fields. * gui/comp-util.c (cal_comp_util_compare_event_timezones): return TRUE if the DTSTART or DTEND is a DATE value. We don't want to show the timezone icons for DATE values. * gui/comp-editor-factory.c (resolve_pending_requests): set the default timezone on the server. * gui/calendar-model.c: major changes to support sorting properly. For date and percent fields we now use subclasses of ECellText, so we don't use a char* as the model value. For the percent field we now use a GINT_TO_POINTER. For the date fields we now use a ECellDateEditValue* as the value. * gui/calendar-config.c (calendar_config_configure_e_cell_date_edit): set the timezone and use_24_hour flags of the new ECellDateEditText. * conduits/todo/todo-conduit.c (pre_sync): * conduits/calendar/calendar-conduit.c (pre_sync): set the default timezone on the server. * cal-util/timeutil.c (time_days_in_month): removed debug message. * cal-util/test-recur.c: try to handle timezones in the iCalendar file properly, and updated to pass default timezone. * cal-util/cal-util.c (cal_util_generate_alarms_for_comp): (cal_util_generate_alarms_for_list): added default timezone argument. * cal-util/cal-recur.c: changed many of the functions to take a default timezone, to use to resolve DATE and floating DATE-TIME values. * cal-client/cal-client.c (cal_client_set_default_timezone): new function to set the default timezone. (cal_client_ensure_timezone_on_server): new function to ensure that a given timezone is on the server. * gui/e-cell-date-edit-text.c: new subclass of ECellText to display and edit a date value. * cal-util/cal-recur.c (cal_obj_byday_expand_monthly): changed week_num to -week_num when calculating the weeks to go back from the end of the month for things like BYDAY=-2WE. Fixes bug #11525. (cal_recur_generate_instances_of_rule): only go up to MAX_YEAR (2037). We can't really handle anything past that anyway. (cal_recur_ensure_rule_end_date): initialize cb_date.end_date to 0, so if the RULE doesn't generate COUNT instances we save 0 as the time_t. svn path=/trunk/; revision=13920
* write out the correct time in the controlJP Rosevear2001-10-231-26/+31
| | | | | | | | | | | | | | | | | 2001-10-22 JP Rosevear <jpr@ximian.com> * gui/e-itip-control.c (set_date_label): write out the correct time in the control * pcs/cal.c (build_fb_seq): utility function to build sequences of f/b data (impl_Cal_get_free_busy): use above so we never return a NULL * conduits/calendar/calendar-conduit-config.h (calconduit_save_configuration): fix c/p error (calconduit_load_configuration): ditto svn path=/trunk/; revision=13876
* there may be cases when the backend will return an invalid component fromRodrigo Moya2001-10-181-1/+1
| | | | | | | | | | 2001-10-17 Rodrigo Moya <rodrigo@ximian.com> * pcs/query.c (match_component): there may be cases when the backend will return an invalid component from a valid UID (an UID returned by the get_uids method), so don't abort if that's the case svn path=/trunk/; revision=13725
* Return the original key in the hash table if requested.Federico Mena Quintero2001-10-111-18/+35
| | | | | | | | | | | | 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
* fix logic checksJP Rosevear2001-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | 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
* util function to get address (itip_addresses_get_default): get only theJP Rosevear2001-10-101-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* deal correctly with URIs to be inserted into the hash table, so that weRodrigo Moya2001-10-101-2/+20
| | | | | | | | | | | 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
* moved to a common place (cal_backend_file_open): check if "uristr != NULL"Rodrigo Moya2001-10-103-62/+82
| | | | | | | | | | | | | | 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
* refactor functionality into several function (comp_string): if we areJP Rosevear2001-10-041-1/+1
| | | | | | | | | | | | | | | | | | 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
* replace use of gnome_vfs_uri with e_uriRodrigo Moya2001-10-045-84/+97
| | | | | | | | | | | | | | | | | | | | | | | 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
* strdup the uid to avoid double free, write out only after everything isJP Rosevear2001-10-021-3/+3
| | | | | | | | | | 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
* don't use gnome_vfs_uri_is_local on URIs created withRodrigo Moya2001-10-021-5/+0
| | | | | | | | | | 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
* Handle the fields and category we don't sync by making sure we don'tJP Rosevear2001-09-291-3/+9
| | | | | | | | | | | | | | | | 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
* added InvalidURI and UnsupportedMethod exceptions to the CalFactoryRodrigo Moya2001-09-271-2/+33
| | | | | | | | | | | | | | | | | | | | 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
* new protoJP Rosevear2001-09-266-26/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* use bonobo-exception stuff to clean codeJP Rosevear2001-09-265-50/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* gets a config db (cal_backend_file_destroy): release config dbJP Rosevear2001-09-211-15/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fixed weird include pathRodrigo Moya2001-09-201-1/+1
| | | | svn path=/trunk/; revision=12981
* add a new parameter (const char *iid) to specify the OAFIID of the factoryRodrigo Moya2001-09-192-6/+21
| | | | | | | | | | 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
* new class for managing multiple calendars, with an API very similar to theRodrigo Moya2001-09-194-47/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* added a timeout to refresh the list every 10 minutes. Not ideal, as theDamon Chaplin2001-09-182-21/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [Automake 1.5 fixes pointed out by Richard BoultonEttore Perazzoli2001-09-151-1/+1
| | | | | | | | | <richard@tartarus.org>, as per #9258.] * pcs/Makefile.am: Set CLEANFILES directly instead of using `+='. svn path=/trunk/; revision=12843
* See if the set of categories changed by using the removed_categories hashFederico Mena Quintero2001-08-301-16/+77
| | | | | | | | | | | | | | | | | | 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
* Fixes bug #7879, a query may receive an update notification from theFederico Mena Quintero2001-08-291-28/+98
| | | | | | | | | | | | | | | | | | | | 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
* open the tasks folder associated with the calendar being opened, and notRodrigo Moya2001-08-221-1/+1
| | | | | | | | | | | | | 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
* added new e-sexp operator. We don't currently use it though.Damon Chaplin2001-08-221-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* new files to contain utility functions for calendar backendsRodrigo Moya2001-08-217-251/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* new functions moved from the CalBackendFile, to allow its use outside ofRodrigo Moya2001-08-212-543/+38
| | | | | | | | | | | | | | | | | | | | 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
* added new backend method to get the component given a UID.Damon Chaplin2001-08-104-21/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* New function to stop further notification from happening.Federico Mena Quintero2001-08-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* added 'different_timezone' fields to EDayViewEvent and EWeekViewEvent, toDamon Chaplin2001-08-071-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* The calendar search bar widget now includes a drop-down menu of availableFederico Mena Quintero2001-08-022-58/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* The Wombat now keeps track of which categories are present in the objectsFederico Mena Quintero2001-08-013-1/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* implementedRodrigo Moya2001-07-301-1/+57
| | | | | | | | 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
* new protoJP Rosevear2001-07-131-18/+2
| | | | | | | | | | | | | | | | | 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
* renamed updateObject to updateObjects and removed the UID argument, sinceDamon Chaplin2001-07-124-26/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* more timezone updates. I'm pretty much done with the calendar code now,Damon Chaplin2001-07-112-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Pass the parent vCalendar component as the timezone closure ofFederico Mena Quintero2001-07-111-1/+10
| | | | | | | | | | | | | | | 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
* added virtual method to get a VTIMEZONE component given a TZID. We needDamon Chaplin2001-07-034-18/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* cal-client/cal-client.[hc] cal-util/cal-component.cDamon Chaplin2001-07-035-8/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Renamed the occur field to occur_start; added an occur_end field. This wayFederico Mena Quintero2001-06-271-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Initialize libglade.Federico Mena Quintero2001-06-252-10/+24
| | | | | | | | | | | | | | | | | 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
* Converted to use BonoboXObject.Federico Mena Quintero2001-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-2310-10/+10
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* new function for the backends to be able to call the getPassword method onRodrigo Moya2001-06-234-3/+88
| | | | | | | | | | | 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
* changed getFreeBusy method to return a CalObj instead of a sequenceRodrigo Moya2001-06-226-20/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* added getFreeBusy methodRodrigo Moya2001-06-205-0/+83
| | | | | | | | | | | | | | | | | | | | 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
* removed stuff to get builtin timezone info from the server.Damon Chaplin2001-06-201-41/+0
| | | | | | | | | | | 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
* new dialog for setting the time zone.Damon Chaplin2001-06-141-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Convert to bonobo xobjectJP Rosevear2001-05-084-495/+218
| | | | | | | | | | 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
* Connect to the "changed" signal of the categories entry so that they willFederico Mena Quintero2001-04-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Add EXTRA_GNOME_CFLAGS, for gal.Dan Winship2001-04-171-0/+1
| | | | | | * pcs/Makefile.am (INCLUDES): Add EXTRA_GNOME_CFLAGS, for gal. svn path=/trunk/; revision=9395
* Create the ESearchBar thingy. (search_bar_query_changed_cb): Build theFederico Mena Quintero2001-04-161-7/+272
| | | | | | | | | | | | | | | | | | | | | 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
* Do this everywhere, also fixup CLEANFILESMichael Meeks2001-04-141-0/+4
| | | | | | | | | | Do this everywhere, also fixup CLEANFILES 2001-04-14 Michael Meeks <michael@ximian.com> * Makefile.am (dist-hook): remove built sources from dist. svn path=/trunk/; revision=9309
* New function to restart a query for the day view. (query_obj_updated_cb):Federico Mena Quintero2001-04-132-13/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-04-12 Federico Mena Quintero <federico@ximian.com> * gui/e-day-view.c (update_query): New function to restart a query for the day view. (query_obj_updated_cb): Renamed from obj_updated_cb(); updated for queries instead of calendar clients. (query_obj_removed_cb): Likewise. (cal_opened_cb): Just update_query() instead of queueing reloading all the events. (e_day_view_set_cal_client): Likewise. (e_day_view_set_query): Likewise. (e_day_view_set_selected_time_range): Likewise. (e_day_view_set_days_shown): Likewise. (e_day_view_recalc_work_week): Likewise. (e_day_view_queue_reload_events): Removed function now that events are updated entirely by the query. (e_day_view_reload_events_idle_cb): Likewise. (e_day_view_reload_events): Likewise. (e_day_view_init): Use a pretty arrow instead of GDK_TOP_LEFT_ARROW. * gui/e-week-view.c: Analogous changes to the ones in e-day-view.c. (e_week_view_init): Use a pretty arrow instead of GDK_TOP_LEFT_ARROW. * cal-util/timeutil.c (isodate_from_time_t): Return a g_strdup()ed version of the string instead of a pointer to a static buffer. (time_from_isodate): Resurrected function. Polished up to our current standards of paranoia. * pcs/query.c (func_time_now): New function (time-now). (func_make_time): New function (make-time ISODATE). (func_time_add_day): New function (time-add-day TIME N). (func_time_day_begin): New function (time-day-begin TIME). (func_time_day_end): New function (time-day-end TIME). (func_occur_in_time_range): Use time_t values instead of ints. (match_component): Free the stringized component. Free the ESexp result value. * gui/e-day-view.h: Removed a couple of unused prototypes. * pcs/query.c (query_destroy): Oops, disconnect from the backend. * pcs/cal.c (Cal_get_query): Duplicate the query reference before we return it. * gui/calendar-commands.c (pixmaps): Fixed paths to image files. svn path=/trunk/; revision=9266
* prepend to both changes and change_ids when different and mark asJP Rosevear2001-04-121-2/+2
| | | | | | | | | | 2001-04-11 JP Rosevear <jpr@ximian.com> * pcs/cal-backend-file.c (cal_backend_file_compute_changes): prepend to both changes and change_ids when different and mark as modified, not added svn path=/trunk/; revision=9246
* Engine for live queries to calendars. A query object watches a CalBackendFederico Mena Quintero2001-03-308-12/+1067
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-03-29 Federico Mena Quintero <federico@ximian.com> Engine for live queries to calendars. A query object watches a CalBackend in the PCS and is otherwise completely separate from it; backends need to do nothing to support live queries. Right now we have the following functions: (get-vtype) Returns a string indicating the type of component (VEVENT, VTODO, VJOURNAL, VFREEBUSY, VTIMEZONE, UNKNOWN). (occur-in-time-range? START END) START - int, time_t start of the time range END - int, time_t end of the time range Returns a boolean indicating whether the component has any occurrences in the specified time range. * idl/evolution-calendar.idl (Cal::getQuery): New method that initiates a live query. (Query): New interface for a handle to a live query. (QueryListener): New interface for a listener to changes in a live query. * pcs/query.[ch]: New files with the live query engine. * pcs/cal-backend.h (CalBackendClass): Added notification signals so that the query system can catch them. (CalBackendClass): New virtual method ::get_load_state(). * pcs/cal-backend.c (cal_backend_opened): (cal_backend_obj_updated): (cal_backend_obj_updated): New functions to emit the notification signals; to be used only by backend implementations. (cal_backend_get_load_state): New function. * pcs/cal-backend-file.c (notify_update): Call cal_backend_obj_updated(). (notify_remove): Call call_backend_obj_removed(). (open_cal): Free the icalcomp if it is not of the correct type. (cal_backend_file_get_load_state): Implemented new method. * pcs/cal-backend-db.c (cal_backend_db_update_object): Call cal_backend_obj_updated(). (cal_backend_db_remove_object): Call cal_backend_obj_removed(). (cal_backend_db_get_load_state): Implemented new method. * pcs/cal.c (Cal_get_query): Implementation of the ::getQuery() method. svn path=/trunk/; revision=9013
* Replace includes of <gnome.h>, <bonobo.h> and <gtk/gtk.h> with the neededKjartan Maraas2001-03-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-03-26 Kjartan Maraas <kmaraas@gnome.org> * cal-client/client-test.c: Replace includes of <gnome.h>, <bonobo.h> and <gtk/gtk.h> with the needed headers to speed up compile. * cal-util/test-recur.c: Same here for <gtk/gtk.h> * gui/calendar-commands.c: Replace <bonobo.h> and remove <libgnorba/gnorba.h> * gui/calendar-summary.c: Replace <gnome.h> and <bonobo.h> * gui/calendar-summary.h: Added <bonobo/bonobo-generic-factory.h> * gui/component-factory.c: Remove <bonobo.h> * gui/control-factory.c: Replace <bonobo.h> * gui/e-calendar-table.c: Remove <gnome.h> * gui/e-itip-control.c: Replace <gnome.h> and <bonobo.h> * gui/e-meeting-edit.c: Replace <bonobo.h> * gui/e-tasks.c: Replace <gnome.h> * gui/e-tasks.h: Replace <bonobo.h> * gui/gnome-cal.h: Remove <bonobo.h> * gui/main.c: Replace <bonobo.h> and <glade/glade.h> * gui/tasks-control-factory.c: Replace <bonobo.h> * gui/tasks-control.c: Replace <gnome.h> and <bonobo.h> * gui/weekday-picker.c: Add <string.h> and <libgnome/gnome-defs.h> * gui/alarm-notify/client-main.c: Remove <gnome.h> and <bonobo.h> * gui/alarm-notify/notify-main.c: Replace <gnome.h> and <bonobo.h> * gui/dialogs/alarm-notify-dialog.c: Replace <gnome.h> * pcs/cal-backend.c: Replace <gtk/gtk.h> svn path=/trunk/; revision=8937
* fixed generation of history recordsRodrigo Moya2001-02-241-2/+38
| | | | | | | | 2001-02-23 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-db.c (add_history): fixed generation of history records svn path=/trunk/; revision=8370
* Added a `registered' field. (cal_factory_oaf_register): New function; nowFederico Mena Quintero2001-02-212-1/+71
| | | | | | | | | | | | 2001-02-16 Federico Mena Quintero <federico@ximian.com> * pcs/cal-factory.c (CalFactoryPrivate): Added a `registered' field. (cal_factory_oaf_register): New function; now the factory performs its own registration with OAF. (cal_factory_destroy): Unregister from OAF if appropriate. svn path=/trunk/; revision=8308
* close DB environment. Some compilation warnings removedRodrigo Moya2001-02-171-14/+28
| | | | | | | | | 2001-02-16 Rodrigo Moya <rodrigo@ximian.com> * pcs/calbackend-db.c (cal_backend_db_destroy): close DB environment. Some compilation warnings removed svn path=/trunk/; revision=8254
* implementedRodrigo Moya2001-02-141-38/+73
| | | | | | | | | 2001-02-13 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-db.c (cal_backend_db_get_alarms_for_object): implemented svn path=/trunk/; revision=8213
* cal_backend_db_update_object(): manage both updates and additions/addRodrigo Moya2001-02-131-194/+486
| | | | | | | | | | | | | 2001-02-12 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-file.c: cal_backend_db_update_object(): manage both updates and additions/add notification cal_backend_db_get_object(): don't use DB cursors cal_backend_db_get_type_by_uid(): don't use DB cursors cal_backend_db_remove_object(): don't use DB cursors/add notification cal_backend_db_get_alarms_in_range(): implemented svn path=/trunk/; revision=8204
* added DB3 transactions supportRodrigo Moya2001-02-131-29/+145
| | | | | | | | 2001-02-11 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-db.c: added DB3 transactions support svn path=/trunk/; revision=8184
* added the new DB3-based backend. This is just the beginning, there areRodrigo Moya2001-02-132-0/+1052
| | | | | | | | | 2001-02-11 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend-db.[ch]: added the new DB3-based backend. This is just the beginning, there are some missing things still. svn path=/trunk/; revision=8182
* Move the get_change code hereJP Rosevear2001-02-093-149/+174
| | | | | | | | | | | | | | | | | 2001-02-08 JP Rosevear <jpr@ximian.com> * pcs/cal-backend-file.c: Move the get_change code here * pcs/cal-backend.c: Remove get_changes related stuff and implement by calling the virtual method instead * pcs/cal-backend.h: New virtual method. * pcs/cal-backend-file.c (compute_alarm_range): Use icaldurationtype_as_int (replace _as_timet) (add_alarm_occurrences_cb): ditto svn path=/trunk/; revision=8123
* libical import cleanupJP Rosevear2001-01-241-2/+2
| | | | | | | | 2001-01-23 JP Rosevear <jpr@ximian.com> * libical import cleanup svn path=/trunk/; revision=7753
* Fix transposition of sync db locationJP Rosevear2001-01-171-1/+1
| | | | | | | | | 2001-01-17 JP Rosevear <jpr@ximian.com> * pcs/cal-backend.c (cal_backend_compute_changes): Fix transposition of sync db location svn path=/trunk/; revision=7575
* Ximianified email addresses and copyrights.Federico Mena Quintero2001-01-1711-373/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-01-17 Federico Mena Quintero <federico@ximian.com> * */*: Ximianified email addresses and copyrights. * idl/evolution-calendar.idl (CalFactory::open): Renamed from ::load(), and added an only_if_exists argument. (CalFactory::create): Removed method. (Listener::OpenStatus): Removed the IN_USE error and replaced it with a NOT_FOUND one; renamed the enum from LoadStatus. (Listener::notifyCalOpened): Renamed from notifyCalLoaded(). * pcs/cal-backend.h (CalBackend): Removed the uri field. (CalBackendOpenStatus): Renamed from CalBackendLoadStatus and added a NOT_FOUND value. (CalBackendClass::open): Put in a slot for the open method. * pcs/cal-backend.c (cal_backend_create): Removed function. * pcs/cal-backend-file.c (cal_backend_file_open): Return the appropriate value when only_if_exists is TRUE. (create_cal): We are Ximian now, so set the PRODID property to the appropriate foo. * pcs/cal-factory.c (CalFactory_open): implemented, replacing CalFactory_load() and CalFactory_create(). (CalFactory_open): Moved the queue_load_create_job() stuff to here, since we now only need to contemplate the open case instead of load/create ones. (open_backend): Do everything here; replaces load_backend() and create_backend(). * cal-client/cal-listener.h (CalListenerClass::cal_opened): Renamed from cal_loaded. (CalListenerClass): Replaced the silly signals, which are gratuitous abstraction, by a set of function pointers in the instance structure. * cal-client/cal-listener.c (cal_listener_get_calendar): Removed unused function. (cal_listener_construct): Added the listener notification functions. (cal_listener_new): Ditto. (Listener_notifyCalOpened): Renamed to our new naming convention for servant implementations. (Listener_notifyObjUpdated): Ditto. (Listener_notifyObjRemoved): Ditto. * cal-client/cal-client.h (CalClientOpenStatus): Renamed from CalClientLoadStatus. (CalClientClass::cal_opened): Renamed from ::cal_loaded(). (CalClientLoadState): New enum; basically make LoadState public so that users of this code do not have to maintain their own states. * cal-client/cal-client.c (cal_client_create_calendar): Removed function. (cal_client_open_calendar): Moved the functionality over from load_or_create(); now we do everything here. (*): Use the CalClientLoadState enum values instead of the old LoadState values. (cal_client_get_load_state): Renamed from cal_client_is_loaded(), and return the appropriate value. (CalClientPrivate): Added an uri field. (cal_client_init): Initialize priv->uri. (cal_client_destroy): Free the priv->uri. (cal_opened_cb): Maintain the priv->uri. (cal_client_open_calendar): Fill in the priv->uri. (cal_client_get_uri): New function. * gui/calendar-model.c (calendar_model_set_new_comp_vtype): New function to configure the type of calendar components to create when doing click-to-add. This makes the model usable for something other than task lists. (calendar_model_get_new_comp_vtype): New function. * gui/e-calendar-table.c (e_calendar_table_get_model): New function. (e_calendar_table_destroy): Unref the subset_model. * gui/gnome-cal.h (GnomeCalendarOpenMode): Removed enum. * gui/gnome-cal.c (LoadState): Removed enum; we now use the CalClientLoadState from the client objects. (GnomeCalendarPrivate): Removed the loading_uri and task_pad_loading_uri fields as well as the load_state and task_pad_load_state fields, as we can now query them directly from the CalClient. (open_error): Renamed from load_error(). (create_error): Removed function. (gnome_calendar_open): Do not take in the mode parameter. (cal_opened_cb): Get rid of our beautifully-crafted state machine and replace it with simple code; all the loading smarts are in the Wombat now. (setup_widgets): Set the new component vtype of the table model to CAL_COMPONENT_TODO. * gui/Makefile.am (evolution_calendar_SOURCES): Removed gnome-month-item.[ch] from the list of sources. * gui/calendar-summary.c (CalSummary): Removed unused cal_loaded field. (create_summary_view): Do not check if the file exists; this is the job of the Wombat. (generate_html_summary): Fixed prototype. (alarm_fn): Fixed prototype. (property_dialog): Fixed prototype. Wonder if/how this ever worked. (create_summary_view): Cast the component and view as appropriate. Removed unused html variable. [Iain dude, are you compiling with -Wall?] * gui/e-itip-control.c (cal_opened_cb): Sigh, this function signature was *very* wrong. It was using CalClientGetStatus instead of CalClientOpenStatus. * gui/e-tasks.h (ETasksOpenMode): Removed enum. * gui/e-tasks.c (setup_widgets): Set the new component vtype of the table model to CAL_COMPONENT_TODO. (LoadState): Removed the state machine foo. (e_tasks_open): Removed the mode parameter. (initial_load): Removed function. (create_error): Removed function. (ETasksPrivate): Removed folder_uri field. (cal_opened_cb): Remove the state machine. * gui/component-factory.c: #include "tasks-control.h" * conduits/calendar/calendar-conduit.h (ECalConduitContext): Removed calendar_load_tried field. * conduits/calendar/calendar-conduit.c (start_calendar_server_cb): Sigh, fixed function prototype. * conduits/todo/todo-conduit.h (EToDoConduitContext): Removed calendar_load_tried field. * conduits/todo/todo-conduit.c (start_calendar_server_cb): Fixed function prototype. svn path=/trunk/; revision=7571
* accomadate tasks in their new dirJP Rosevear2001-01-161-1/+4
| | | | | | | | | | | 2001-01-15 JP Rosevear <jpr@ximian.com> * pcs/cal-backend.c (cal_backend_compute_changes): accomadate tasks in their new dir * conduits/todo/todo-conduit.c (start_calendar_server): ditto svn path=/trunk/; revision=7512
* If the component has no alarms, do not try to queue them.Federico Mena Quintero2001-01-031-2/+1
| | | | | | | | | | | | 2001-01-02 Federico Mena Quintero <federico@helixcode.com> * gui/alarm-notify.c (add_component_alarms): If the component has no alarms, do not try to queue them. (remove_client_alarms): New function to remove all the queued alarms for a calendar client. (alarm_notify_remove_client): Remove the client's alarms. svn path=/trunk/; revision=7218
* account for the case where there are no alarms, fixes crashJP Rosevear2000-12-231-2/+6
| | | | | | | | | 2000-12-22 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend-file.c (cal_backend_file_get_alarms_for_object): account for the case where there are no alarms, fixes crash svn path=/trunk/; revision=7134
* Fix confusion in the way the range is expanded.Federico Mena Quintero2000-12-201-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-12-19 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend-file.c (compute_alarm_range): Fix confusion in the way the range is expanded. * cal-util/cal-component.c (cal_component_alarms_free): Doh, alarms->alarms is a list, not a generic pointer. Free it properly. (cal_component_free_pilot_id): Removed unused function. (cal_component_free_pilot_status): Likewise. * gui/main.c (init_bonobo): Use VERSION instead of a hardcoded string. Pass argc by value, not by reference. Test the return value of gnome_init_with_popt_table(). * cal-client/cal-client.c (cal_client_free_alarms): Oops, missed implementing this function. * cal-util/timeutil.c (print_time_t): Better printing format. (isodiff_to_secs): Removed unused function. (isodiff_from_secs): Removed unused function. (time_day_end): Removed crufty part. (time_day_begin): Removed crufty part. (time_day_hour): Removed unused function. (format_simple_hour): Removed unused function. (get_time_t_hour): Removed unused function. (time_from_start_duration): Removed unused function. * cal-util/timeutil.h (parse_date): Removed unimplemented, unused function prototype. svn path=/trunk/; revision=7083
* Alarm instance generation support for the Wombat.Federico Mena Quintero2000-12-194-132/+444
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-12-18 Federico Mena Quintero <federico@helixcode.com> Alarm instance generation support for the Wombat. * idl/evolution-calendar.idl (Cal::CalAlarmInstance): Changed to have an alarm UID, the trigger time, and the actual occurrence time. (Cal::CalComponentAlarms): New structure to hold a pair of a component and its alarms that trigger in a particular range of time. (Cal::getAlarmsInRange): Changed to return a CalComponentAlarmsSeq. * cal-util/cal-component.h (CalAlarmInstance): New C-side structure to match the one on the IDL. (CalComponentAlarms): Ditto. (CalAlarmAction): Renamed from CalComponentAlarmAction. (CalAlarmTriggerType): Renamed from CalComponentAlarmTriggerType. Encoded the START and END parameters for the RELATED parameter in this enum, too. Added a NONE value for invalid or missing trigger specifications. (CalComponentAlarmTriggerRelated): Removed. (CalAlarmTrigger): Renamed from CalComponentAlarmTrigger. Renamed the duration/time fields to rel_duration/abs_time, respectively. * cal-util/cal-component.c (cal_component_alarm_get_trigger): Changed to use the new trigger structure. (cal_component_alarm_set_trigger): Likewise. (cal_component_alarm_free_trigger): Removed function. (cal_component_has_alarms): Count the elements in the alarm_uid_hash instead of trying to fetch the first alarm subcomponent. (cal_component_alarms_free): New function to free a CalComponentAlarms structure. (CalComponentAlarmPrivate): Added an uid property pointer. (scan_alarm_property): Scan for the our extension UID property. (cal_component_alarm_get_uid): New function. * pcs/cal-backend.h (CalBackendClass): Changed the signatures of the ::get_alarms_in_range() and ::get_alarms_for_object() methods. * pcs/cal-backend.c (cal_backend_get_alarms_in_range): Changed signature; use the new method. (cal_backend_get_alarms_for_object): Likewise. * pcs/cal-backend-file.c (compute_alarm_range): New spiffy function to compute a range of time for alarm occurrences. (add_alarm_occurrences_cb): New function to add alarms for a particular occurrence of the component. (generate_absolute_triggers): New function to add the absolute alarm triggers. (generate_alarms_for_comp): New function to generate all the alarm instances for a component. (cal_backend_file_get_alarms_in_range): Implemented. * pcs/cal.c (Cal_get_alarms_in_range): Use the new CalBackend API. (Cal_get_alarms_for_object): Likewise. (build_alarm_instance_seq): Removed old function. * cal-util/cal-util.c (cal_alarm_instance_list_free): Removed function. * cal-client/cal-client.c (build_component_alarms_list): New function to demarshal the component alarms sequence. (build_alarm_instance_list): New function to demarshal the alarm instances sequence. (cal_client_get_alarms_in_range): Updated for the new API. (cal_client_get_alarms_for_object): Updated for the new API. * gui/gnome-cal.c: Temporary #ifdef-ing out of alarm-related stuff to make it build. svn path=/trunk/; revision=7076
* Create an empty cal component if the object has been deleted.JP Rosevear2000-12-081-1/+6
| | | | | | | | | | | | 2000-12-07 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_compute_changes_foreach_key): Create an empty cal component if the object has been deleted. * idl/evolution-calendar.idl: Bit shift the change type constants properly svn path=/trunk/; revision=6843
* kill (Cal_get_changes): return the corba sequence directlyJP Rosevear2000-12-073-66/+47
| | | | | | | | | | | | | | | | | | | | | 2000-12-06 JP Rosevear <jpr@helixcode.com> * pcs/cal.c (build_change_seq): kill (Cal_get_changes): return the corba sequence directly * pcs/cal-backend.h: update prototype * pcs/cal-backend.c (cal_backend_compute_changes_foreach_key): Build the corba struct rather than the old calobjchange thing (cal_backend_compute_changes): ditto. build and return the actual corba sequence rather than the list of calobjchanges (cal_backend_get_changes): return the corba sequence * cal-util/cal-util.h: Remove CalObjChange cruft * cal-util/cal-util.c (cal_obj_change_list_free): Kill svn path=/trunk/; revision=6826
* Update so as not to conflict with calendar (next_changed_item): update toJP Rosevear2000-12-073-329/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-12-06 JP Rosevear <jpr@helixcode.com> * conduits/calendar/calendar-conduit.c (map_name): Update so as not to conflict with calendar (next_changed_item): update to use CalClientChange instead of CalObjChange (compute_status): ditto (pre_sync): ditto (for_each_modified): since we now have the cal component we can call local_record_from_comp directly * conduits/todo/todo-conduit.c: same as above * pcs/cal-backend.c: Remove much logging cruft (cal_backend_compute_changes): Calculate the changes based on the hashed database (cal_backend_get_changes): call cal_backend_compute_changes (cal_backend_compute_changes_foreach_key): hash callback for calculating deletions * pcs/cal-backend.h: update protype, remove logging cruft from object * pcs/cal.c (build_change_seq): dup the calobj rather than the uid now (Cal_get_changes): rename from Cal_get_changed_uids (cal_get_epv): reflect name change in epv * cal-util/cal-util.c (cal_obj_change_list_free): update assertion * cal-util/cal-util.h: CalObjChange now returns the entire ical component, update the change types. This should all go away shortly * idl/evolution-calendar.idl: getChangedUIds -> getChanges. CalObjChange now contains the calobj rather than the uid, update the change types * cal-client/cal-client.c (cal_client_get_changes): rename from cal_client_get_changed_uids to make idl and addressbook * cal-client/cal-client.h: Update prototype * cal-client/cal-client.c (build_change_list): Build a list of CalClientChange instead of CalObjChange * cal-client/cal-client-types.c (cal_client_change_list_free): Free a glist of CalClientChanges * cal-client/cal-client-types.h: New file. Declarations for CalClientChange. * cal-client/Makefile.am: Build new files svn path=/trunk/; revision=6822
* DOH, fixed reversed test for the presence of the icalcomp's parent. ThisFederico Mena Quintero2000-11-251-0/+1
| | | | | | | | | | | | 2000-11-24 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (free_icalcomponent): DOH, fixed reversed test for the presence of the icalcomp's parent. This was causing memory leaks in the Wombat and elsewhere. * pcs/cal-backend.c (cal_backend_set_node_timet): Plug leak. svn path=/trunk/; revision=6661
* Use the new libical external iterators (icalcomponent_begin_component()Federico Mena Quintero2000-11-252-5/+9
| | | | | | | | | | | | | | | | | | | | | | | 2000-11-24 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend-file.c (scan_vcalendar): Use the new libical external iterators (icalcomponent_begin_component() and friends); the internal iterators are deprecated. * cal-util/test-recur.c (generate_occurrences): Likewise. * gui/e-itip-control.c (pstream_load): Likewise. * gui/e-meeting-edit.c (e_meeting_edit): Likewise. * pcs/cal-backend.c (cal_backend_log_entry): Plug leak. (cal_backend_log_sync): Free the entry->uid. * util/icalendar-save.[ch]: * util/icalendar-test.c: * util/icalendar.[ch]: Removed obsolete files. svn path=/trunk/; revision=6660
* A very, long, very tedious IDL API rename and re-scoping;Michael Meeks2000-11-115-129/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this script + some grunt approximates the work: s/Evolution_MessageList/GNOME_Evolution_MessageList/g; s/GNOME_Evolution_MessageList_select_message/GNOME_Evolution_MessageList_selectMessage/g; s/GNOME_Evolution_MessageList_open_message/GNOME_Evolution_MessageList_openMessage/g; s/Evolution_Folder([ \t])/GNOME_Evolution_Folder$1/g; s/Evolution_FolderTypeList/GNOME_Evolution_FolderTypeList/g; s/Evolution_FolderBrowser/GNOME_Evolution_FolderBrowser/g; s/GNOME_Evolution_FolderBrowser_get_message_list/GNOME_Evolution_FolderBrowser_getMessageList/g; s/Evolution_LocalStorage/GNOME_Evolution_LocalStorage/g; s/GNOME_Evolution_LocalStorage_update_folder/GNOME_Evolution_LocalStorage_updateFolder/g; s/Evolution_ShellView/GNOME_Evolution_ShellView/g; s/GNOME_Evolution_ShellView_set_message/GNOME_Evolution_ShellView_setMessage/g; s/GNOME_Evolution_ShellView_unset_message/GNOME_Evolution_ShellView_unsetMessage/g; s/GNOME_Evolution_ShellView_change_current_view/GNOME_Evolution_ShellView_changeCurrentView/g; s/Evolution_StorageSetViewListener/GNOME_Evolution_StorageSetViewListener/g; s/GNOME_Evolution_StorageSetViewListener_folder_selected/GNOME_Evolution_StorageSetViewListener_notifyFolderSelected/g; s/GNOME_Evolution_StorageSetViewListener_storage_selected/GNOME_Evolution_StorageSetViewListener_notifyStorageSelected/g; s/Evolution_StorageSetView/GNOME_Evolution_StorageSetView/g; s/GNOME_Evolution_StorageSetView_add_listener/GNOME_Evolution_StorageSetView_addListener/g; s/GNOME_Evolution_StorageSetView_remove_listener/GNOME_Evolution_StorageSetView_removeListener/g; s/Evolution_Shell/GNOME_Evolution_Shell/g; s/GNOME_Evolution_Shell_get_component_for_type/GNOME_Evolution_Shell_getComponentByType/g; s/GNOME_Evolution_Shell_user_select_folder/GNOME_Evolution_Shell_selectUserFolder/g; s/GNOME_Evolution_Shell_get_local_storage/GNOME_Evolution_Shell_getLocalStorage/g; s/GNOME_Evolution_Shell_create_storage_set_view/GNOME_Evolution_Shell_createStorageSetView/g; s/Evolution_FolderSelectionListener/GNOME_Evolution_FolderSelectionListener/g; s/GNOME_Evolution_FolderSelectionListener_selected/GNOME_Evolution_FolderSelectionListener_notifySelected/g; s/GNOME_Evolution_FolderSelectionListener_cancel/GNOME_Evolution_FolderSelectionListener_notifyCanceled/g; s/Evolution_Storage/GNOME_Evolution_Storage/g; s/GNOME_Evolution_Storage_add_listener/GNOME_Evolution_Storage_addListener/g; s/GNOME_Evolution_Storage_remove_listener/GNOME_Evolution_Storage_removeListener/g; s/GNOME_Evolution_StorageListener_destroyed/GNOME_Evolution_StorageListener_notifyDestroyed/g; s/GNOME_Evolution_StorageListener_new_folder/GNOME_Evolution_StorageListener_notifyFolderCreated/g; s/GNOME_Evolution_StorageListener_update_folder/GNOME_Evolution_StorageListener_notifyFolderUpdated/g; s/GNOME_Evolution_StorageListener_removed_folder/GNOME_Evolution_StorageListener_notifyFolderRemoved/g; s/GNOME_Evolution_StorageRegistry_register_storage/GNOME_Evolution_StorageRegistry_addStorage/g; s/GNOME_Evolution_StorageRegistry_unregister_storage/GNOME_Evolution_StorageRegistry_removeStorageByName/g; s/Evolution_ShellComponent/GNOME_Evolution_ShellComponent/g; s/GNOME_Evolution_ShellComponent_set_owner/GNOME_Evolution_ShellComponent_setOwner/g; s/GNOME_Evolution_ShellComponent_unset_owner/GNOME_Evolution_ShellComponent_unsetOwner/g; s/GNOME_Evolution_ShellComponent_create_view/GNOME_Evolution_ShellComponent_createView/g; s/GNOME_Evolution_ShellComponent_async_create_folder/GNOME_Evolution_ShellComponent_addFolderAsync/g; s/GNOME_Evolution_ShellComponent_async_remove_folder/GNOME_Evolution_ShellComponent_removeFolderAsync/g; s/GNOME_Evolution_ShellComponent_populate_folder_context_menu/GNOME_Evolution_ShellComponent_populateFolderContextMenu/g; s/GNOME_Evolution_ShellComponentListener_report_result/GNOME_Evolution_ShellComponentListener_notifyResult/g; s/Evolution_Session/GNOME_Evolution_Session/g; s/GNOME_Evolution_Session_save_configuration/GNOME_Evolution_Session_saveConfiguration/g; s/GNOME_Evolution_Session_load_configuration/GNOME_Evolution_Session_loadConfiguration/g; s/Evolution_Calendar_Cal/GNOME_Evolution_Calendar_Cal/g; s/GNOME_Evolution_Calendar_Cal_get_n_objects/GNOME_Evolution_Calendar_Cal_countObjects/g; s/GNOME_Evolution_Calendar_Cal_get_object/GNOME_Evolution_Calendar_Cal_getObject/g; s/GNOME_Evolution_Calendar_Cal_get_uids/GNOME_Evolution_Calendar_Cal_getUIds/g; s/GNOME_Evolution_Calendar_Cal_get_changed_uids/GNOME_Evolution_Calendar_Cal_getChangedUIds/g; s/GNOME_Evolution_Calendar_Cal_get_objects_in_range/GNOME_Evolution_Calendar_Cal_getObjectsInRange/g; s/GNOME_Evolution_Calendar_Cal_get_alarms_in_range/GNOME_Evolution_Calendar_Cal_getAlarmsInRange/g; s/GNOME_Evolution_Calendar_Cal_get_alarms_for_object/GNOME_Evolution_Calendar_Cal_getAlarmsForObject/g; s/GNOME_Evolution_Calendar_Cal_update_object/GNOME_Evolution_Calendar_Cal_updateObject/g; s/GNOME_Evolution_Calendar_Cal_remove_object/GNOME_Evolution_Calendar_Cal_removeObject/g; s/Evolution_Calendar_Listener/GNOME_Evolution_Calendar_Listener/g; s/GNOME_Evolution_Calendar_Listener_cal_loaded/GNOME_Evolution_Calendar_Listener_notifyCalLoaded/g; s/GNOME_Evolution_Calendar_Listener_obj_updated/GNOME_Evolution_Calendar_Listener_notifyObjUpdated/g; s/GNOME_Evolution_Calendar_Listener_obj_removed/GNOME_Evolution_Calendar_Listener_notifyObjRemoved/g; s/Evolution_Calendar_CalFactory/GNOME_Evolution_Calendar_CalFactory/g; s/GNOME_Evolution_Calendar_CalFactory_load/GNOME_Evolution_Calendar_CalFactory_load/g; s/GNOME_Evolution_Calendar_CalFactory_create/GNOME_Evolution_Calendar_CalFactory_create/g; s/Evolution_Composer/GNOME_Evolution_Composer/g; s/GNOME_Evolution_Composer_set_headers/GNOME_Evolution_Composer_setHeaders/g; s/GNOME_Evolution_Composer_set_body_text/GNOME_Evolution_Composer_setBodyText/g; s/GNOME_Evolution_Composer_attach_MIME/GNOME_Evolution_Composer_attachMIME/g; s/GNOME_Evolution_Composer_attach_data/GNOME_Evolution_Composer_attachData/g; s/GNOME_Evolution_Composer_show/GNOME_Evolution_Composer_show/g; s/Evolution_Addressbook_SelectNames/GNOME_Evolution_Addressbook_SelectNames/g; s/GNOME_Evolution_Addressbook_SelectNames_add_section/GNOME_Evolution_Addressbook_SelectNames_addSection/g; s/GNOME_Evolution_Addressbook_SelectNames_get_entry_for_section/GNOME_Evolution_Addressbook_SelectNames_getEntryBySection/g; s/GNOME_Evolution_Addressbook_SelectNames_activate_dialog/GNOME_Evolution_Addressbook_SelectNames_activateDialog/g; s/Evolution_CardCursor/GNOME_Evolution_Addressbook_CardCursor/g; s/GNOME_Evolution_Addressbook_CardCursor_get_length/GNOME_Evolution_Addressbook_CardCursor_getLength/g; s/GNOME_Evolution_Addressbook_CardCursor_get_nth/GNOME_Evolution_Addressbook_CardCursor_getNth/g; s/Evolution_BookViewListener/GNOME_Evolution_Addressbook_BookViewListener/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_added/GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_removed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_changed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_sequence_complete/GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_status_message/GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage/g; s/Evolution_BookView/GNOME_Evolution_Addressbook_BookView/g; s/Evolution_Book/GNOME_Evolution_Addressbook_Book/g; s/GNOME_Evolution_Addressbook_Book_get_vcard/GNOME_Evolution_Addressbook_Book_getVCard/g; s/GNOME_Evolution_Addressbook_Book_can_write/GNOME_Evolution_Addressbook_Book_isWriteable/g; s/GNOME_Evolution_Addressbook_Book_can_write_card/GNOME_Evolution_Addressbook_Book_isCardWriteable/g; s/GNOME_Evolution_Addressbook_Book_create_card/GNOME_Evolution_Addressbook_Book_addCard/g; s/GNOME_Evolution_Addressbook_Book_remove_card/GNOME_Evolution_Addressbook_Book_removeCard/g; s/GNOME_Evolution_Addressbook_Book_modify_card/GNOME_Evolution_Addressbook_Book_modifyCard/g; s/GNOME_Evolution_Addressbook_Book_get_cursor/GNOME_Evolution_Addressbook_Book_getCursor/g; s/GNOME_Evolution_Addressbook_Book_get_book_view/GNOME_Evolution_Addressbook_Book_getBookView/g; s/GNOME_Evolution_Addressbook_Book_get_changes/GNOME_Evolution_Addressbook_Book_getChanges/g; s/GNOME_Evolution_Addressbook_Book_check_connection/GNOME_Evolution_Addressbook_Book_checkConnection/g; s/GNOME_Evolution_Addressbook_Book_get_static_capabilities/GNOME_Evolution_Addressbook_Book_getStaticCapabilities/g; s/GNOME_Evolution_Addressbook_Book_get_name/GNOME_Evolution_Addressbook_Book_getName/g; s/Evolution_BookListener/GNOME_Evolution_Addressbook_BookListener/g; s/GNOME_Evolution_Addressbook_BookListener_respond_create_card/GNOME_Evolution_Addressbook_BookListener_notifyCardCreated/g; s/GNOME_Evolution_Addressbook_BookListener_respond_remove_card/GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved/g; s/GNOME_Evolution_Addressbook_BookListener_respond_modify_card/GNOME_Evolution_Addressbook_BookListener_notifyCardModified/g; s/GNOME_Evolution_Addressbook_BookListener_report_open_book_progress/GNOME_Evolution_Addressbook_BookListener_notifyOpenBookProgress/g; s/GNOME_Evolution_Addressbook_BookListener_respond_open_book/GNOME_Evolution_Addressbook_BookListener_notifyBookOpened/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_cursor/GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_view/GNOME_Evolution_Addressbook_BookListener_notifyViewRequested/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_changes/GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested/g; s/GNOME_Evolution_Addressbook_BookListener_report_connection_status/GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus/g; s/Evolution_BookFactory/GNOME_Evolution_Addressbook_BookFactory/g; s/GNOME_Evolution_Addressbook_BookFactory_open_book/GNOME_Evolution_Addressbook_BookFactory_openBook/g; s/Evolution_SummaryComponent/GNOME_Evolution_Summary_Component/g; s/GNOME_Evolution_Summary_SummaryComponent_set_owner/GNOME_Evolution_Summary_Component_setOwner/g; s/GNOME_Evolution_Summary_SummaryComponent_unset_owner/GNOME_Evolution_Summary_Component_unsetOwner/g; s/GNOME_Evolution_Summary_SummaryComponent_create_view/GNOME_Evolution_Summary_Component_createView/g; s/GNOME_Evolution_Summary_SummaryComponent_destroy_view/GNOME_Evolution_Summary_Component_destroyView/g; s/Evolution_Summary([ \t])/GNOME_Evolution_Summary_ViewFrame$1/g; s/Evolution_Summary_set_title/GNOME_Evolution_Summary_ViewFrame_setTitle/g; s/Evolution_Summary_set_icon/GNOME_Evolution_Summary_ViewFrame_setIcon/g; s/Evolution_Summary_update_component/GNOME_Evolution_Summary_ViewFrame_updateComponent/g; s/GNOME_GNOME/GNOME/g; s/GNOME_GNOME/GNOME/g; s/GNOME_GNOME/GNOME/g; svn path=/trunk/; revision=6535
* SHUT THE FUCK UP, DONNIE. DUDE, THEY PEED YOUR FUCKING RUG.Federico Mena Quintero2000-10-271-1/+0
| | | | svn path=/trunk/; revision=6220
* unsigned chars to isalphaMichael Meeks2000-10-271-1/+1
| | | | | | | | | | 2000-10-26 Michael Meeks <michael@helixcode.com> * pcs/cal-factory.c (str_tolower): unsigned chars to isalpha * cal-util/calobj.c (weekdaylist, weekdaynum): ditto. svn path=/trunk/; revision=6217
* AM_GNOME_GETTEXT doesn't use $(datadir)/locale as the locale dir. (ItDan Winship2000-10-241-1/+1
| | | | | | | uses either $(prefix)/share/locale or $(prefix)/lib/locale.) Cope with this. svn path=/trunk/; revision=6141
* Pulling up stuff from the 0.6 branchJP Rosevear2000-10-212-32/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-20 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_destroy): New destroy handler to properly stop the timer, sync the log and unref the URI. (cal_backend_last_client_gone): Just emit the signal, clean up work is done in cal_backend_destroy now. * pcs/cal-backend-file.c (cal_backend_file_load): Unref the uri we are replacing NOT the new uri. 2000-10-20 JP Rosevear <jpr@helixcode.com> * conduits/todo/Makefile.am: Fix build * conduits/calendar/Makefile.am: Fix build 2000-10-20 JP Rosevear <jpr@helixcode.com> * conduits/calendar/calendar-conduit.c (delete_archive_record): Don't throw an error * conduits/todo/todo-conduit.c (delete_archive_record): ditto 2000-10-20 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit-control-applet.c: Add defines * conduits/todo/todo-conduit-config.h: put #ifdefs around functions can't make this a public interface in the usual way as then the symbols would be exported * conduits/todo/todo-conduit.c: Kill warnings. clahey will be happy! Add some defines to include only the necessary config functions. (conduit_get_gpilot_conduit): Hook up archive signals * conduits/calendar/calendar-conduit.c: Same as above * conduits/calendar/calendar-conduit-control-applet.c: ditto * conduits/calendar/calendar-conduit-config.h: ditto svn path=/trunk/; revision=6086
* Remove pilot cruft. All pilot stuff is in the conduits now and uses theJP Rosevear2000-10-164-164/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-16 JP Rosevear <jpr@helixcode.com> * cal-client/cal-client.h: Remove pilot cruft. All pilot stuff is in the conduits now and uses the logging facility. * pcs/cal-backend-file.c: ditto * pcs/cal-backend.h: ditto * pcs/cal-backend.c: ditto * pcs/cal.c: ditto * pcs/cal.h: ditto * idl/evolution-calendar.idl: ditto * cal-util/cal-component.h: ditto * cal-util/cal-component.c: ditto * cal-client/cal-client.c: ditto * conduits/calendar/calendar-conduit.c (local_record_from_comp): Take a stab at storing recurrence stuff on the pilot properly * pcs/cal-backend.c (cal_backend_update_object): Don't log the event until after the update in case its a new item svn path=/trunk/; revision=5940
* Take CalObjType as a param because its impossible to determine after aJP Rosevear2000-10-121-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-11 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_log_entry): Take CalObjType as a param because its impossible to determine after a delete. (cal_backend_remove_object): Calculate CalObjType and pass it to cal_backend_log_entry (cal_backend_update_object): ditto * conduits/todo/todo-conduit.c (local_record_from_comp): Kill unused variables. (add_archive_record): Don't kill the sync if this happens (update_record): Kill old function (replace_record): New function to handle replace_record signal (conduit_get_gpilot_conduit): Listen for replace record signal (add_record): Always add a new record, never replace (replace_record): Always replace an existing record * conduits/calendar/calendar-conduit.c: Same as above 2000-10-11 JP Rosevear <jpr@helixcode.com> * configure.in: Fix bonobo error message svn path=/trunk/; revision=5866
* The element is "pilot_id" not "pilotid". Update both maps (compute_pid):JP Rosevear2000-10-111-1/+6
| | | | | | | | | | | | | | | | | | | 2000-10-11 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit.c (map_sax_start_element): The element is "pilot_id" not "pilotid". Update both maps (compute_pid): Utility function to set a local records pid (local_record_from_comp): Compute the pid and status here, no longer use the old cal_component pilot interfaces (free_match): Its a *local not a **local * conduits/calendar/calendar-conduit.c: same as above * conduits/todo/todo-conduit.h: Have both a uid and pid map * conduits/todo/calendar-conduit.h: same as above svn path=/trunk/; revision=5836
* Add since field to contextJP Rosevear2000-09-211-1/+1
| | | | | | | | | | | | | | | | | 2000-09-20 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit.h: Add since field to context * conduits/todo/todo-conduit.c (map_set_node_timet): New utility function (map_sax_start_element): Look for the map timestamp as well (map_write): Write the map timestamp (pre_sync): Use the map time stamp when looking for changed entries * pcs/cal-backend.c (cal_backend_log_sax_start_element): Make sure we are in a valid timestamp svn path=/trunk/; revision=5527
* Make the log file name relevant to the actual calendar file, rather thanJP Rosevear2000-09-211-4/+4
| | | | | | | | | | 2000-09-20 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_log_name): Make the log file name relevant to the actual calendar file, rather than just the directory. svn path=/trunk/; revision=5526
* OopsJP Rosevear2000-09-211-1/+1
| | | | | | | | 2000-09-20 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_get_log_entries): Oops svn path=/trunk/; revision=5525
* Use a local sax handler.JP Rosevear2000-09-211-28/+5
| | | | | | | | | | | | 2000-09-20 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_get_log_entries): Use a local sax handler. * conduits/todo/todo-conduit.c (pre_sync): Use xmlSAXParseFile (map_sax_parse): Delete svn path=/trunk/; revision=5524
* Properly assign the CalObjChange type. (cal_backend_log_sax_parse): DeleteJP Rosevear2000-09-211-57/+47
| | | | | | | | | | | 2000-09-20 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_log_sax_start_element): Properly assign the CalObjChange type. (cal_backend_log_sax_parse): Delete (cal_backend_get_log_entries): Use xmlSAXUserParseFile svn path=/trunk/; revision=5523
* New utility function (cal_backend_load): use above (cal_backend_create):JP Rosevear2000-09-202-52/+70
| | | | | | | | | | | | | | | | | | | | | | | 2000-09-19 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend.c (cal_backend_set_uri): New utility function (cal_backend_load): use above (cal_backend_create): use above (cal_backend_log_name): Take a uri instead of a backend param * pcs/cal-backend-file.c: Get rid of useless hash functions (cal_backend_file_load): Check to make sure path exists and is local (cal_backend_file_load): Unref the current uri if there is one (cal_backend_file_create): ditto * pcs/cal-backend.c (cal_backend_last_client_gone): Sync before shooting ourselves in the foot * pcs/cal-backend-file.c (save): Fully implement backing up the calendar before writing out the new entry. svn path=/trunk/; revision=5516
* Add some other cases where a slow sync is in order (pre_sync): Pre loadJP Rosevear2000-09-206-1487/+471
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-19 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit.c (check_for_slow_setting): Add some other cases where a slow sync is in order (pre_sync): Pre load the uids, the map and the add/mod/del lists (match_record): Use the map hash to match records (iterate): Iterate using the pre-loaded uid list (iterate_specific): Iterate using the add/mod/del lists (purge): Delete all entries in the del list (set_status): Set status by adding to an appropriate list (set_pilot_id): Set pilot_id by updating map hash * conduits/todo/todo-conduit.h: Add lists for added, modified and deleted objects * conduits/todo/todo-conduit.c (map_name): Get the pilot_id->uid map file name (map_sax_start_element): SAX handler to extract a pilot_id->uid mapping (map_sax_parse): Parse the given file and build a pilot_id->uid hash (map_write_foreach): Write out individual mapping elements (map_write): Write out the pilot_id->uid mapping (start_calendar_server_cb): Rename from gnome_calendar_load_cb * conduits/todo/todo-conduit-config.h: Rename pilotID to pilot_id * conduits/todo/e-todo.conduit.in: A little renaming * conduits/todo/Makefile.am: Fix build slightly * pcs/cal.c (build_change_seq): Build a corba sequence out of a list of CalObjChanges (Cal_get_objects_in_range): Implement new corba function * pcs/cal-backend.c (cal_backend_init): Intiliaze to NULL (cal_backend_load): Track the uri so we can write the log file to the same place (cal_backend_log_name): Figure out the log filename/path based on the calendar uri (cal_backend_set_node_timet): Set an xml node property value from a time_t (cal_backend_log_entry): Adds a log entry to list waiting to be written out (cal_backend_log_sync): Syncs the log entries to disk (cal_backend_log_sax_start_element): SAX callback for reading in log entries (cal_backend_log_sax_end_element): ditto (cal_backend_log_sax_parse): Main SAX parser call to parse the log file looking for particular log entries and creating a CalObjChange hash with the last change for each object (cal_backend_get_log_entries): Returns a hash of objects of a given type changed since the given time (cal_backend_update_object): Add appropriate log entries (cal_backend_remove_object): ditto (cal_backend_get_changed_uids): Implement new idl interface call (cal_backend_foreach_changed): Convert CalObjChange hash into a list * pcs/cal-backend-imc.[hc]: Remove crufty files * pcs/cal-backend-file.c (cal_backend_file_get_type_by_uid): New function that returns the CalObjType for a uid. * cal-client/cal-client.h: Update prototypes. * cal-client/cal-client.c (build_change_list): Build a list of CalObjChange items from a corba sequence. (cal_client_get_changed_uids): New accessor method for the similarly named addition to the idl file. * cal-util/cal-util.h: Update prototypes and add CalObjChangeType enum. * cal-util/cal-util.c (cal_obj_change_list_free): New utility method to free a list of CalObjChange objects. * idl/evolution-calendar.idl: Add get_changed_uids method and associated types. svn path=/trunk/; revision=5512
* Only remove the pilot item from the hash if it exists in the first place.JP Rosevear2000-09-131-6/+5
| | | | | | | | | 2000-09-13 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend-file.c (remove_component): Only remove the pilot item from the hash if it exists in the first place. svn path=/trunk/; revision=5399
* Use g_int_* for now (cal_backend_file_create): dittoJP Rosevear2000-09-131-8/+13
| | | | | | | | | | 2000-09-12 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend-file.c (cal_backend_file_load): Use g_int_* for now (cal_backend_file_create): ditto svn path=/trunk/; revision=5385
* Remove bogus #include.Ettore Perazzoli2000-09-131-1/+1
| | | | svn path=/trunk/; revision=5379
* Use cal component pilot stuff properly (find_record_in_repository): RemoveJP Rosevear2000-09-101-9/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-10 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit.c (local_record_from_icalobject): Use cal component pilot stuff properly (find_record_in_repository): Remove cruft (ical_from_remote_record): Remove cruft (update_record): Set the vtype immediately after creation. Remove cruft * conduits/todo/todo-conduit.h: Remove iCalObject stuff * conduits/todo/todo-conduit-config.h: Move all the config stuff here, I need to kill the warnings at some point * conduits/todo/todo-conduit-control-applet.c (doRevertSettings): Set all the state variables correctly on a revert (doSaveSettings): Update original state (doHelp): Rename from about_cb (main): Destroy configurations when done * conduits/todo/Makefile.am: Tidy * pcs/cal-backend-file.c (cbf_pilot_hash): Function for hashing pilot ids (cbf_pilot_equal): For hash table of pilot ids (cal_backend_file_destroy): Destroy pilot id hash (add_component): Insert the uid into the pilot hash (remove_component): Remove the uid from the pilot hash (cal_backend_file_load): Create the pilot hash (cal_backend_file_create): ditto (cal_backend_file_get_uid_by_pilot_id): Implement using the pilot hash (cal_backend_file_update_pilot_id): ditto * cal-util/cal-component.h: Update prototypes * cal-util/cal-component.c (cal_component_get_pilot_id): Implement using ical X properties (cal_component_set_pilot_id): ditto (cal_component_get_pilot_status): ditto (cal_component_set_pilot_status): ditto (cal_component_free_pilot_id): Free a pilot id (cal_component_free_pilot_status): Free a pilot status svn path=/trunk/; revision=5298
* New function. We need this from code that dynamically updates from aFederico Mena Quintero2000-08-295-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-28 Federico Mena Quintero <federico@helixcode.com> * cal-client/cal-client.c (cal_client_is_loaded): New function. We need this from code that dynamically updates from a client and could not have connected to the "cal_loaded" signal right after the client was created. * gui/calendar-model.c (load_objects): Do not try to load the objects if the client has not been loaded yet. (cal_loaded_cb): Check the status value. * gui/calendar-model.h (CalendarModel): Declare the private structure here so that gdb will give me love. * pcs/cal-factory.h (CalFactory): Likewise. * pcs/cal.h (Cal): Likewise. * cal-client/cal-listener.h (CalListener): Likewise. * cal-client/cal-client.h (CalClient): Likewise. * pcs/cal-backend.h (CalBackend): This no longer has a private structure, so remove it. * cal-util/Makefile.am (libcal_util_la_SOURCES): Removed the vCalendar and old iCalendar cruft. (libcal_utilinclude_HEADERS): Likewise. Removed the obsolete iCalendar test program. svn path=/trunk/; revision=5091
* Remove the icalcomponent from the toplevel calendar here.Federico Mena Quintero2000-08-291-21/+28
| | | | | | | | | | | | | | 2000-08-28 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend-file.c (remove_component): Remove the icalcomponent from the toplevel calendar here. (cal_backend_file_update_object): Do not remove it here. (cal_backend_file_remove_object): Do not remove it here. (add_component): Add the icalcomponent to the toplevel calendar if asked to. (cal_backend_file_update_object): Do not add it here. svn path=/trunk/; revision=5089
* Write out the calendar object (cal_backend_file_update_object): Remove/addJP Rosevear2000-08-281-9/+51
| | | | | | | | | | | | 2000-08-27 JP Rosevear <jpr@helixcode.com> * pcs/cal-backend-file.c (save): Write out the calendar object (cal_backend_file_update_object): Remove/add the icalcomponent from our master icalcomponent (the calendar) (cal_backend_file_remove_object): Remove the icalcomponent from our master icalcomponent svn path=/trunk/; revision=5069
* Fixed some warnings.Christopher James Lahey2000-08-091-2/+2
| | | | | | | | | 2000-08-09 Christopher James Lahey <clahey@helixcode.com> * cal-client/cal-client.c, gui/e-calendar-table.c, pcs/cal.c: Fixed some warnings. svn path=/trunk/; revision=4637
* Added a get_objects_in_range() method. Takes in a time range and the typeFederico Mena Quintero2000-08-094-133/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-08 Federico Mena Quintero <federico@helixcode.com> * idl/evolution-calendar.idl (Cal): Added a get_objects_in_range() method. Takes in a time range and the type of component we are interested in; returns a list of UIDs. The idea is that ocurrences get computed in the client; we can have multiple recurrences in iCalendar and we cannot identify them trivially across the wire. (Cal): Removed the get_events_in_range() method. * pcs/cal-backend.c (cal_backend_free_uid_list): New function. (cal_backend_get_objects_in_range): New function. (cal_backend_get_events_in_range): Removed. * pcs/cal-backend-file.c (cal_backend_file_get_objects_in_range): Implemented new method. (cal_backend_file_get_events_in_range): Removed. * pcs/cal.c (Cal_get_events_in_range): Removed. (uncorba_obj_type): New function. (Cal_get_uids): Use uncorba_obj_type(). (Cal_get_n_objects): Likewise. (Cal_get_objects_in_range): Implemented new method. * cal-client/cal-client.c (cal_client_get_events_in_range): Removed. (cal_client_get_objects_in_range): Implemented. (corba_obj_type): New function. (cal_client_get_n_objects): Use corba_obj_type(). (cal_client_get_uids): Likewise. svn path=/trunk/; revision=4613
* Big sync. Disable calendar compilation for a few hours - FedericoFederico Mena Quintero2000-08-083-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-07 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_get_as_string): Doh, libical owns the string's memory, so do not free it. * cal-client/client-test.c (create_client): Connect to the destroy signal of the client here. * cal-client/test.ics: New test file, modified from Eric Busboom's test file from RFC 2445. 2000-08-05 Federico Mena Quintero <federico@helixcode.com> * cal-client/client-test.c (dump_component): This was gone for some reason. (main): Load a new test file. 2000-08-04 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_commit_sequence): New function to commit changes to the SEQUENCE property. (cal_component_get_as_string): Ensure that the sequence has been committed. * cal-client/cal-client.c (cal_client_get_object): Use CalComponent instead of the old iCalObject. (cal_client_update_object): Use iCalObject. Commit the SEQUENCE property before stringifying the object and piping it over to the Wombat. svn path=/trunk/; revision=4585
* Fixed a g_return_if_fail that had two parameters and thus wouldn't build.Joe Shaw2000-08-031-1/+1
| | | | | | | | | | 2000-08-02 Joe Shaw <joe@helixcode.com> * pcs/cal-backend-file.c (cal_backend_file_update_pilot_id): Fixed a g_return_if_fail that had two parameters and thus wouldn't build. svn path=/trunk/; revision=4502
* call save (cbimc) after setting the pilot id and status.Seth Alves2000-08-031-0/+7
| | | | | | | * pcs/cal-backend-imc.c (cal_backend_imc_update_pilot_id): call save (cbimc) after setting the pilot id and status. svn path=/trunk/; revision=4500
* Dum dum dum - FedericoFederico Mena Quintero2000-08-031-0/+36
| | | | svn path=/trunk/; revision=4494
* New files for the iCalendar file backend.Federico Mena Quintero2000-08-034-1/+1070
| | | | | | | | | | | | | | | 2000-08-02 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend-file.[ch]: New files for the iCalendar file backend. * pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-file.[ch]. * cal-util/cal-component.c (cal_component_set_icalcomponent): Return an operation success code for if we are passed a component of a type we don't support. svn path=/trunk/; revision=4479
* Ahem, these files will be back in a second - FedericoFederico Mena Quintero2000-08-031-2/+0
| | | | svn path=/trunk/; revision=4476
* Use CalComponent and the new property types instead of the old iCalObjectFederico Mena Quintero2000-08-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-31 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-recur.c (*): Use CalComponent and the new property types instead of the old iCalObject stuff. (cal_recur_generate_instances): Renamed from cal_object_generate_events(). Ensure that the component has the DTSTART property. (generate_instances_for_year): Renamed from cal_object_generate_events_for_year(). (cal_obj_expand_recurrence): Made static. (cal_recur_from_icalrecurrencetype): New function. We should really convert this whole file to use struct icalrecurrencetype instead. (cal_recur_free): New function. * cal-util/cal-recur.h (CalRecurType): Renamed from CalObjRecurType. (CalRecurrence): Renamed from CalObjRecurrence. * cal-util/timeutil.c (time_from_icaltimetype): New function. * cal-util/Makefile.am: Commented out the test-recur program. svn path=/trunk/; revision=4464
* New function. (scan_property): Handle the RDATE property. (scan_period):Federico Mena Quintero2000-07-263-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-25 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_free_period_list): New function. (scan_property): Handle the RDATE property. (scan_period): Likewise. (free_icalcomponent): Likewise. (get_period_list): Likewise. (set_period_list): Likewise. (cal_component_get_rdate_list): Likewise. (cal_component_set_rdate_list): Likewise. (scan_text): Simplify a bit since we only handle the ALTREP parameter; there is no need to iterate over all parameters. (scan_datetime): Simplify; just handle the TZID parameter. (scan_summary): Simplify; just handle the ALTREP parameter. (cal_component_get_as_string): New function. * idl/evolution-calendar.idl (CalObjType): Removed the TYPE_OTHER; now we only expose the types of objects we know about. * cal-util/cal-util.h (CalObjType): Likewise. * cal-client/cal-client.c (cal_client_get_n_objects): Likewise. (cal_client_get_uids): Likewise. * conduits/calendar/calendar-conduit.c (get_calendar_objects): Likewise. (check_for_slow_setting): Likewise. * pcs/cal-backend-imc.c (count_objects): Likewise. (build_uids_list): Likewise. * pcs/cal.c (Cal_get_uids): Likewise. (Cal_get_n_objects): Likewise. svn path=/trunk/; revision=4336
* Removed unneeded check for the URI. (load_fn): Be more paranoid about theFederico Mena Quintero2000-07-121-14/+40
| | | | | | | | | | | | | 2000-07-11 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-factory.c (queue_load_create_job): Removed unneeded check for the URI. (load_fn): Be more paranoid about the URI and notify the listener if we got passed a bad URI. Simplify the termination code a bit. (create_fn): Likewise. (queue_load_create_job): Be more paranoid about the URI. svn path=/trunk/; revision=4089
* As a quasi-hack, do a gdk_flush() when the shell view is unrealized soFederico Mena Quintero2000-07-102-0/+4
| | | | | | | | | | | | | | 2000-07-10 Federico Mena Quintero <federico@helixcode.com> * e-shell-view.c (unrealize): As a quasi-hack, do a gdk_flush() when the shell view is unrealized so that the DeleteEvent gets sent to the remote plugs as soon as possible before we start making other CORBA calls. The problem is that our CORBA pipe is synchronous while our X pipe is asynch. We have to ensure ordering for certain operations. This is NOT the correct and complete fix, which should go in Bonobo. svn path=/trunk/; revision=4030
* server code to service these:Seth Alves2000-06-294-0/+155
| | | | | | | | | | | | | | | | | | | | * pcs/cal.c (Cal_get_uid_by_pilot_id): (Cal_update_pilot_id): * pcs/cal-backend-imc.c (cal_backend_imc_update_pilot_id): (cal_backend_imc_get_uid_by_pilot_id): * pcs/cal-backend.c (cal_backend_get_uid_by_pilot_id): (cal_backend_update_pilot_id): server code to service these: * gui/calendar-pilot-sync.c: updated to make use of cal-client. also uses dirty bits on both sides to aid in syncing. * cal-client/cal-client.c (cal_client_get_uid_by_pilot_id): new function -- ask the cal server to return uid given an object's pilot id. (cal_client_update_pilot_id): new function -- inform the cal server of an objects pilot id and pilot dirty-flag. svn path=/trunk/; revision=3789
* use BONOBO_VFS_GNOME_CFLAGS.Michael Meeks2000-06-281-1/+1
| | | | | | | | 2000-06-27 Michael Meeks <michael@helixcode.com> * pcs/Makefile.am (INCLUDES): use BONOBO_VFS_GNOME_CFLAGS. svn path=/trunk/; revision=3760
* Doh, sync - FedericoFederico Mena Quintero2000-06-161-0/+2
| | | | svn path=/trunk/; revision=3593
* added icalendar-test.Damon Chaplin2000-06-161-0/+1
| | | | | | | | 2000-06-16 Damon Chaplin <damon@helixcode.com> * pcs/.cvsignore: added icalendar-test. svn path=/trunk/; revision=3589
* Added a get_n_objects() method.Federico Mena Quintero2000-06-094-0/+107
| | | | | | | | | | | | | | | | | | | | | | 2000-06-09 Federico Mena Quintero <federico@helixcode.com> * idl/evolution-calendar.idl (Cal): Added a get_n_objects() method. * pcs/cal-backend.c (cal_backend_get_n_objects): New function. * pcs/cal-backend-imc.c (cal_backend_imc_get_n_objects): Implemented. * pcs/cal.c (Cal_get_n_objects): Implemented. * cal-client/cal-client.c (cal_client_get_uids): Free the ev. (cal_client_get_n_objects): Implemented. * cal-util/calobj.h (iCalObjectField): New enumeration to identify the fields in an iCalObject. svn path=/trunk/; revision=3486
* update some .cvsignoresSeth Alves2000-06-081-1/+0
| | | | svn path=/trunk/; revision=3464
* Moved these files to calendar/cal-util - FedericoFederico Mena Quintero2000-06-075-1362/+0
| | | | svn path=/trunk/; revision=3457
* fixed a bunch of problems use libical instead of libversitSeth Alves2000-06-073-60/+49
| | | | | | | | | | | | | | | * cal-util/icalendar.c, icalendar-save.c: fixed a bunch of problems * cal-util/calobj.c (ical_object_find_in_string): use libical instead of libversit (ical_object_to_string): same (dump_icalobject): prints the contents of an icalobject for debugging * gui/Makefile.am (LINK_FLAGS): link libical.a instead of libical.la so we don't have to modify the build system of the released libical * cal-client/Makefile.am (client_test_LDADD): same * cal-util/Makefile.am (icalendar_test_LDADD): same svn path=/trunk/; revision=3446
* Removed from the public header; made static. Now everyone should useFederico Mena Quintero2000-06-071-2/+2
| | | | | | | | | | | | | 2000-06-06 Federico Mena Quintero <federico@helixcode.com> * cal-util/calobj.c (ical_object_destroy): Removed from the public header; made static. Now everyone should use refcounting. * pcs/cal-backend-imc.c (free_ical_object): Use ical_object_unref(). (remove_object): Likewise. svn path=/trunk/; revision=3439
* Fix more Makefile breakage.Ettore Perazzoli2000-05-131-0/+1
| | | | svn path=/trunk/; revision=3012
* New function to add today's alarms for a single object.Federico Mena Quintero2000-05-124-5/+124
| | | | | | | | | | | | | | | | | | | | | | | | 2000-05-11 Federico Mena Quintero <federico@helixcode.com> * gui/gnome-cal.c (add_alarms_for_object): New function to add today's alarms for a single object. (gnome_calendar_object_updated_cb): Update the object's alarms. * idl/evolution-calendar.idl (Cal): Added a get_alarms_for_object() method. * pcs/cal.c (Cal_get_alarms_for_object): Implemented method. * pcs/cal-backend.c (cal_backend_get_alarms_for_object): New function. * pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_for_object): Implemented. * cal-client/cal-client.c (cal_client_get_alarms_for_object): New function. svn path=/trunk/; revision=3003
* remove unused timezone variable to make this compile on BSD systems (whereDan Winship2000-05-121-1/+0
| | | | | | | | * pcs/icalendar-save.c (timet_to_icaltime): remove unused timezone variable to make this compile on BSD systems (where timezone is the name of a function) svn path=/trunk/; revision=2996
* Removed unused arguments. Load the initial alarms here. (load_alarms): NewFederico Mena Quintero2000-05-125-26/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-11 Federico Mena Quintero <federico@helixcode.com> * gui/gnome-cal.c (gnome_calendar_update_all): Removed unused arguments. Load the initial alarms here. (load_alarms): New function to load a day's worth of alarms. (gnome_calendar_class_init): Eeeek! This was taking in an incorrect argument type. (gnome_calendar_init): Now the calendar keeps a hash table of UIDs->queued alarms. Create the hash table here. (gnome_calendar_destroy): Destroy the alarms hash table. (gnome_calendar_object_updated_cb): Remove the alarms for the object and regenerate them. (gnome_calendar_object_removed_cb): Remove the alarms for the object. * gui/alarm.c (alarm_add): Do not take in a CalendarAlarm, just the trigger time, the callback and the closure data. Return an opaque identifier for the alarm so that it can be removed by the client code if needed. Use the queue_alarm() helper function. (queue_alarm): Helper function to actually queue the alarm and set up the itimer. Deal with a nonzero return value from setitimer(). (alarm_remove): New function to remove an alarm based on its ID. (pop_alarm): New helper function; pops the first alarm of the queue and resets the timer as appropriate. (alarm_ready): Simplified a lot by using pop_alarm(). * idl/evolution-calendar.idl (Cal): Added get_alarms_in_range(). * pcs/cal.c (build_instance_seq): New function to build a CORBA sequence from the internal list of instances. (Cal_get_events_in_range): Use build_instance_seq(). (Cal_get_alarms_in_range): Implemented new method. * pcs/cal-backend.c (cal_backend_get_alarms_in_range): New function with the get_alarms_in_range() engine. * pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_in_range): Implemented the get_alarms_in_range() method. * cal-client/cal-client.c (cal_client_get_alarms_in_range): New client-side function for getting the alarms. (build_instance_list): New helper function to build the CalObjInstance list from the CORBA sequence. (cal_client_get_events_in_range): Use build_instance_list(). * gui/calendar-commands.h: #include <cal-util/calobj.h>. #include "gnome-cal.h". * gui/e-week-view.c: #include "calendar-commands.h" instead of main.h; the latter is an obsolete file and will be killed. * gui/evolution-calendar-control.c (main): Call init_bonobo() before anything else. We need the GTK+ object system initialized. * gui/Makefile.am (evolution_calendar_SOURCES): Do not use main.h. * cal-util/cal-util.c (cal_alarm_instance_list_free): New function. svn path=/trunk/; revision=2987
* Set the format when creating a new calendar.Christopher James Lahey2000-05-101-0/+21
| | | | | | | | 2000-05-09 Christopher James Lahey <clahey@helixcode.com> * pcs/cal-backend-imc.c: Set the format when creating a new calendar. svn path=/trunk/; revision=2961
* + * calendar/pcs/cal-backend.c (cal_backend_add_cal): Return nothingMatthew Loper2000-05-101-1/+1
| | | | | | | | | | + for a 'void' function. + * folder-browser-factory.c (control_activate): Remove "File->mail" + menuitem. + * e-shell-view-menu.c (command_run_bugbuddy): New function; allows + users to submit a bug. svn path=/trunk/; revision=2948
* Removed double free of method_string in uri->method_string.Christopher James Lahey2000-05-091-1/+3
| | | | | | | | | 2000-05-09 Christopher James Lahey <clahey@helixcode.com> * pcs/cal-factory.c: Removed double free of method_string in uri->method_string. svn path=/trunk/; revision=2942
* Fix compilation with builddir != srcdir. Boy I love this.Ettore Perazzoli2000-05-092-2/+2
| | | | svn path=/trunk/; revision=2927
* CalBackendClass now is just an interface for calendar backends; this is anFederico Mena Quintero2000-05-097-1068/+1443
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-08 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend.h (CalBackendClass): CalBackendClass now is just an interface for calendar backends; this is an abstract class. Put in the vtable for the backend methods. * pcs/cal-backend.c (cal_backend_new): Removed function, since CalBackend is not just an abstract class. Removed implementation-specific functions and made public functions call the virtual methods instead. * pcs/cal-backend-imc.[ch]: New files with the CalBackendIMC implementation; this implements a backend for iCalendar and vCalendar files. Moved the implementation-specific stuff from cal-backend.[ch] to here. * pcs/cal-backend-imc.c (CalendarFormat): Moved enumeration to here. Added a CAL_UNKNOWN value for when the backend is not loaded yet. (cal_backend_imc_init): Initialize priv->format as CAL_UNKNOWN. (save_to_vcal): Use the same VCProdIdProp value as in cal-util/calobj.c. Use "1.0" as the VCVersionProp as per the vCalendar spec. (ensure_uid): Return nothing, since the result value need not be used anymore. (add_object): Since we mark the calendar as dirty anyways, we do not need to check the result value of ensure_uid() anymore. (remove_object): Asssert that we know how to handle the object's type. We do this in add_object() anyways. * pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-imc.[ch]. * gui/gnome-cal.c: Replaced debugging printf()s with g_message() so that we can see the line number where they occur. * gui/gnome-cal.c (gnome_calendar_load_cb): Sort of handle the LOAD_METHOD_NOT_SUPPORTED result code, and added a default for the switch. * cal-client/cal-listener.h (CalListenerLoadStatus): Removed enumeration; it is stupid to translate all values for the CalClient when it is going to translate them again. (CalListenerClass::cal_loaded): This signal now passes the LoadStatus directly from the CORBA side. * cal-client/cal-listener.c (Listener_cal_loaded): Do not translate the status value. * cal-client/cal-client.h (CalClientLoadStatus): Added the CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED error code. * cal-client/cal-client.c (cal_loaded_cb): Translate the CORBA version of the LoadStatus result code. * pcs/cal-factory.c (CalFactoryPrivate): New methods field for the hash table from method strings to the GtkTypes for backend class types. (cal_factory_init): Create the priv->methods hash table. (cal_factory_destroy): Free the priv->methods hash table. (cal_factory_register_method): New function to register a backend class for a particular URI method. (launch_backend_for_uri): New function to launch a backend for a particular URI's method. (load_backend): Use launch_backend_for_uri(). Move the error notification code from load_fn() to here. (create_backend): Use launch_backend_for_uri(). Move the error notification code form create_fn() to here; it is #ifdefed out since currently cal_backend_create() does not have any error reporting capabilities. * idl/evolution-calendar.idl (Listener::LoadStatus): Added a PROTOCOL_NOT_SUPPORTED error code. * pcs/cal-factory.c (cal_factory_load cal_factory_create): Removed functions, since they were supposed to be internal only. (CalFactory_load): Call queue_load_create_job() directly. (CalFactory_create): Likewise. svn path=/trunk/; revision=2921
* ignore the .pure directoryChris Toshok2000-05-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | * addressbook/backend/ebook/.cvsignore, addressbook/contact-editor/.cvsignore, addressbook/gui/component/.cvsignore, addressbook/gui/minicard/.cvsignore, addressbook/printing/.cvsignore, calendar/cal-client/.cvsignore, calendar/gui/.cvsignore, calendar/pcs/.cvsignore, filter/.cvsignore, mail/.cvsignore, shell/.cvsignore, tests/.cvsignore, widgets/e-table/.cvsignore, widgets/e-text/.cvsignore, widgets/meeting-time-sel/.cvsignore, widgets/shortcut-bar/.cvsignore, wombat/.cvsignore: ignore the .pure directory svn path=/trunk/; revision=2812
* for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.Damon Chaplin2000-05-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-04 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c (e_day_view_foreach_event_with_uid): for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV. * gui/calendar-commands.c: when we switch views, grab the focus. * gui/gnome-cal.c (gnome_calendar_tag_calendar): (gnome_calendar_mark_gtk_calendar_day): changed this so it uses cal_client_get_events_in_range(), and doesn't load any objects. Also just return if it isn't visible. * gui/calendar-commands.c (calendar_get_events_in_range): call g_list_sort() to sort the list rather than g_list_insert_sorted() for each element. It is much more efficient. Also changed it so that the co->ev_start/end fields are copied from the CalObjInstance rather than the parameters to the function (that is right, isn't it?) Also freed the list elements, and finally the list. (calendar_iterate): changed this to use cal_client_get_events_in_range since that is more efficient than getting all the uids and then loading and parsing all the events. * pcs/cal-backend.c (save): output the '... saved' message before freeing the string! * gui/gncal-todo.c (gncal_todo_update): * gui/e-week-view.c (e_week_view_update_event): * gui/e-day-view.c (e_day_view_update_event): * gui/calendar-commands.c (calendar_get_events_in_range): (calendar_iterate): free obj_string after it is parsed. svn path=/trunk/; revision=2802
* Stylistic fix - FedericoFederico Mena Quintero2000-05-011-3/+1
| | | | svn path=/trunk/; revision=2707
* set attendee and contact address correctly.Seth Alves2000-05-012-17/+31
| | | | | | | | | | | | * pcs/icalendar-save.c (icalcomponent_create_from_ical_object): set attendee and contact address correctly. * pcs/cal-backend.c (icalendar_calendar_load): init priv->object_hash when loading. (cal_get_type_from_filename): if file extension is .ical, consider the file an ical file. svn path=/trunk/; revision=2702
* Made Evolution OAF-compatible.Ettore Perazzoli2000-04-281-1/+2
| | | | svn path=/trunk/; revision=2673
* fix memory leak (save_to_vcal): same (save): same (cal_backend_load): sameSeth Alves2000-04-281-0/+5
| | | | | | | | | * pcs/cal-backend.c (cal_backend_load): fix memory leak (save_to_vcal): same (save): same (cal_backend_load): same svn path=/trunk/; revision=2668
* Replaced libcal-util.la with *.laChristopher James Lahey2000-04-261-0/+2
| | | | | | | | | | 2000-04-26 Christopher James Lahey <clahey@helixcode.com> * cal-util/.cvsignore: Replaced libcal-util.la with *.la * pcs/.cvsignore: Added *.la and *.lo. svn path=/trunk/; revision=2628
* Renamed from backend_destroy_cb. Now we use it for the "last_client_gone"Federico Mena Quintero2000-04-264-10/+65
| | | | | | | | | | | | | | | | | | | | | 2000-04-25 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-factory.c (backend_last_client_gone_cb): Renamed from backend_destroy_cb. Now we use it for the "last_client_gone" signal from the backend. Also, unref the backend to destroy it. (add_backend): Connect to the "last_client_gone" signal of the backend. (cal_factory_get_n_backends): New function to query the number of running backends. * pcs/cal-backend.c (cal_backend_class_init): Register the new "last_client_gone" signal. It is emitted when the last Cal client goes away. It is used to notify the factory when a backend may be safely destroyed. (cal_destroy_cb): Emit the "last_client_gone" signal when the last client disconnects from the backend. svn path=/trunk/; revision=2619
* don't save on destroy.Seth Alves2000-04-261-3/+2
| | | | | | * pcs/cal-backend.c (cal_backend_destroy): don't save on destroy. svn path=/trunk/; revision=2615
* The Joy of Broken Makefiles Part #3.Ettore Perazzoli2000-04-261-2/+2
| | | | svn path=/trunk/; revision=2614
* allow for null CN (parse_person): allow for null sent_bySeth Alves2000-04-255-14/+192
| | | | | | | | | | | | * pcs/icalendar.c (parse_person): allow for null CN (parse_person): allow for null sent_by * pcs/Makefile.am: build icalendar-test * pcs/icalendar-test.c: a test which loads an ical file and converts it to our internal format, and then saves it back out. svn path=/trunk/; revision=2588
* finished first stab at iCalObject to icalcomponent conversion.Seth Alves2000-04-251-3/+147
| | | | svn path=/trunk/; revision=2584
* start on code to do the opposite of icalendar.c (convert from iCalObjectsSeth Alves2000-04-224-3/+379
| | | | | | | * pcs/icalendar-save.c: start on code to do the opposite of icalendar.c (convert from iCalObjects to libical's icalcomponents). svn path=/trunk/; revision=2550
* fixed code to populate the todo clistSeth Alves2000-04-202-2/+7
| | | | | | | | | | | | | | | * gui/gncal-todo.c (gncal_todo_update): fixed code to populate the todo clist * cal-client/cal-client.c (cal_client_get_uids): don't check type again CALOBJ_TYPE_ANY since it will always match. (cal_client_get_uids): same (re: CALOBJ_TYPE_ANY) * pcs/cal-backend.c (build_uids_list): same (re: CALOBJ_TYPE_ANY) * pcs/cal.c (Cal_get_uids): same (re: CALOBJ_TYPE_ANY) svn path=/trunk/; revision=2509
* don't call save from here because in all cases the caller of remove_objectSeth Alves2000-04-201-1/+1
| | | | | | | * pcs/cal-backend.c (remove_object): don't call save from here because in all cases the caller of remove_object calls save svn path=/trunk/; revision=2507
* calls gnome_calendar_open instead of checking on disk and calling load orSeth Alves2000-04-201-0/+2
| | | | | | | | | | | | * gui/calendar-commands.c (calendar_set_uri): calls gnome_calendar_open instead of checking on disk and calling load or create. * gui/gnome-cal.c (gnome_calendar_open): collapsed gnome_calendar_load and gnome_calendar_create into this function. added new type GnomeCalendarOpenMode which has the value CALENDAR_OPEN or CALENDAR_OPEN_OR_CREATE. svn path=/trunk/; revision=2506
* We have a new "last_calendar_gone" signal that Wombat can use to terminateFederico Mena Quintero2000-04-183-3/+26
| | | | | | | | | | | | | | | | | | 2000-04-16 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-factory.h (CalFactoryClass): We have a new "last_calendar_gone" signal that Wombat can use to terminate itself properly. * pcs/cal-factory.c (cal_factory_class_init): Register the "last_calendar_gone" signal. (backend_destroy_cb): Emit the "last_calendar_gone" signal instead of killing the factory. * pcs/Makefile.am: Added $(CORBA_GENERATED) to BUILT_SOURCES. (INCLUDES): Make the log domain be "wombat-pcs". svn path=/trunk/; revision=2475
* removed implicit save, since we don't want to save as we load from disk.Seth Alves2000-04-181-1/+2
| | | | | | | | | * pcs/cal-backend.c (add_object): removed implicit save, since we don't want to save as we load from disk. (cal_backend_update_object): added a call to save, since it isn't done by add_object now. svn path=/trunk/; revision=2471
* Renamed library from libcalutil to libcal-util, to be consistent withFederico Mena Quintero2000-04-177-199/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-04-16 Federico Mena Quintero <federico@helixcode.com> * cal-util/Makefile.am: Renamed library from libcalutil to libcal-util, to be consistent with libcal-client. Install header files in $(includedir)/evolution/cal-util. (INCLUDES): Add "cal-util" log domain for glib. (libcal_clientincludedir): The header files are now installed in $(includedir)/evolution/cal-client. * cal-util/cal-util.h: Fix includes. * cal-client/client-test.c: Fix includes. * pcs/Makefile.am: Create libpcs.a, not a shared library, because it is for internal use by Wombat only. The header files should not be installed, either. Removed all the old Tlacuache stuff. * gui/Makefile.am (EXTRA_DIST): We no longer distribute gncal.desktop. (evolution_calendar_INCLUDES): Add "calendar-gui" for the glib log domain. * gui/*.[ch]: Fix cal-util and cal-client includes. * pcs/Makefile.am (INCLUDES): Added "pcs" log domain for glib. * pcs/*.[ch]: Fix cal-util includes. svn path=/trunk/; revision=2461
* use HAVE_TIMEZONE to switch between linux's timezone variable and *bsd'sChris Toshok2000-04-121-2/+13
| | | | | | | | * pcs/icalendar.c (icaltime_to_timet): use HAVE_TIMEZONE to switch between linux's timezone variable and *bsd's method of getting the gmt offset. svn path=/trunk/; revision=2399
* create and save an actual vcalendar instead of a list of vcal objects.Seth Alves2000-04-111-40/+56
| | | | | | | * pcs/cal-backend.c (save_to_vcal): create and save an actual vcalendar instead of a list of vcal objects. svn path=/trunk/; revision=2378
* catch cal_loaded signal on the cal client. (gnome_calendar_load_cb):Seth Alves2000-04-101-21/+114
| | | | | | | | | | | | | | | | | | | * gui/gnome-cal.c (gnome_calendar_load): catch cal_loaded signal on the cal client. (gnome_calendar_load_cb): callback for cal_loaded signal. moved gnome_calendar_update_all from gnome_calendar_load to here. * gui/calendar-commands.c: minor cleanups * pcs/cal-backend.c (save_to_vcal): copied code from gnome-pim to write vcal to a file (save): filled it with more gnome-pim code (add_object): call save () after changing (remove_object): same (cal_backend_create): same (cal_backend_remove_object): same svn path=/trunk/; revision=2352
* + + * tests/.cvsignore: Added test-movemail. + + * art/.cvsignore: NewMatthew Loper2000-04-011-0/+1
| | | | | | | | | | | | | | | | + + * tests/.cvsignore: Added test-movemail. + + * art/.cvsignore: New file. + + * pcs/.cvsignore: Added *.lo. + + * .cvsignore: Added evolution.pot. + sparkly clean svn path=/trunk/; revision=2276
* + * wombat/wombat.gnorba: new file.Matthew Loper2000-03-292-0/+19
| | | | | | | | | | | | | | + + * wombat/.cvsignore: new file. + + * wombat/wombat.c (setup_pcs): fill out this function some. + + * configure.in: added wombat. + + * pcs/Makefile.am: create a libpcs.la library, for use in the + wombat. svn path=/trunk/; revision=2241
* Use ical_object_to_string().Federico Mena Quintero2000-03-283-73/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-03-27 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend.c (cal_backend_get_object): Use ical_object_to_string(). * cal-util/calobj.c (ical_object_to_string): Moved over from pcs/cal-backend.c (was string_from_ical_object). (get_calendar_base_vobject): Likewise, moved over from pcs/cal-backend.c. * cal-util/cal-util.c: Removed string_to_ical_object(); the correct function is in calobj.[ch], called ical_object_find_in_string(). Removed ical_object_to_string, since we now implement it in calobj.c. * cal-util/calobj.c: Removed ical_object_new_from_string(); see above. * idl/evolution-calendar.idl (CalObjInstance): Calendar object instances now contain only the UID for the object, not the whole string representation of the object. This allows clients to implement caching of objects if they wish. * pcs/cal.c (Cal_get_events_in_range): Likewise. * pcs/cal-backend.c (build_event_list): Likewise. * cal-client/cal-client.c (cal_client_get_events_in_range): Likewise. * cal-util/cal-util.h (CalObjInstance): Likewise. * cal-util/cal-util.c (cal_obj_instance_list_free): Likewise. (cal_obj_uid_list_free): Assert that the UIDs in the list are not NULL. * pcs/tlacuache.gnorba (repo_id): The calendar factory also supports the Unknown interface. svn path=/trunk/; revision=2211
* Fix for srcdir != builddir.Elliot Lee2000-03-181-2/+3
| | | | | | | | | * calendar/cal-client/Makefile.am, calendar/cal-util/Makefile.am, calendar/gui/Makefile.am, calendar/pcs/Makefile.am, mail/Makefile.am, widgets/e-text/Makefile.am: Fix for srcdir != builddir. svn path=/trunk/; revision=2119
* Initialize the alarm types here. Do not call default_alarm() anymore,Federico Mena Quintero2000-03-111-21/+0
| | | | | | | | | | | | | | 2000-03-10 Federico Mena Quintero <federico@helixcode.com> * cal-util/calobj.c (ical_new): Initialize the alarm types here. Do not call default_alarm() anymore, since that is a GUI issue. (default_alarm): Removed function. (alarm_defaults): Removed defaults data. * pcs/tlacuache.c (calendar_notify): Removed stubs for alarm_defaults, calendar_notify(), debug_alarms. svn path=/trunk/; revision=2095
* replaced "Calendar *cal" with "CalClient *calc" in the GnomeCalendarSeth Alves2000-03-091-1/+1
| | | | | | | | | | | | | | | * gui/gnome-cal.h: replaced "Calendar *cal" with "CalClient *calc" in the GnomeCalendar struct. * gui/*.c: tracked change from Calendar * to CalClient * gui/main.c: moved alarm_defaults from here to cal-util/calobj.c (calendar_get_events_in_range): pulled this out of calendar.c and fixed it up to use cal-client stuff. i'm not sure where to put it yet. * gui/main.c (calendar_iterate): pulled this one out of calendar.c also svn path=/trunk/; revision=2090
* calobj.[ch] has moved into cal-util/Seth Alves2000-03-081-2/+0
| | | | svn path=/trunk/; revision=2084
* More file moving - FedericoFederico Mena Quintero2000-03-082-1871/+0
| | | | svn path=/trunk/; revision=2080
* added some .cvsignore filesSeth Alves2000-03-041-0/+9
| | | | svn path=/trunk/; revision=2033
* new file -- things shared between the client and server go in thisSeth Alves2000-03-043-17/+705
| | | | | | | | | | | | * cal-util/Makefile.am: new file -- things shared between the client and server go in this directory * calobj.c calobj.h icalendar.c icalendar.h timeutil.c timeutil.h cal-util.c cal-util.h where moved backend stuff went into pcs. shared stuff went into cal-util. svn path=/trunk/; revision=2032
* I always forget to add the stupid files - FedericoFederico Mena Quintero2000-03-041-0/+66
| | | | svn path=/trunk/; revision=2028
* moved CalendarFormat type def hereSeth Alves2000-02-182-7/+134
| | | | | | | | | | | | | | * cal-backend.h: moved CalendarFormat type def here * cal-backend.c (cal_backend_load): if extension suggests an ical file, attempt to load an iCal file. (cal_get_type_from_filename): returns CAL_ICAL if file extension is 'ics' or 'ifb', else returns CAL_VCAL (icalendar_calendar_load): moved this here from icalendar.c because it needs to call the static function add_object. svn path=/trunk/; revision=1831
* Implemented.Federico Mena Quintero2000-02-174-7/+98
| | | | | | | | | | | | | | | | 2000-02-17 Federico Mena Quintero <federico@helixcode.com> * cal-client.c (cal_client_remove_object): Implemented. * cal.c (cal_notify_remove): Implemented. (Cal_remove_object): Implemented. (cal_get_epv): Fill in the remove_object field in the epv. * cal-backend.c (cal_backend_remove_object): Implemented. (notify_remove): New function to notify clients that an object was removed. svn path=/trunk/; revision=1821
* Change iCalObject.organizer from char* to iCalPerson*Russell Steinthal2000-02-162-11/+91
| | | | | | | | | | | | | | | 2000-02-16 Russell Steinthal <rms39@columbia.edu> * calobj.[ch], eventedit.c, main.c: Change iCalObject.organizer from char* to iCalPerson* * calobj.[ch]: Change iCalObject.related from list of char* to list of iCalRelation*; assorted related fixes * icalendar.c: interface between libical and the gnomecal internal representation svn path=/trunk/; revision=1791
* Implemented.Federico Mena Quintero2000-02-126-12/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-11 Federico Mena Quintero <federico@helixcode.com> * cal-client.c (cal_client_update_object): Implemented. * cal.c (cal_notify_update): New function to notify the listener about an updated object. (Cal_update_object): Implemented. (Cal_get_uids): set_release() the sequence to TRUE. (Cal_get_events_in_range): Likewise. * cal-backend.c (remove_object): New function to remove objects from a calendar backend. (cal_backend_update_object): New public function to update an object and notify clients about it. * evolution-calendar.idl (Cal): Added update_object() and delete_object() methods. (Listener): Removed the obj_changed method and renamed obj_added to obj_updated. We now only have updated and removed notifiers. * cal-listener.[ch]: Removed the "changed" notification code. Changed the "added" notification code to the "updated" notification. * cal-client.c: Likewise. * tlacuache.c (create_cal_factory): Connect to "destroy" on the factory and exit the main loop when the factory is destroyed. * cal-factory.c (backend_destroy_cb): New callback used when a backend is destroyed. Removes the backend from the factory's hash table and unrefs the factory if all backends go away. (add_calendar_client): Free the environment. * cal.c (cal_new): Use bonobo_object_unref() if we fail to initialize. * cal-listener.c (cal_listener_new): Likewise. * layout.c (layout_events): Plug li.partition memory leak. svn path=/trunk/; revision=1742
* Connect to the Cal's destroy signal. (cal_backend_remove_cal): KilledFederico Mena Quintero2000-02-117-60/+293
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-10 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_add_cal): Connect to the Cal's destroy signal. (cal_backend_remove_cal): Killed function now that removal of Cal objects is done in their destroy callback. (cal_destroy_cb): New callback to remove a Cal from the backend's list of clients. Also, the backend destroys itself when there are no more clients connected to it. (save): New placeholder function to save a backend. (destroy): New function to destroy a backend's data. (cal_backend_destroy): Save the calendar and destroy it. * cal.c (cal_destroy): Reset the priv->backend to NULL. * cal-factory.c (add_calendar_client): There is no need to call cal_backend_remove_cal(); we can now just destroy the Cal object. (create_fn): Make sure we always unref the URI. (load_fn): Move the URI unref to the end of the function for safety. * cal-factory.c (add_calendar_client): Unref the Cal only if notification of the listener was unsuccessful. Otherwise, the calendar user agent (Listener side) keeps the reference. * tl-test.c (list_uids): Free the calobj. * cal-client.c (cal_loaded_cb): Use bonobo_object_unref() to get rid of the listener. (load_or_create): Likewise. (destroy_factory): New function to get rid of the factory. (destroy_listener): New function to get rid of the listener. (destroy_cal): New function to get rid of the calendar client interface object. (cal_client_destroy): Free all resources. (cal_client_get_object): CORBA_free() the calobj string. Boy, I love memprof. * cal-listener.c (cal_listener_destroy): Reset the priv->cal to CORBA_OBJECT_NIL. * cal-backend.c (cal_backend_remove_cal): Do not unref the Cal, since the calendar user agent owns it. (cal_backend_add_cal): Do not ref the Cal, since the calendar user agent owns it. * cal-factory.c (add_calendar_client): Use bonobo_object_unref() to get rid of the calendar client interface object. * calobj.c (ical_object_create_from_vobject): Duplicate the default "PUBLIC" string. 2000-02-09 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (cal_factory_load): Added documentation comment. (load_fn): Do not print a message if the backend could not be loaded due to a non-fatal error. (queue_load_create_job): Moved the stuff from cal_factory_load() to here. Now this function serves to queue load or create requests. (cal_factory_load): Use queue_load_create_job(). (cal_factory_create): Implemented; use queue_load_create_job(). (create_fn): New job handler for creating new calendars. (create_backend): New function to create a new backend with a new calendar. (add_backend): New helper function to add backends to the factory's hash table. (load_backend): Use add_backend() instead of adding the backend by ourselves. * cal-client.c (load_or_create): Moved the functionality from cal_client_load_calendar() to here, and added an option to create a new calendar instead of loading an existing one. (cal_client_load_calendar): Use load_or_create(). (cal_client_create_calendar): Implemented. * cal-backend.c (cal_backend_create): Implemented. * evolution-calendar.idl (LoadStatus): Added an IN_USE error for create requests. * cal-listener.h (CalListenerLoadStatus): Added CAL_LISTENER_LOAD_IN_USE. * cal-listener.c (Listener_cal_loaded): Convert the IN_USE error. * cal-client.h (CalClientLoadStatus): Added CAL_CLIENT_LOAD_IN_USE. * cal-client.c (cal_loaded_cb): Handle CAL_LISTENER_LOAD_IN_USE. * tl-test.c: New test program for the calendar client side; it also exercises the server side by sending commands to it. * Makefile.am: Added the tl-test program. * tlacuache.gnorba: Updated. * tlacuache.c (create_cal_factory): Use the right GOAD id. * cal-client.c (cal_client_construct): Use the right GOAD id. svn path=/trunk/; revision=1732
* Added get_uids() method to get a list of UIDs based on object types.Federico Mena Quintero2000-02-095-79/+288
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-08 Federico Mena Quintero <federico@helixcode.com> * evolution-calendar.idl (Cal): Added get_uids() method to get a list of UIDs based on object types. * cal-backend.c (cal_backend_get_uids): Implemented get_uids() in the backend. * cal.c (Cal_get_uids): Implemented get_uids() method. * cal-client.c (cal_client_get_uids): Implemented client-side function. * cal-util.c (cal_obj_instance_list_free): Doh. Free the list, not the last link. (cal_obj_uid_list_free): New function to free a list of UIDs. * GnomeCal.idl (Repository): Removed unused method get_object_by_id_list(). This is just for cleanup purposes and to remind me exactly of what needs to be moved over to evolution-calendar.idl. (Repository): Removed unused get_objects() method. * corba-cal.c (init_calendar_repo_class): Removed the unused get_objects method. * calobj.h (CalObjFindStatus): New status value enumeration for the find function. * calobj.c (ical_object_find_in_string): New function to parse a complete calendar and find a calendar object in it. This should be used instead ical_object_new_from_string() in the future. * evolution-calendar.idl (CalObjInstance): Added an uid field. Now the idea is that whenever calendar object strings are passed around, their UIDs are passed along with them so that the actual object can be pulled from the whole VCAL object using its UID to identify it. * cal-util.h (CalObjInstance): Added uid field. * cal-util.c (cal_obj_instance_list_free): Free the UIDs. * cal-backend.c (build_event_list): Store the object's UID in the instance structure. * cal.c (Cal_get_events_in_range): Copy the UID field to the CORBA structure. * cal-client.c (cal_client_get_events_in_range): Copy the UID field from the CORBA structure. * main.c (gnome_cal_file_menu): Removed unfinished html-month stuff. * Makefile.am (gnomecal_SOURCES): Removed html-month.c. * gnome-cal.c: #include "alarm.h" (mail_notify): Made static. * alarm.h: #include "calobj.h" * corba-cal-factory.h (init_corba_server): Fixed prototype. * quick-view.c (create_items_for_event): Made static. * gncal-todo.c (column_resized): Made static. * layout.c (find_index): Made static. svn path=/trunk/; revision=1699
* New struct to wrap instances of calendar objects for recurrencies andFederico Mena Quintero2000-02-083-12/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-08 Federico Mena Quintero <federico@helixcode.com> * evolution-calendar.idl (CalObjInstance): New struct to wrap instances of calendar objects for recurrencies and alarms. (Cal::get_events_in_range): New method to get ocurring and recurring events by time range. * cal-backend.c (cal_backend_get_events_in_range): New function to get a list of event instances in a time range. (string_from_ical_object): New internal function. (cal_backend_get_object): Use string_from_ical_object() instead of doing everything ourselves. (cal_backend_get_events_in_range): New function to get a list of the events that occur or recur in a specified time range. * cal-client.c (cal_client_get_events_in_range): Implemented client-side function. * cal-util.h: * cal-util.c: New files with utilities and types common to the client and server parts. (CalObjInstance): New structure to hold an instance of an actual occurrence, recurrence, or alarm trigger of a calendar object. (cal_obj_instance_list_free): New function to free a list of calendar object instances. * cal.c (Cal_get_events_in_range): Implemented new method. * corba-cal.c (cal_repo_get_updated_objects): Free `str' with free(), not g_free(), since calendar_get_as_vcal_string() uses writeMemVObject(), which uses realloc(). Fixed in gnome-pim as well. svn path=/trunk/; revision=1693
* New function to create the base VObject for a calendar.Federico Mena Quintero2000-02-041-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-04 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (get_calendar_base_vobject): New function to create the base VObject for a calendar. (cal_backend_get_object): Create the base calendar and add the sought object to it, then stringify it. * evolution-calendar.idl (Listener::obj_added Listener::obj_changed): Now these pass in just the UIDs, not the complete objects. * cal-listener.c (Listener_obj_added): Changed to pass in the uid, not the object. (Listener_obj_changed): Likewise. * cal-client.h (CalClientClass): Made the obj_added and obj_changed signals take in the UIDs, not the full objects. * cal-client.c (obj_added_cb): Likewise. (obj_changed_cb): Likewise. svn path=/trunk/; revision=1666
* Sync to laptop - FedericoArturo Espinosa2000-02-032-25/+65
| | | | svn path=/trunk/; revision=1664
* Added the get_object() method.Federico Mena Quintero2000-02-024-2/+61
| | | | | | | | | | | | | | | | | 2000-02-03 Federico Mena Quintero <federico@helixcode.com> * evolution-calendar.idl (Cal): Added the get_object() method. * cal-client.c (cal_client_get_object): New function to get a calendar object by its UID. * cal.c (Cal_get_object): Implemented. * cal-backend.c (cal_backend_get_object): New unfinished backend function. We need some reorganizing of how the calendar objects are stored. svn path=/trunk/; revision=1663
* Changed the namespace from GNOME::Calendar to Evolution::Calendar.Federico Mena Quintero2000-01-297-71/+71
| | | | | | | | | | | | | | | | | 2000-01-30 Federico Mena Quintero <federico@helixcode.com> * evolution-calendar.idl: Changed the namespace from GNOME::Calendar to Evolution::Calendar. (Listener::LoadStatus): Fixed SUCESSS -> SUCCESS typo. And I never noticed it in the implementation. Ain't M-/ grand? * Makefile.am: Changed ocurrences of gnome-calendar.idl to evolution-calendar.idl. * *.[ch]: Changed GNOME_Calendar_foo identifiers to Evolution_Calendar_foo. svn path=/trunk/; revision=1652
* Make Evolution compile with the latest Bonobo changes.Arturo Espinosa2000-01-265-34/+34
| | | | | | | | Make Evolution compile with the latest Bonobo changes. Miguel. svn path=/trunk/; revision=1636
* Check that the listener is not nil and emit and exception if it is.Federico Mena Quintero2000-01-252-7/+61
| | | | | | | | | | | | | | | | | 2000-01-25 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (CalFactory_load): Check that the listener is not nil and emit and exception if it is. * gnome-calendar.idl (CalFactory::load CalFactory::create): Now these raise the NilListener exception. * tlacuache.c (calendar_notify): Error stub for alarms. (alarm_defaults): Stub array. (debug_alarms): Stub variable. (main): Initialize gnome-vfs. svn path=/trunk/; revision=1627
* When will I ever learn to add the files... - FedericoArturo Espinosa2000-01-251-0/+101
| | | | svn path=/trunk/; revision=1625
* Added the gnome-pilot and capplet checks; they will likely be reworked forFederico Mena Quintero2000-01-257-35/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-01-24 Federico Mena Quintero <federico@helixcode.com> * configure.in: Added the gnome-pilot and capplet checks; they will likely be reworked for the Evolution framework, but for now the calendar/ directory needs them. * configure.in: Added checks for gnome-vfs. 2000-01-24 Federico Mena Quintero <federico@helixcode.com> * tlacuache.c: New main module for the Tlacuache personal calendar server. * tlacuache.gnorba: New gnorba file for Tlacuache, the GNOME personal calendar server. * Makefile.am: Added the stuff necessary to build Tlacuache. * cal.c (Cal_get_uri): Convert the URI to a string before returning it. * cal-factory.c (CalFactory_create): Doh, this function is void. * job.c (job_add): Use g_idle_add(), not gtk_idle_add(). svn path=/trunk/; revision=1623
* New function to remove a calendar client interface object from a backend.Federico Mena Quintero2000-01-244-42/+161
| | | | | | | | | | | | | | | | | | | | | 2000-01-24 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_remove_cal): New function to remove a calendar client interface object from a backend. (cal_backend_load): Convert the URI to string and use Parse_MIME_FromFileName(). The conversion is not very smart, though. * cal-factory.c (load_backend): Moved most of the error handling upstream to load_fn(). (load_fn): Handle failure in case the backend could not be loaded. (cal_factory_destroy): Free the backends and the backend hash table. (add_calendar_client): Implemented. We create a Cal client interface object and attach it to the backend, and we notify the listener. svn path=/trunk/; revision=1618
* Take in a GnomeVFSURI, not a string.Federico Mena Quintero2000-01-223-21/+49
| | | | | | | | | | | | | | | | | | | | | | | | 2000-01-22 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_load): Take in a GnomeVFSURI, not a string. * cal-listener.c (Listener_cal_loaded): Pass the load status to the signal. (cal_listener_destroy): Better error checking. (cal_listener_new): Better error checking. * cal-listener.h (CalListenerLoadStatus): New enum for the load status of a calendar. (CalListenerClass): Added the status argument to the cal_loaded signal. * gnome-calendar.idl (cal_loaded): Added a load status code. * cal-backend.h (CalBackendLoadStatus): Renamed from CalBackendLoadResult. svn path=/trunk/; revision=1607
* Moved the calendar backend here. This is the actual calendar-handlingFederico Mena Quintero2000-01-196-110/+560
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-01-18 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c cal-backend.h: Moved the calendar backend here. This is the actual calendar-handling object. (load_from_vobject): Moved over from calendar.c. Modified to use a CalBackend instead of the old Calendar structure. (add_object): Likewise. * cal.c: Now the Cal object is just a calendar client interface object; we use it as a "viewport" onto a CalBackend. This also lets us do correct resource management. * cal-common.h: New file with common forward declarations; we can't have circular dependencies between headers. 2000-01-18 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (cal_factory_load): Queue a load job. (load_fn): Load job handler. Lookup the calendar by URI, load it if it is not loaded, or just report it to the new listener if it is. * job.c job.h: New files with a simple job queue manager. * gnome-calendar.idl (Listener::cal_loaded): Do not return the whole calendar object string. The client will be able to query the calendar for the events it needs. * cal-listener.c (Listener_cal_loaded): Ref the calendar GNOME object. We unref it when the listener is destroyed. 2000-01-17 Federico Mena Quintero <federico@helixcode.com> The files from the gncal directory of the gnome-pim module on CVS were moved here, to evolution/calendar, in preparation for the Evolution work. The calendar is being split into a model/view architecture. The model is a personal calendar server (PAS): it provides storage, notification, and event generation; the views/controllers are the calendar user agents and things like Pilot synchronizers. svn path=/trunk/; revision=1591
* Sync, take two - FedericoArturo Espinosa2000-01-181-0/+1
| | | | svn path=/trunk/; revision=1588
* Forgot these - FedericoArturo Espinosa2000-01-182-0/+131
| | | | svn path=/trunk/; revision=1586
* Sync - FedericoArturo Espinosa2000-01-182-6/+112
| | | | svn path=/trunk/; revision=1585
* Removed the CORBA listener methods, adjusted for the new IDL.Federico Mena Quintero2000-01-121-29/+6
| | | | | | | | | | | | | | | | | | 2000-01-11 Federico Mena Quintero <federico@helixcode.com> * cal.c: Removed the CORBA listener methods, adjusted for the new IDL. * cal-listener.c (cal_listener_init): Create the private structure. In it we hold a reference to the calendar the listener is watching. (cal_listener_destroy): Destroy the private structure and unref the calendar. (Listener_cal_loaded): Stuff the calendar into our private data. (Listener_obj_added): Adjusted for new IDL. (Listener_obj_removed): Likewise. svn path=/trunk/; revision=1560
* New IDL for the personal calendar server.Federico Mena Quintero2000-01-124-0/+755
| | | | | | | | | | | | | | | | 2000-01-11 Federico Mena Quintero <federico@helixcode.com> * gnome-calendar.idl: New IDL for the personal calendar server. * cal.h cal.c: New files with the calendar object. * cal-listener.h cal-listener.c: New files with the calendar listener object. * cal-factory.h cal-factory.c: New files with the calendar factory object. svn path=/trunk/; revision=1555
* Add default alarm support, Beep on display alarms optionRussell Steinthal1999-11-031-13/+8
| | | | | | | | | Since there are now some calls from prop.c into previously static functions in eventedit.c, the code in those files should probably be reorganized. Perhaps a new alarm-utils.c file? In any case, this commits working code to the repository before we reorganize. svn path=/trunk/; revision=1366
* Small fix -miguelArturo Espinosa1999-09-281-30/+30
| | | | svn path=/trunk/; revision=1265
* About to rehash conduit.Eskil Heyn Olsen1999-09-191-1/+1
| | | | | | Changed pilotid in calobj to guint32. svn path=/trunk/; revision=1240
* added sources to calendar-conduitEskil Heyn Olsen1999-09-151-2/+2
| | | | | | | | | | | | * gncal/Makefile.am: added sources to calendar-conduit * gncal/calendar-conduit.c: imported Miguels update_record function * gncal/corba-cal.c: fixed a grave bug in exception throwing, which cause ORBit to sigsegv. svn path=/trunk/; revision=1229
* Fix the hostname part.Miguel de Icaza1999-08-151-3/+3
| | | | | | | | 1999-08-15 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_gen_uid): Fix the hostname part. svn path=/trunk/; revision=1116
* Lots of more work on the sync stuff. It works pretty well now.Arturo Espinosa1999-07-291-6/+11
| | | | | | | | | | Lots of more work on the sync stuff. It works pretty well now. I dont know why my pilot is not accepting the events I send to it though Miguel. svn path=/trunk/; revision=1040
* New file. Implements PalmPilot syncronization with the Gnome Calendar.Miguel de Icaza1999-07-282-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-07-28 Miguel de Icaza <miguel@gnu.org> * calendar-pilot-sync.c: New file. Implements PalmPilot syncronization with the Gnome Calendar. 1999-07-27 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_new_from_string): New function. Creates an iCalObject from a vCalendar string that is supposed to contain only one vEvent. * calendar.c: (calendar_save): Split this routine in two. * gnome-cal.c (gnome_calendar_new): Create the corba server here. * main.c: Include gnorba.h, and corba-cal-factory.h here (close_cmd): Kill the calendar server on shutdown. * calobj.c (load_recur_yearly_day): Added a fixme comment. WE need to handle intervals in the years. * calendar.c (calendar_object_find_in_list, calendar_object_find, calendar_object_find_todo, calendar_object_find_event): New functions for looking up information. * main.c (gnome_calendar_locate): New function. * corba-cal.c (calendar_create_object): New file. Implements the corba server. * calendar.c (calendar_object_changed): Flag pilot-status as changed. * calobj.c (ical_object_to_vobject): Save pilot information for syncing. (ical_object_create_from_vobject): Load syncing information for pilot. Do it in a way compatible with KOrganizer. 1999-07-26 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_create_from_vobject): Generate unique IDs on Vevents we load that lack it. WE need this for the old gnome calendar generated files (ie, before now :-). svn path=/trunk/; revision=1038
* Generate unique IDs on Vevents we load that lack it. WE need this for theMiguel de Icaza1999-07-271-1/+3
| | | | | | | | | | | | 1999-07-26 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_create_from_vobject): Generate unique IDs on Vevents we load that lack it. WE need this for the old gnome calendar generated files (ie, before now :-). Required to sync with the Palm svn path=/trunk/; revision=1037
* Changed gnome-pim.keys to use the --file flagMiguel de Icaza1999-07-171-3/+27
| | | | | | | | | | | | | | | | | | Changed gnome-pim.keys to use the --file flag 1999-07-14 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_gen_uid): Returns a UID. (ical_object_new): Use a UID when creating an event. Should get syncing done easier. 1999-07-14 Nicholas J Kreucher <nick@poetic.com> * calobj.c (skip_numbers): Actually skip over the numbers. (ical_object_to_vobject): Test the proper variable for storing the proper information. svn path=/trunk/; revision=1027
* One line bug fix from Sergey I Panov.Miguel de Icaza1999-06-041-1/+1
| | | | | | | | 1999-06-03 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (daynumberlist): One line bug fix from Sergey I Panov. svn path=/trunk/; revision=969
* Work around broken software that writes a broken month-of-day as "zero".Miguel de Icaza1999-06-021-0/+8
| | | | | | | | | | 1999-06-01 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (daynumberlist): Work around broken software that writes a broken month-of-day as "zero". Use the dtstart date for this on this event. svn path=/trunk/; revision=963
* Make intervals always exist. a 0 interval is wrong.Miguel de Icaza1999-05-261-0/+4
| | | | | | | | | 1999-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (load_recurrence): Make intervals always exist. a 0 interval is wrong. svn path=/trunk/; revision=942
* Added this routine so Monthly recurrences use the weekday field as aSteve Murphy1999-04-041-9/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-04-01 Steve Murphy <murf@e-tools.com> * calobj.c (weekdaynum): Added this routine so Monthly recurrences use the weekday field as a simple integer for a single weekday. * calobj.c (load_recur_monthly_pos): Call weekdaynum instead of weekdaylist. The interface only lets the user input a single value anyway. * calobj.c (ical_object_to_vobject): instead of code to output day names from a bit array, use instead the value as an int and output a single dayname. * calobj.c (ical_object_generate_events): first_week_day gets the day int instead of the first entry in the bit field. I inserted a fair chunk of code to avoid calling generate if the day is out of range for a month. It may be unneccessary, because mktime will turn the extra days into a valid date the next month. But not all mktimes are equal, I fear. * eventedit.c (ee_store_recur_rule_to_ical): For case 3, (Monthly), I added code to set the interval slot of the recur struct; without this value, selecting a monthly recursing, by date, would lead to an infinite loop broken only by a failure to alloc more memory. Also, in the "by position" case, both u.month_pos and u.month_day were being assigned values. This is a mistake, as they are both part of an union, and the same thing. The weekday field should get the recur_rr_month_weekday value. * eventedit.c (ee_rp_init_rule): set default day from the weekday field instead of the u.month_day field, which is really the month_pos value. * gnome-cal.c (gnome_calendar_tag_calendar): Month days start with 1, not 0; thus, setting tm.tm_mday = 0, and then calling mktime will generate a time corresponding to the end of the previous month, which may have a mday anywhere from 28 to 31. The end time just adds 1 to the month, so your end time may not cover the last few days of this month, depending on what the biggest mday of last month was. I changed it so tm_mday is set to 1 instead. 1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx> svn path=/trunk/; revision=792
* Include <config.h> so that strings get translated. Correct spelling.Nuno Ferreira1999-03-281-0/+1
| | | | | | | | | 1999-03-27 Nuno Ferreira <nmrf@rnl.ist.utl.pt> * gncal/calobj.c: Include <config.h> so that strings get translated. * po/pt.po: Correct spelling. svn path=/trunk/; revision=781
* Added 2 paranthesis.. "foobar = d / 60*60" is _NOT_ the same as "foobar =Tomas Ogren1999-03-241-1/+1
| | | | | | | | | | | 1999-03-23 Tomas Ogren <stric@ing.umu.se> * gnomecal/calobj.c: Added 2 paranthesis.. "foobar = d / 60*60" is _NOT_ the same as "foobar = d / (60*60)" which caused heavy alarm-corruption with alarms between 2 hrs and 2 days. svn path=/trunk/; revision=776
* 1999-03-10 Craig A Soules (soules+@andrew.cmu.edu)Arturo Espinosa1999-03-111-2/+13
| | | | | | | * timeutil.c, calendar.c, calobj.c, gncal-day-panel.c: Add support for daylight time savings. svn path=/trunk/; revision=756
* Save the owner/organizer of the event. (ical_object_create_from_vobject):Miguel de Icaza1999-02-241-0/+10
| | | | | | | | | | | | | 1999-02-23 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_to_vobject): Save the owner/organizer of the event. (ical_object_create_from_vobject): Load the owner/organizer of the event. * gncal-full-day.c (delete_occurance): Assign child to data (fixes crash on "delete this occurrance"). svn path=/trunk/; revision=689
* GNOME PIM livesMichael Fulbright1998-12-092-2/+2
| | | | | | Dr Mike <drmike@redhat.com> svn path=/trunk/; revision=518
* Add ctype.hMiguel de Icaza1998-11-071-0/+1
| | | | | | | | 1998-11-06 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c: Add ctype.h svn path=/trunk/; revision=465
* Changed name from time_start_of_day() to be consistent with the otherFederico Mena Quintero1998-10-032-63/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1998-10-02 Federico Mena Quintero <federico@nuclecu.unam.mx> * timeutil.c (time_day_begin): Changed name from time_start_of_day() to be consistent with the other begin/end functions. (time_day_end): Likewise. * calobj.c (ical_object_get_first_weekday): New public function to get the first toggled day in a weekday mask. Since we do not support multiple weekdays in a monthly-by-pos rule, we just fetch the first toggled one. (ical_object_generate_events): Added a missing break statement. * timeutil.c (time_month_end): Made it consistent with the rest of the time begin/end functions -- now it returns the first second of the *next* month. (time_week_end): Actually implemented this function. It will be used when the week view is rewritten. * calobj.c (time_in_range): Fix off-by-one in the comparison of the time against the end time. * gncal-full-day.c (expand_space): Fixed bug where the columns not were being expanded due to a missing "slot + j". svn path=/trunk/; revision=425
* Small fixes for calendar savingArturo Espinosa1998-08-221-2/+4
| | | | svn path=/trunk/; revision=328
* Fix for the weekly event generation. Was reported on the bug trackingMiguel de Icaza1998-05-261-1/+1
| | | | | | | | | 1998-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_generate_events): Fix for the weekly event generation. Was reported on the bug tracking system. svn path=/trunk/; revision=237
* Bug free version of the range computation in place.Miguel de Icaza1998-05-161-2/+2
| | | | | | | | | | | | | | | 1998-05-15 Miguel de Icaza <miguel@nuclecu.unam.mx> * gnome-cal.c (mark_gtk_calendar_day): Bug free version of the range computation in place. * gncal-year-view.c (year_view_mark_day): Use the same new version of the range computation here. * calobj.c (ical_object_generate_events): Fix the begin/end condition. svn path=/trunk/; revision=215
* Do not add the spurious padding.Miguel de Icaza1998-05-152-5/+45
| | | | | | | | | | | | | | | | | | | | | | | | 1998-05-14 Miguel de Icaza <miguel@nuclecu.unam.mx> * timeutil.c (isodate_from_time_t): Do not add the spurious padding. * calobj.c (store_date_list): Bug fix: I was using the wrong pointer when saving the exception date list. (set_date_list): Bug fix: load correctly the complete exception date list. (set_date_list): Use ',' for the exception date separator as the versit people can not get their standard right. * gncal-full-day.c (unrecur_appointment): Support for making an existing recurrent event `movable' for a day. * calobj.c (ical_object_add_exdate): New routine, used to add exception dates. (ical_object_duplicate): New routine: used to do the magic recur->no-recur event. svn path=/trunk/; revision=214
* Draw the day at startup. (gncal_day_panel_set): Fix selected-day display.Miguel de Icaza1998-05-041-2/+0
| | | | | | | | | | | | | 1998-05-03 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-day-panel.c (update): Draw the day at startup. (gncal_day_panel_set): Fix selected-day display. (gncal_day_panel_new): Switch day on double clicks, not on single clicks. * calobj.c (ical_object_compute_end): Removed debug messages. svn path=/trunk/; revision=205
* Fixed alarm saving code. Fixed alarm loading code. New -partial-Arturo Espinosa1998-04-252-22/+46
| | | | | | | | | Fixed alarm saving code. Fixed alarm loading code. New -partial- implementation of the mail alarm. It is not working, I do not know what is closing stdin to sendmail svn path=/trunk/; revision=194
* Fixes for vTodo thingies -migArturo Espinosa1998-04-231-7/+18
| | | | svn path=/trunk/; revision=190
* Lots of changes:Miguel de Icaza1998-04-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | Lots of changes: 1998-04-21 Miguel de Icaza <miguel@nuclecu.unam.mx> 1. gEdit got Gnomified: gnome-stock, gnome-app, i18n tretment + integration into gnome-utils compilation. Original configure.in is still there for Alex/Evans to redistribute as Gtk App (I tried to ifdef gnome code). 2. gHex: warning fixes + crash fixes + i18n fixes. 3. GnCal: week view shows date range (needs some fixing); changed the day view order; other stuff I dont remember 4. GTop: more i18n treatmnet. 5. Updated Spanish translation. svn path=/trunk/; revision=178
* Enhance the exception date handling -migArturo Espinosa1998-04-211-16/+38
| | | | svn path=/trunk/; revision=174
* Fix compiler warnings - FedericoArturo Espinosa1998-04-211-3/+6
| | | | svn path=/trunk/; revision=170
* more fixes -migArturo Espinosa1998-04-211-0/+3
| | | | svn path=/trunk/; revision=169
* A lot of usability changes to GnomeCal -miguelArturo Espinosa1998-04-211-1/+23
| | | | svn path=/trunk/; revision=168
* Add Quoted printable property to items containing new lines. (duration):Miguel de Icaza1998-04-191-6/+15
| | | | | | | | | | | | | | | 1998-04-18 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_to_vobject): Add Quoted printable property to items containing new lines. (duration): Use unsigned integers, to work around buggy calendar files generated by korganizer. * main.c (save_calendar_cmd): Do not ask for file name if we are saving. (save_as_calendar_cmd): New command. svn path=/trunk/; revision=158
* Final steps.Arturo Espinosa1998-04-181-2/+1
| | | | svn path=/trunk/; revision=157
* Yes.Arturo Espinosa1998-04-182-0/+25
| | | | | | | | | | | | | | | | | | | | | Yes. It works. It loads, it saves, it does all that stuff. It works, even if federico complains that we did not test close. Repetition, alarms, all that stuff you all guys love. It it is there. We did minimal testing, but we know you will happilly commit a fix if you find a problem, right? Ok, we are off to a party now. Miguel svn path=/trunk/; revision=155
* Added mandatory status property. (ical_object_to_vobject): Only storeFederico Mena Quintero1998-04-181-4/+12
| | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * calobj.c (ical_new): Added mandatory status property. (ical_object_to_vobject): Only store "related" list if it exists. (store_list): Add terminating null char and free the correct data. svn path=/trunk/; revision=154
* Added mandatory status property. (ical_object_to_vobject): Only storeFederico Mena Quintero1998-04-181-1/+3
| | | | | | | | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * calobj.c (ical_new): Added mandatory status property. (ical_object_to_vobject): Only store "related" list if it exists. * main.c (save_calendar_cmd): Implemented calendar saving. (open_calendar_cmd): Implemented calendar loading. (new_calendar_cmd): Implemented calendar creation. (new_calendar): Don't load our test calendar by default. * gncal-full-day.c (delete_appointment): Delete appointment implemented. svn path=/trunk/; revision=153
* Year view, double click -migArturo Espinosa1998-04-182-22/+93
| | | | svn path=/trunk/; revision=152
* The event dialog is beautified, recurrences are saner.Federico Mena Quintero1998-04-182-6/+6
| | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_recurrence_page): New function that creates the recurrence page in the toplevel notebook. (ee_store_recur_values_to_ical): Now we can also store the recurrences. svn path=/trunk/; revision=151
* We load the alarms -migArturo Espinosa1998-04-182-15/+49
| | | | svn path=/trunk/; revision=150
* Save Recurrence rules -MiguelArturo Espinosa1998-04-181-4/+108
| | | | svn path=/trunk/; revision=149
* Large number of updates. Recurrence basically works now in most of itsArturo Espinosa1998-04-182-17/+213
| | | | | | | | | Large number of updates. Recurrence basically works now in most of its forms (daily, weekly, month-by-position). Miguel. svn path=/trunk/; revision=148
* Remove deadly excessive abuse of encapsulation -migArturo Espinosa1998-04-172-12/+11
| | | | svn path=/trunk/; revision=147
* New event generation api in place -miguelArturo Espinosa1998-04-171-1/+3
| | | | svn path=/trunk/; revision=146
* Use menu_shell->children, not menu->children. Why does GtkMenu have aFederico Mena Quintero1998-04-172-2/+3
| | | | | | | | | | | | | | | | | | | | | 1998-04-16 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_store_alarm): Use menu_shell->children, not menu->children. Why does GtkMenu have a children field in the object structure? (check_dates): New function that insures that start_date < end_date. (check_times): In addition to checking whether the event spans the whole day, now it insures that start_time < end_time. * gncal-full-day.c (child_set_size): Now children get bigger temporarily while they are focused. This allows the handles not to "overlap" the rows used by the child and thus allow editing of very thin events. (recompute_motion): Fix for new child coordinates. (gncal_full_day_expose): Make it use find_child_by_window() instead of looking for it by hand. svn path=/trunk/; revision=145
* The general_owner may be null. Do the proper thing when creating theFederico Mena Quintero1998-04-162-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | 1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_general_page): The general_owner may be null. Do the proper thing when creating the label. (ee_ok): Update the gnome calendar appropriately. * timeutil.h: * gncal-year-view.h: Add some missing prototypes. * gncal-full-day.c (child_popup_menu): Set the sensitivity of menu items according to whether the ical object is being edited or not. * eventedit.c (event_editor_new): Set the "being edited" flag on the ical object (stored as the ical object's user data). (event_editor_destroy): Release the flag. * calobj.h: The iCalObject structure now has a generic user_data pointer. * calobj.c (ical_object_set_user_data ical_object_get_user_data): Functions to set this data. svn path=/trunk/; revision=140
* Year view marks ranges of new dates (on update view). Recurrence iteratorArturo Espinosa1998-04-152-5/+25
| | | | | | | | | | | Year view marks ranges of new dates (on update view). Recurrence iterator functions are here now (clap, clap, clap). Microsoft Outlook's days are counted. Miguel. svn path=/trunk/; revision=139
* Routine to destory rows array properly.Miguel de Icaza1998-04-151-33/+66
| | | | | | | | | | | | | | | 1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-full-day.c (layout_kill_rows): Routine to destory rows array properly. * gncal-year-view.c (gncal_year_view_new): Add missing year in call to strftime. * calobj.c (ical_object_create_from_vobject): Fixed memory leaks from the return values of versit's fakeCString. svn path=/trunk/; revision=136
* New widget for the year view. added required compilation of the new files.Arturo Espinosa Aldama1998-04-151-14/+12
| | | | | | | | | 1998-04-14 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> * gncal-year-view.[hc]: New widget for the year view. * Makefile.am: added required compilation of the new files. svn path=/trunk/; revision=134
* Load recurrence rules; Paint the recurrence screen according to the rules.Arturo Espinosa1998-04-142-4/+281
| | | | | | | | | Load recurrence rules; Paint the recurrence screen according to the rules. -miguel svn path=/trunk/; revision=133
* Now takes object and flags parameters. Likewise. Likewise.Federico Mena Quintero1998-04-141-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-week-view.c (gncal_week_view_update): Now takes object and flags parameters. * gncal-day-view.c (gncal_day_view_update): Likewise. * gncal-full-day.c (gncal_full_day_update): Likewise. (child_focus_in): New function. In conjunction with child_focus_out(), these only display the handles in the child when it is focused. The result is that the user can see more of the child's text when nothing is focused, and we can also display fatter and nicer drag handles. * gnome-cal.c (gnome_calendar_object_changed): Now takes an additional flags parameter (gnome_calendar_update_all): Made function static. Now takes changed object and flags parameters as well. (gnome_calendar_object_changed): Now takes additional flags parameter to indicate what changed in the specified object. * calobj.h (CalObjectChange): New enum with flags to describe what has been changed in an object. svn path=/trunk/; revision=132