aboutsummaryrefslogtreecommitdiffstats
path: root/art/empty.xpm
blob: aca06618b1b45a927a9a540c11118e81cc57ab52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* XPM */
static char * empty_xpm[] = {
"16 16 2 1",
"   c None",
".  c #FFFFFF",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                ",
"                "};
93' href='#n93'>93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
/*
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) version 3.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with the program; if not, see <http://www.gnu.org/licenses/>  
 *
 *
 * Authors:
 *      Jeffrey Stedfast <fejj@ximian.com>
 *
 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
 *
 */

#ifndef __EM_FOLDER_TREE_MODEL_H__
#define __EM_FOLDER_TREE_MODEL_H__

#include <gtk/gtk.h>

#include <libxml/tree.h>

#include <camel/camel-store.h>

#include <libedataserver/e-account-list.h>

#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */

#define EM_TYPE_FOLDER_TREE_MODEL       (em_folder_tree_model_get_type ())
#define EM_FOLDER_TREE_MODEL(obj)       (G_TYPE_CHECK_INSTANCE_CAST ((obj), EM_TYPE_FOLDER_TREE_MODEL, EMFolderTreeModel))
#define EM_FOLDER_TREE_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), EM_TYPE_FOLDER_TREE_MODEL, EMFolderTreeModelClass))
#define EM_IS_FOLDER_TREE_MODEL(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EM_TYPE_FOLDER_TREE_MODEL))
#define EM_IS_FOLDER_TREE_MODEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), EM_TYPE_FOLDER_TREE_MODEL))
#define EM_FOLDER_TREE_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EM_TYPE_FOLDER_TREE_MODEL, EMFolderTreeModelClass))

typedef struct _EMFolderTreeModel EMFolderTreeModel;
typedef struct _EMFolderTreeModelClass EMFolderTreeModelClass;
typedef struct _EMFolderTreeModelStoreInfo EMFolderTreeModelStoreInfo;

enum {
    COL_STRING_DISPLAY_NAME,  /* string that appears in the tree */
    COL_POINTER_CAMEL_STORE,  /* CamelStore object */
    COL_STRING_FULL_NAME,   /* if node is a folder, the full path name of the folder, no leading / */
    COL_STRING_URI,           /* the uri to get the store or folder object */
    COL_UINT_UNREAD,          /* unread count */
    COL_UINT_FLAGS,     /* FolderInfo.flags */

    COL_BOOL_IS_STORE,        /* toplevel store node? */
    COL_BOOL_LOAD_SUBDIRS,    /* %TRUE only if the store/folder
                   * has subfolders which have not yet
                   * been added to the tree */
    NUM_COLUMNS
};


struct _EMFolderTreeModelStoreInfo {
    CamelStore *store;
    GtkTreeRowReference *row;
    GHashTable *full_hash;  /* maps CamelFolderInfo::full_name's to GtkTreeRowReferences */
    EAccount *account;

    char *display_name;

    unsigned int created_id;
    unsigned int deleted_id;
    unsigned int renamed_id;
    unsigned int subscribed_id;
    unsigned int unsubscribed_id;
};

struct _EMFolderTreeModel {
    GtkTreeStore parent_object;

    char *filename;            /* state filename */
    xmlDocPtr state;           /* saved expanded state from previous session */

    GHashTable *store_hash;    /* maps CamelStore's to store-info's */
    GHashTable *uri_hash;      /* maps URI's to GtkTreeRowReferences */

    EAccountList *accounts;
    GHashTable *account_hash;  /* maps accounts to store-info's */
    gulong account_changed_id;
    gulong account_removed_id;
};

struct _EMFolderTreeModelClass {
    GtkTreeStoreClass parent_class;

    /* signals */
    void     (* loading_row)        (EMFolderTreeModel *model,
                     GtkTreePath *path,
                     GtkTreeIter *iter);

    void     (* loaded_row)         (EMFolderTreeModel *model,
                     GtkTreePath *path,
                     GtkTreeIter *iter);

    void     (* folder_added)       (EMFolderTreeModel *model,
                     const char *path,
                     const char *uri);

    void     (* store_added)        (EMFolderTreeModel *model,
                     const char *uri);
};


GType em_folder_tree_model_get_type (void);


