Hi guys! Here goes the patch to create a new custom property for resources for Evolution Data Server (e-d-s) uid. The property is defined as not created by the user so planner doesn't show them in the GUI. The code already there work :) Cheers -- Alvaro
Index: src/planner-eds-plugin.c
===================================================================
RCS file: /cvs/gnome/planner/src/planner-eds-plugin.c,v
retrieving revision 1.2
diff -u -b -B -p -r1.2 planner-eds-plugin.c
--- src/planner-eds-plugin.c 10 Aug 2004 07:16:48 -0000 1.2
+++ src/planner-eds-plugin.c 11 Aug 2004 05:23:48 -0000
@@ -47,6 +47,8 @@
#include "planner-window.h"
#include "planner-plugin.h"
#include "planner-resource-cmd.h"
+#include <libplanner/mrp-object.h>
+#include <libplanner/mrp-property.h>
/* Evolution Data Server sources */
#include <libedataserver/e-source-list.h>
@@ -132,7 +134,9 @@ static void eds_resource_selected (
PlannerPlugin *plugin);
static void eds_import_resource (gchar *name,
gchar *email,
+ gchar *uid,
PlannerPlugin *plugin);
+static gboolean eds_create_uid_property (PlannerPlugin *plugin);
static void eds_load_resources (ESourceGroup *group,
PlannerPlugin *plugin,
const gchar *search);
@@ -618,11 +622,20 @@ eds_import_change_all (PlannerPlugin *pl
static void
eds_import_resource (gchar *name,
gchar *email,
+ gchar *uid,
PlannerPlugin *plugin)
{
MrpResource *resource = mrp_resource_new ();
+ gchar *note = _("Imported from Evolution Data Server");
planner_resource_cmd_insert (plugin->main_window, resource);
+ mrp_object_set (resource,
+ "type", MRP_RESOURCE_TYPE_WORK,
+ "units", 1,
+ "note", g_strdup_printf ("%s:\n%s", note, uid),
+ "eds-uid", g_strdup (uid),
+ NULL);
+
if (name) {
mrp_object_set (resource, "name", name, NULL);
}
@@ -698,6 +711,12 @@ eds_ok_button_clicked (GtkButton *bu
return;
}
+ /* Custom property for e-d-s resource UID */
+ if (!mrp_project_has_property (plugin->priv->project,
+ MRP_TYPE_RESOURCE, "eds-uid")) {
+ eds_create_uid_property (plugin);
+ }
+
do {
EContact *contact;
gboolean selected;
@@ -710,7 +729,11 @@ eds_ok_button_clicked (GtkButton *bu
if (selected) {
gchar *name = e_contact_get (contact, E_CONTACT_GIVEN_NAME);
gchar *email = e_contact_get (contact, E_CONTACT_EMAIL_1);
- eds_import_resource (name, email, plugin);
+ gchar *eds_uid = e_contact_get (contact, E_CONTACT_UID);
+ eds_import_resource (name, email, eds_uid, plugin);
+ g_free (name);
+ g_free (email);
+ g_free (eds_uid);
}
} while (gtk_tree_model_iter_next (priv->resources_model, &iter));
@@ -824,6 +847,29 @@ eds_dialog_close (PlannerPlugin *plugin)
g_object_unref (priv->glade);
gtk_widget_destroy (priv->dialog_get_resources);
+}
+
+/* FIXME: Undo support : planner-property-dialog.c */
+static gboolean
+eds_create_uid_property (PlannerPlugin *plugin)
+{
+ MrpProperty *property;
+
+ property = mrp_property_new ("eds-uid",
+ MRP_PROPERTY_TYPE_STRING,
+ _("Evolution Data Server UID"),
+ _("Identifier used by Evolution Data Server for resources"),
+ FALSE);
+
+ mrp_project_add_property (plugin->priv->project,
+ MRP_TYPE_RESOURCE,
+ property,
+ FALSE);
+ if (!mrp_project_has_property (plugin->priv->project,
+ MRP_TYPE_RESOURCE, "eds-uid")) {
+ return FALSE;
+ }
+ return TRUE;
}
/* FIXME: Undo support */
Attachment:
signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente