aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2003-03-05 06:02:01 +0800
committerJP Rosevear <jpr@src.gnome.org>2003-03-05 06:02:01 +0800
commitaf8947c7c413379f6eca5fe81b930a5e0014bc8c (patch)
tree9a136a13172c2ac0d1e9ef8b18cd1e30cf95934d /calendar/pcs
parentc1e2563e393921af0dea2d29eeb13d58e1bcd91b (diff)
downloadgsoc2013-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.c8
-rw-r--r--calendar/pcs/cal-backend.c10
-rw-r--r--calendar/pcs/cal-backend.h2
-rw-r--r--calendar/pcs/cal.c25
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;