EMFolderTreeModel *em_folder_tree_model_new (const char *evolution_dir);


void em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *iter,
                       struct _EMFolderTreeModelStoreInfo *si,
                       CamelFolderInfo *fi, int fully_loaded);

void em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, const char *display_name);
void em_folder_tree_model_remove_store (EMFolderTreeModel *model, CamelStore *store);
void em_folder_tree_model_remove_folders (EMFolderTreeModel *model, struct _EMFolderTreeModelStoreInfo *si,
                      GtkTreeIter *toplevel);

char *em_folder_tree_model_get_selected (EMFolderTreeModel *model);
void em_folder_tree_model_set_selected (EMFolderTreeModel *model, const char *uri);

gboolean em_folder_tree_model_get_expanded (EMFolderTreeModel *model, const char *key);
void em_folder_tree_model_set_expanded (EMFolderTreeModel *model, const char *key, gboolean expanded);

gboolean em_folder_tree_model_get_expanded_uri (EMFolderTreeModel *model, const char *uri);
void em_folder_tree_model_set_expanded_uri (EMFolderTreeModel *model, const char *uri, gboolean expanded);

void em_folder_tree_model_save_state (EMFolderTreeModel *model);

typedef void (* EMFTModelExpandFunc) (EMFolderTreeModel *model, const char *path, void *user_data);
void em_folder_tree_model_expand_foreach (EMFolderTreeModel *model, EMFTModelExpandFunc func, void *user_data);

void em_folder_tree_model_set_unread_count (EMFolderTreeModel *model, CamelStore *store, const char *path, int unread);
gboolean em_folder_tree_model_is_type_inbox (EMFolderTreeModel *model, CamelStore *store, const char *full);
char * em_folder_tree_model_get_folder_name (EMFolderTreeModel *model, CamelStore *store, const char *full);

#ifdef __cplusplus
}
#endif /* __cplusplus */28 04:23:20 +0800'>2002-09-281-0/+5
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

delegator's calendar should have the delegator as Organizer).

	* idl/evolution-calendar.idl: add Cal_getEmailAddress, to return
	the email address associated with a backend (if any).

	* pcs/cal-backend.c (cal_backend_get_email_address): New.

	* pcs/cal-backend-file.c (cal_backend_file_get_email_address):
	Return NULL (for now).

	* pcs/cal.c (impl_Cal_get_email_address): Implement this by
	calling cal_backend_get_email_address and returning a NotFound
	exception if it returns NULL.

	* cal-client/cal-client.c (cal_client_get_email_address): New.
	(cal_client_init, cal_client_destroy, etc): initialize/free
	email_address

	* gui/dialogs/event-editor.c (event_editor_construct): Split this
	out of event_editor_init. Take and set a CalClient.
	(event_editor_new): Take a CalClient.

	* gui/dialogs/task-editor.c (task_editor_construct,
	task_editor_new): Likewise.

	* gui/dialogs/meeting-page.c (meeting_page_new,
	meeting_page_construct): Take a CalClient and call
	cal_client_get_email_address to find the default organizer
	address. (Also fix a bug if the default account's name has
	non-ASCII characters.)

	* gui/itip-utils.c (comp_from): New. When sending a REQUEST or
	CANCEL, use the Organizer as the From address.
	(itip_send_comp): Call comp_from and pass the result to
	Composer_setHeaders.

	* gui/comp-editor-factory.c (edit_existing, edit_new): Pass the
	CalClient to event_editor_new/task_editor_new

	* gui/e-calendar-table.c (open_task): Likewise.

	* gui/e-tasks.c (e_tasks_new_task): Likewise.

	* gui/gnome-cal.c (gnome_calendar_edit_object,
	gnome_calendar_new_task): Likewise.

svn path=/trunk/; revision=18253



* Should fix once for all #24210Rodrigo Moya2002-09-261-2/+2
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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

	Should fix once for all #24210

	* idl/evolution-calendar.idl: changed the notifyObjUpdated method
	of the QueryListener interface accept a list of UIDs.

	* cal-client/query-listener.[ch] (impl_notifyObjUpdated): likewise for
	the QueryListener class.

	* cal-client/cal-query.c (obj_updated_cb): changed to adapt the
	multiple-id's received in the QueryListener class' signal to the
	one-by-one update notification of the public CalQuery class, thus
	keeping the changes needed for this minimal.

	* pcs/query.c (add_component, start_cached_query_cb): changed to
	send sequences of UIDs.

svn path=/trunk/; revision=18232



* provide error message param, give a dialog with the message if we get aJP Rosevear2002-09-051-1/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2002-09-04  JP Rosevear  <jpr@ximian.com>

	* gui/itip-utils.c (comp_server_send): provide error message
	param, give a dialog with the message if we get a busy result;
	return TRUE if we succeed
	(itip_send_comp): bail out if we had a problem sending via the
	server

	* cal-client/cal-client.c (cal_client_send_object): pass back
	error message if we get the busy exception in the new param

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

	* pcs/cal.c (impl_Cal_send_object): dump backend error message
	into Busy exception

	* pcs/cal-backend.h: update proto

	* pcs/cal-backend.c (cal_backend_send_object): take/pass new error
	message parameter

	* pcs/cal-backend-file.c (cal_backend_file_send_object): take new param

	* idl/evolution-calendar.idl: add errorMsg to Busy exception

svn path=/trunk/; revision=17964



* just return the object untouched since we don't send anythingJP Rosevear2002-08-081-0/+5
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2002-08-07  JP Rosevear  <jpr@ximian.com>

	* pcs/cal-backend-file.c (cal_backend_file_send_object): just
	return the object untouched since we don't send anything

	* pcs/cal-backend.c (cal_backend_remove_object): call virtual method

	* pcs/cal-backend.h: add send result codes, new proto

	* pcs/cal.c (impl_Cal_send_object): implement sendObject corba call
	(cal_class_init): add to epv

	* gui/itip-utils.c (comp_toplevel_with_zones): utility function to
	create icalcomponent with necessary timezone info
	(comp_has_attendee): see if attendee is in the attendee list
	(comp_server_send): use above and remove attendees if the server
	sends them

	* gui/e-itip-control.c (show_current_todo): remove unused var

	* idl/evolution-calendar.idl: add Busy exception and

	* cal-client/cal-client.c (cal_client_send_object): send object
	via the server (if the server can)

	* cal-client/cal-client.h: add send results and new proto

svn path=/trunk/; revision=17734



* added support for CAL_CLIENT_OPEN_PERMISSION_DENIED error code.Rodrigo Moya2002-05-171-1/+2
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2002-05-16  Rodrigo Moya <rodrigo@ximian.com>

	* gui/gnome-cal.c (client_cal_opened_cb): added support for
	CAL_CLIENT_OPEN_PERMISSION_DENIED error code.
	(permission_error): new function to display 'Permission Denied'
	error message when opening the calendar.

	* gui/e-tasks.c: likewise.

	* idl/evolution-calendar.idl: added PERMISSION_DENIED to Listener's
	OpenStatus enumeration.

	* cal-client/cal-client.c (cal_opened_cb): added code for retrieving
	'Permission Denied' errors, and convert it to CalClientOpenStatus
	values.

	* pcs/cal-factory.c (open_backend): added code for informing of
	'Permission Denied' errors.

svn path=/trunk/; revision=16933



* added PermissionDenied exception and make it be raised in open,Rodrigo Moya2002-05-171-3/+5
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2002-05-16  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: added PermissionDenied exception and
	make it be raised in open, updateObjects and removeObject.

	* pcs/cal-backend.h: added CAL_BACKEND_OPEN_PERMISSION_DENIED to
	CalBackendOpenStatus enumeration, added CalBackendResult enumeration.

	* pcs/cal.c:
	* pcs/cal-backend.c:
	* pcs/cal-backend-file.c: adapted to changes in update_objects and
	remove_object methods.

	* cal-client/cal-client.[ch]: added CalClientResult enumeration.
	(cal_client_update_object, cal_client_update_objects,
	 cal_client_remove_object): changed to return a CalClientResult.

	* conduits/calendar/calendar-conduit.c:
	* calendar/conduits/todo/todo-conduit.c:
	* importers/icalendar-importer.c:
	* gui/dialogs/comp-editor.c:
	* gui/calendar-model.c:
	* gui/e-calendar-table.c:
	* gui/e-day-view.c:
	* gui/e-itip-control.c:
	* gui/e-week-view.c:
	* gui/comp-util.c:
	* gui/e-tasks.c:
	* gui/tasks-migrate.c: adapted to changes in cal_client_update_object(s)
	and cal_client_remove_object.

