diff options
author | JP Rosevear <jpr@ximian.com> | 2003-03-05 06:02:01 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2003-03-05 06:02:01 +0800 |
commit | af8947c7c413379f6eca5fe81b930a5e0014bc8c (patch) | |
tree | 9a136a13172c2ac0d1e9ef8b18cd1e30cf95934d /calendar/pcs | |
parent | c1e2563e393921af0dea2d29eeb13d58e1bcd91b (diff) | |
download | gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar.gz gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar.bz2 gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar.lz gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar.xz gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.tar.zst gsoc2013-evolution-af8947c7c413379f6eca5fe81b930a5e0014bc8c.zip |
implement
2003-03-04 JP Rosevear <jpr@ximian.com>
* pcs/cal.c (impl_Cal_get_ldap_attribute): implement
* pcs/cal-backend.h: add virtual method
* pcs/cal-backend.c (cal_backend_get_ldap_attribute): call
get_ldap_attribute_method
* pcs/cal-backend-file.c (cal_backend_file_class_init): overrid
get_ldap_attribute method
* idl/evolution-calendar.idl: add getLdapAttribute method
* gui/e-meeting-model.c (process_section): take simple card list
as arg and try to use the ldap attribute (if any) as the attendee,
else use the email address
(select_names_ok_cb): get the simple card list
* cal-client/cal-client.h: add proto
* cal-client/cal-client.c (cal_client_init): init ldap_attribute
to NULL
(cal_client_destroy): free ldap_attribute
svn path=/trunk/; revision=20154
Diffstat (limited to 'calendar/pcs')
-rw-r--r-- | calendar/pcs/cal-backend-file.c | 8 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.c | 10 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.h | 2 | ||||
-rw-r--r-- | calendar/pcs/cal.c | 25 |
4 files changed, 45 insertions, 0 deletions
diff --git a/calendar/pcs/cal-backend-file.c b/calendar/pcs/cal-backend-file.c index 91081d77f0..7ab6506aa9 100644 --- a/calendar/pcs/cal-backend-file.c +++ b/calendar/pcs/cal-backend-file.c @@ -80,6 +80,7 @@ static const char *cal_backend_file_get_uri (CalBackend *backend); static gboolean cal_backend_file_is_read_only (CalBackend *backend); static const char *cal_backend_file_get_cal_address (CalBackend *backend); static const char *cal_backend_file_get_alarm_email_address (CalBackend *backend); +static const char *cal_backend_file_get_ldap_attribute (CalBackend *backend); static const char *cal_backend_file_get_static_capabilities (CalBackend *backend); static CalBackendOpenStatus cal_backend_file_open (CalBackend *backend, const char *uristr, @@ -180,6 +181,7 @@ cal_backend_file_class_init (CalBackendFileClass *class) backend_class->is_read_only = cal_backend_file_is_read_only; backend_class->get_cal_address = cal_backend_file_get_cal_address; backend_class->get_alarm_email_address = cal_backend_file_get_alarm_email_address; + backend_class->get_ldap_attribute = cal_backend_file_get_ldap_attribute; backend_class->get_static_capabilities = cal_backend_file_get_static_capabilities; backend_class->open = cal_backend_file_open; backend_class->is_loaded = cal_backend_file_is_loaded; @@ -441,6 +443,12 @@ cal_backend_file_get_cal_address (CalBackend *backend) } static const char * +cal_backend_file_get_ldap_attribute (CalBackend *backend) +{ + return NULL; +} + +static const char * cal_backend_file_get_alarm_email_address (CalBackend *backend) { /* A file backend has no particular email address associated diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c index 536501ce47..765d873f79 100644 --- a/calendar/pcs/cal-backend.c +++ b/calendar/pcs/cal-backend.c @@ -294,6 +294,16 @@ cal_backend_get_alarm_email_address (CalBackend *backend) } const char * +cal_backend_get_ldap_attribute (CalBackend *backend) +{ + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); + + g_assert (CLASS (backend)->get_ldap_attribute != NULL); + return (* CLASS (backend)->get_ldap_attribute) (backend); +} + +const char * cal_backend_get_static_capabilities (CalBackend *backend) { g_return_val_if_fail (backend != NULL, NULL); diff --git a/calendar/pcs/cal-backend.h b/calendar/pcs/cal-backend.h index ba73886bbd..962b468fc3 100644 --- a/calendar/pcs/cal-backend.h +++ b/calendar/pcs/cal-backend.h @@ -97,6 +97,7 @@ struct _CalBackendClass { const char *(* get_cal_address) (CalBackend *backend); const char *(* get_alarm_email_address) (CalBackend *backend); + const char *(* get_ldap_attribute) (CalBackend *backend); const char *(* get_static_capabilities) (CalBackend *backend); @@ -157,6 +158,7 @@ const char *cal_backend_get_uri (CalBackend *backend); const char *cal_backend_get_cal_address (CalBackend *backend); const char *cal_backend_get_alarm_email_address (CalBackend *backend); +const char *cal_backend_get_ldap_attribute (CalBackend *backend); const char *cal_backend_get_static_capabilities (CalBackend *backend); diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index 9040534940..bd6ffb4b38 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -125,6 +125,30 @@ impl_Cal_getAlarmEmailAddress (PortableServer_Servant servant, return str_email_address_copy; } + +/* Cal::get_ldap_attribute method */ +static CORBA_char * +impl_Cal_getLdapAttribute (PortableServer_Servant servant, + CORBA_Environment *ev) +{ + Cal *cal; + CalPrivate *priv; + const char *str_ldap_attr; + CORBA_char *str_ldap_attr_copy; + + cal = CAL (bonobo_object_from_servant (servant)); + priv = cal->priv; + + str_ldap_attr = cal_backend_get_ldap_attribute (priv->backend); + if (str_ldap_attr == NULL) { + bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_NotFound); + return CORBA_OBJECT_NIL; + } + + str_ldap_attr_copy = CORBA_string_dup (str_ldap_attr); + + return str_ldap_attr_copy; +} /* Cal::getSchedulingInformation method */ static CORBA_char * @@ -817,6 +841,7 @@ cal_class_init (CalClass *klass) epv->isReadOnly = impl_Cal_isReadOnly; epv->getCalAddress = impl_Cal_getCalAddress; epv->getAlarmEmailAddress = impl_Cal_getAlarmEmailAddress; + epv->getLdapAttribute = impl_Cal_getLdapAttribute; epv->getStaticCapabilities = impl_Cal_getStaticCapabilities; epv->setMode = impl_Cal_setMode; epv->countObjects = impl_Cal_countObjects; |