aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/ChangeLog8
-rw-r--r--addressbook/gui/component/addressbook-config.c73
2 files changed, 71 insertions, 10 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 3779ad54f2..71718d9da6 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -7,6 +7,14 @@
* gui/component/Makefile.am: Distribute openldap-extract.h.
+ * gui/component/addressbook-config.c: Include openldap-extract.h on
+ Windows. Include e-util-private.h to get redefinition of
+ EVOLUTION_GLADEDIR (as a call to a function) on Windows.
+ (query_for_supported_bases, eabc_general_name, eabc_general_host,
+ eabc_general_auth, eabc_details_search, eabc_details_limit,
+ addressbook_config_edit_source): Construct the path of the glade
+ file at run-time to enable install-anywhere on Windows.
+
* importers/evolution-ldif-importer.c (ldif_import)
* gui/widgets/eab-gui-util.c (eab_load_error_dialog): Use
g_filename_from_uri() instead of just stripping off the "file://"
diff --git a/addressbook/gui/component/addressbook-config.c b/addressbook/gui/component/addressbook-config.c
index e4c10032ae..310d433694 100644
--- a/addressbook/gui/component/addressbook-config.c
+++ b/addressbook/gui/component/addressbook-config.c
@@ -34,6 +34,13 @@
#include <bonobo/bonobo-generic-factory.h>
+#ifdef G_OS_WIN32
+/* Include <windows.h> early and work around DATADIR lossage */
+#define DATADIR crap_DATADIR
+#include <windows.h>
+#undef DATADIR
+#endif
+
#include <glade/glade.h>
#include "addressbook.h"
@@ -41,14 +48,20 @@
#include "addressbook-config.h"
#include "e-util/e-error.h"
+#include "e-util/e-util-private.h"
#include "addressbook/gui/widgets/eab-config.h"
#define d(x)
#ifdef HAVE_LDAP
-#include "ldap.h"
-#include "ldap_schema.h"
+#ifndef G_OS_WIN32
+#include <ldap.h>
+#include <ldap_schema.h>
+#else
+#include <winldap.h>
+#include "openldap-extract.h"
+#endif
#endif
#define LDAP_PORT_STRING "389"
@@ -389,8 +402,14 @@ query_for_supported_bases (GtkWidget *button, AddressbookSourceDialog *sdialog)
GtkWidget *supported_bases_table;
GladeXML *gui;
GtkTreeIter iter;
+ char *gladefile;
+
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, "supported-bases-dialog", NULL);
+ g_free (gladefile);
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "supported-bases-dialog", NULL);
dialog = glade_xml_get_widget (gui, "supported-bases-dialog");
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (sdialog->window));
@@ -565,12 +584,17 @@ eabc_general_name(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, str
const char *uri;
GtkWidget *w;
GladeXML *gui;
-
+ char *gladefile;
if (old)
return old;
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, item->label, NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, item->label, NULL);
+ g_free (gladefile);
+
w = glade_xml_get_widget(gui, item->label);
gtk_box_pack_start((GtkBox *)parent, w, FALSE, FALSE, 0);
@@ -692,11 +716,17 @@ eabc_general_host(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, str
char *uri, port[16];
LDAPURLDesc *lud;
GladeXML *gui;
+ char *gladefile;
if (!source_group_is_remote(sdialog->source_group))
return NULL;
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, item->label, NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, item->label, NULL);
+ g_free (gladefile);
+
w = glade_xml_get_widget(gui, item->label);
gtk_box_pack_start((GtkBox *)parent, w, FALSE, FALSE, 0);
@@ -768,11 +798,17 @@ eabc_general_auth(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, str
GtkWidget *w;
const char *tmp;
GladeXML *gui;
+ char *gladefile;
if (!source_group_is_remote(sdialog->source_group))
return NULL;
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, item->label, NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, item->label, NULL);
+ g_free (gladefile);
+
w = glade_xml_get_widget(gui, item->label);
gtk_box_pack_start((GtkBox *)parent, w, FALSE, FALSE, 0);
@@ -830,11 +866,17 @@ eabc_details_search(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, s
LDAPURLDesc *lud;
char *uri;
GladeXML *gui;
+ char *gladefile;
if (!source_group_is_remote(sdialog->source_group))
return NULL;
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, item->label, NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, item->label, NULL);
+ g_free (gladefile);
+
w = glade_xml_get_widget(gui, item->label);
gtk_box_pack_start((GtkBox *)parent, w, FALSE, FALSE, 0);
@@ -904,11 +946,17 @@ eabc_details_limit(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
GtkWidget *w;
const char *tmp;
GladeXML *gui;
+ char *gladefile;
if (!source_group_is_remote(sdialog->source_group))
return NULL;
- gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, item->label, NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ gui = glade_xml_new (gladefile, item->label, NULL);
+ g_free (gladefile);
+
w = glade_xml_get_widget(gui, item->label);
gtk_box_pack_start((GtkBox *)parent, w, FALSE, FALSE, 0);
@@ -1086,8 +1134,13 @@ addressbook_config_edit_source (GtkWidget *parent, ESource *source)
GSList *items = NULL;
EABConfigTargetSource *target;
char *xml;
+ char *gladefile;
- sdialog->gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "account-editor-notebook", NULL);
+ gladefile = g_build_filename (EVOLUTION_GLADEDIR,
+ GLADE_FILE_NAME,
+ NULL);
+ sdialog->gui = glade_xml_new (gladefile, "account-editor-notebook", NULL);
+ g_free (gladefile);
if (source) {
sdialog->original_source = source;