svn path=/trunk/; revision=16932



* add all day event editor modeJP Rosevear2002-03-151-2/+3
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2002-03-14  JP Rosevear  <jpr@ximian.com>

	* idl/evolution-calendar.idl: add all day event editor mode

	* gui/component-factory.c: clean up exception handling
	(sc_user_create_new_item_cb): support the all day event id
	(create_object): add a user creatable all day appointment item

	* gui/comp-editor-factory.c (get_default_event): get a default
	event either all day or starting at the top of the hour
	(get_default_task): get a default task
	(edit_new): support the all day event mode

	* gui/calendar-commands.c: remove unused functions/verbs

svn path=/trunk/; revision=16157



* pass meeting boolean for gnome_calendar_edit_object andJP Rosevear2002-02-081-1/+6
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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

	* gui/e-day-view.c: pass meeting boolean for
	gnome_calendar_edit_object and gnome_calendar_new_appointment_for

	* gui/e-week-view-event-item.c: ditto

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

	* gui/tasks-control.c (confirm_expunge): kill warning

	* gui/calendar-commands.c (new_meeting_cb): show a new meeting
	dialog
	(new_event_cb): pass new param

	* gui/gnome-cal.c (gnome_calendar_edit_object): take meeting
	boolean and show meeting page if true
	(gnome_calendar_new_appointment_for): takeing meeting param and
	pass to above
	(gnome_calendar_new_appointment): add new param

	* gui/gnome-cal.h: update proto

	* gui/component-factory.c (create_component): take a comp editor
	mode, determine vtype
	(sc_user_create_new_item_cb): check for meeting user creatable
	item
	(create_object): add meeting as user creatable item

	* gui/comp-editor-factory.c (edit_new): get a comp editor mode
	now, determine vtype and show meeting page if required
	(queue_edit_new): get comp editor mode
	(impl_editNew): ditto, plus queue the mode directly instead of
	determining the vtype

	* gui/dialogs/event-editor.c (show_meeting): new internal util
	function to show meeting page
	(event_editor_show_meeting): show the meeting
	(schedule_meeting_cmd): use show_meeting

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

	* idl/evolution-calendar.idl: editNew takes a mode rather than a
	type now

	* cal-util/Makefile.am: fix includes

svn path=/trunk/; revision=15595



* go slow and clear the map if the last uri and the current uri do not matchJP Rosevear2001-12-191-1/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2001-12-19  JP Rosevear  <jpr@ximian.com>

	* conduits/calendar/calendar-conduit.c (check_for_slow_setting):
	go slow and clear the map if the last uri and the current uri do
	not match
	(post_sync): save the last uri

	* conduits/calendar/calendar-conduit-config.h: handle a last uri
	config option

	* conduits/todo/todo-conduit-config.h: ditto

    	* conduits/calendar/calendar-conduit.c (start_calendar_server):
    	use the open_default_calendar method

    	* conduits/todo/todo-conduit.c (start_calendar_server): same as above

    	* cal-client/Makefile.am: link with bonobo conf

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

    	* idl/evolution-calendar.idl: make sure open method raises
    	appropriate exceptions

     	* gui/e-itip-control.c (start_calendar_server): use
     	cal_client_open_default_* calls

     	* cal-client/cal-client.c (real_open_calendar): do the real work
     	of loading
     	(cal_client_open_calendar): use above
     	(get_fall_back_uri): get the basic local uri
     	(get_default_uri): get the default uri from the config db
     	(cal_client_open_default_calendar): open the default uri or the
     	fallback if the method is unsupported
     	(cal_client_open_default_tasks): same for tasks

svn path=/trunk/; revision=15179



* added setDefaultTimezone() method.Damon Chaplin2001-10-231-8/+14
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Adds session management for the alarm daemon. Also makes it store a listFederico Mena Quintero2001-10-191-5/+8
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2001-10-18  Federico Mena Quintero  <federico@ximian.com>

	Adds session management for the alarm daemon.  Also makes it store
	a list of calendars to be monitored.  Those calendars will all be
	loaded when the alarm daemon starts up.

	* idl/evolution-calendar.idl (AlarmNotify): Removed the ::die()
	method.  The alarm daemon now handles termination via the session
	manager's commands.

	* gui/alarm-notify/notify-main.c (set_session_parameters): New
	function, sets some parameters so that the session manager can
	restart the daemon via the evolution-alarm-client program.  Also,
	sets up the "die" signal so that the daemon can terminate when the
	session ends.
	(load_calendars): New function to load the calendars on startup.
	(main): Set the session parameters.  Load the calendars on startup.

	* gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): New
	function, moved over from the impl_ function.  Added a
	load_afterwards argument to indicate whether the calendar should
	just be loaded or if it should also be added to the list of
	calendars to load on startup.
	(AlarmNotify_addCalendar): Use alarm_notify_add_calendar().
	(AlarmNotify_removeCalendar): Remove the calendar from the list of
	calendars to load on startup.

	* gui/alarm-notify/save.c (save_calendars_to_load): New function,
	saves a sequence of the URIs to load.
	(get_calendars_to_load): New function, loads a sequence of
	calendars to load.

	* gui/alarm-notify/alarm.h: Removed stale prototype for alarm_init().

	* gui/component-factory.c (remove_folder): Ask the alarm daemon to
	stop monitoring alarms for the folder that is being deleted.

svn path=/trunk/; revision=13763



* allow some decent exceptionsJP Rosevear2001-10-181-1/+2
| 
| 
| 
| 
| 
| 
| 
| 

2001-10-17  JP Rosevear  <jpr@ximian.com>

	* idl/evolution-calendar.idl: allow some decent exceptions

svn path=/trunk/; revision=13726



* added InvalidURI and UnsupportedMethod exceptions to the CalFactoryRodrigo Moya2001-09-271-0/+2
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-261-6/+19
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-261-0/+9
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* new class for managing multiple calendars, with an API very similar to theRodrigo Moya2001-09-191-1/+5
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Fixes bug #7879, a query may receive an update notification from theFederico Mena Quintero2001-08-291-2/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* The Wombat now keeps track of which categories are present in the objectsFederico Mena Quintero2001-08-011-0/+6
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* New files with a derivative of ESearchBar that generates sexps forFederico Mena Quintero2001-07-281-0/+16
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2001-07-27  Federico Mena Quintero  <federico@ximian.com>

	* gui/cal-search-bar.[ch]: New files with a derivative of
	ESearchBar that generates sexps for calendar queries directly.

	* gui/gnome-cal.c (setup_widgets): Use CalSearchBar instead of
	ESearchBar.

	* gui/e-calendar-table.h (ECalendarTable): Removed the ->colors
	array since it is handled by ETableExtras now.

	* gui/e-calendar-table.[ch]: Removed the subset_model.  Now we use
	the live query facility to filter tasks.  Removed the filter
	function stuff as well.

	* gui/e-tasks.c (e_tasks_construct): Use
	calendar_model_set_cal_client() directly instead of
	e_calendar_table_set_model().
	(setup_widgets): Create a calendar search bar for the tasks
	component.
	(search_bar_sexp_changed_cb): Set the query sexp on the table model.
	(e_tasks_on_filter_selected): Regenerate the query from the
	selected category and the current sexp.
	(update_query): New convenience function to recompute the real
	query sexp.

	* gui/gnome-cal.c (gnome_calendar_construct): Likewise.

	* gui/e-calendar-table.c (e_calendar_table_set_cal_client):
	Removed function; people are now supposed to get the model from
	the calendar table and operate on it.

	* gui/calendar-commands.c (verbs): Consistency fixes with the XML
	file.
	(pixmaps): Likewise.

	* gui/Makefile.am (evolution_calendar_SOURCES): Added
	cal-search-bar.[ch] to the list of sources.

2001-07-20  Federico Mena Quintero  <federico@ximian.com>

	* idl/evolution-calendar.idl (CompEditorFactory): New interface to
	a centralized factory for calendar component editors.  Has
	editExisting() and editNew() methods to edit an existing component
	from a URI/UID pair, and to create a new component in a calendar
	that is in a particular URI, respectively.

	* gui/comp-editor-factory.[ch]: Implementation files for the
	component editor factory.

	* gui/GNOME_Evolution_Calendar.oaf.in: Added the CompEditorFactory
	stuff.

	* gui/Makefile.am (evolution_calendar_SOURCES): Added
	comp-editor-factory.[ch] to the list of sources.

svn path=/trunk/; revision=11455



* renamed updateObject to updateObjects and removed the UID argument, sinceDamon Chaplin2001-07-121-1/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* cal-client/cal-client.[hc] cal-util/cal-component.cDamon Chaplin2001-07-031-1/+21
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-1/+2
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-231-1/+1
| 
| 
| 
| 
| 
| 

helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440



* changed getFreeBusy method to return a CalObj instead of a sequenceRodrigo Moya2001-06-221-1/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-201-0/+3
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-15/+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/+16
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Engine for live queries to calendars. A query object watches a CalBackendFederico Mena Quintero2001-03-301-1/+50
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Switched to using our own refcounted structure for loaded clients.Federico Mena Quintero2001-02-241-1/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2001-02-23  Federico Mena Quintero  <federico@ximian.com>

	* gui/alarm-notify/alarm-notify.c (AlarmNotify_addCalendar):
	Switched to using our own refcounted structure for loaded clients.
	(AlarmNotify_removeCalendar): Ditto.  Also, do the full
	destruction of the client.
	(alarm_notify_destroy): Destroy each element in the hash table.

	* cal-client/cal-client.c (cal_client_construct): Test for
	exceptions from OAF when activating the Wombat calendar factory.

	* gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.oaf.in:
	New .oaf.in file.

	* gui/alarm-notify/Makefile.am (oaf_in_files): Updated.

	* gui/GNOME_Evolution_Calendar.oaf.in: Put all the servers here
	instead of in a million files.

	* gui/GNOME_Evolution_Calendar_Control.oaf.in: Removed file.

	* gui/GNOME_Evolution_Calendar_gnomecal.oaf.in: Removed *REALLY*
	obsolete file.

	* gui/Makefile.am (oaf_in_files): Updated.

svn path=/trunk/; revision=8375



* Added a `registered' field. (cal_factory_oaf_register): New function; nowFederico Mena Quintero2001-02-211-2/+11
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Ximianified email addresses and copyrights.Federico Mena Quintero2001-01-171-14/+11
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* New interface for the alarm notification system.Federico Mena Quintero2001-01-101-0/+9
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

2001-01-09  Federico Mena Quintero  <federico@helixcode.com>

	* idl/evolution-calendar.idl (AlarmNotify): New interface for the
	alarm notification system.

	* gui/alarm-notify: New directory for the alarm notification
	daemon and its auxiliary stuff.

	* gui/alarm-notify/alarm.[ch]: Moved over from gui/alarm.[ch].

	* gui/alarm-notify/alarm-queue.[ch]: Moved over from
	gui/alarm-notify.[ch].  Renamed functions from alarm_notify_*() to
	alarm_queue_*().

	* gui/alarm-notify/alarm-notify.[ch]: Implementation of the
	GNOME::Evolution::Calendar::AlarmNotify interface.

	* gui/Makefile.am (evolution_calendar_LDADD): Removed the
	LINK_FLAGS variable and reordered the libraries to remove some
	duplicated ones.
	(SUBDIRS): Added the alarm-notify directory.

svn path=/trunk/; revision=7338



* Alarm instance generation support for the Wombat.Federico Mena Quintero2000-12-191-26/+38
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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-2/+2
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Update so as not to conflict with calendar (next_changed_item): update toJP Rosevear2000-12-071-7/+8
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* A very, long, very tedious IDL API rename and re-scoping;Michael Meeks2000-11-111-18/+23
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Remove pilot cruft. All pilot stuff is in the conduits now and uses theJP Rosevear2000-10-161-19/+0
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Add some other cases where a slow sync is in order (pre_sync): Pre loadJP Rosevear2000-09-201-0/+16
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* Added a get_objects_in_range() method. Takes in a time range and the typeFederico Mena Quintero2000-08-091-2/+3
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* New function. (scan_property): Handle the RDATE property. (scan_period):Federico Mena Quintero2000-07-261-2/+1
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

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



* server code to service these:Seth Alves2000-06-291-0/+20
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 

* 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



* Added a get_n_objects() method.Federico Mena Quintero2000-06-09