[balsa/gtk3] Revert from GSettings to GConf for default client
- From: Peter Bloomfield <PeterB src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/gtk3] Revert from GSettings to GConf for default client
- Date: Mon, 31 Jan 2011 02:02:00 +0000 (UTC)
commit e3b8a1d761d8c49539e453115d24dfe007a187a5
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sun Jan 30 21:01:31 2011 -0500
Revert from GSettings to GConf for default client
* configure.in:
* libinit_balsa/assistant_page_defclient.c
(balsa_druid_page_defclient):
* src/save-restore.c (config_defclient_save):
ChangeLog | 9 ++++
configure.in | 33 +++++++++-------
libinit_balsa/assistant_page_defclient.c | 29 ++++++++------
src/save-restore.c | 60 +++++++++++++++++++++---------
4 files changed, 86 insertions(+), 45 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index d45f89c..d33c8fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2011-01-30 Peter Bloomfield
+ Revert from GSettings to GConf for default client stuff
+
+ * configure.in:
+ * libinit_balsa/assistant_page_defclient.c
+ (balsa_druid_page_defclient):
+ * src/save-restore.c (config_defclient_save):
+
+2011-01-30 Peter Bloomfield
+
Silence whining from gcc-4.6
* libbalsa/files.c (libbalsa_icon_finder):
diff --git a/configure.in b/configure.in
index 730c663..f01567a 100644
--- a/configure.in
+++ b/configure.in
@@ -281,24 +281,27 @@ dnl #####################################################################
dnl GNOME libs
dnl #####################################################################
-AC_MSG_CHECKING([whether we have gnome-keyring])
-if $PKG_CONFIG --atleast-version=1.0 gnome-keyring-1; then
- gnome_extras="$gnome_extras gnome-keyring-1"
- AC_DEFINE(HAVE_GNOME_KEYRING,1,[Defined when gnome-keyring is there.])
- # Work around http://bugzilla.gnome.org/show_bug.cgi?id=556530
- if $PKG_CONFIG --atleast-version=2.24.1 gnome-keyring-1; then
- AC_DEFINE(HAVE_GNOME_KEYRING_24,1,
- [Defined with gnome-keyring-2.24 or newer.])
+if test x$with_gnome != xno; then
+ gnome_extras="gconf-2.0"
+ AC_MSG_CHECKING([whether we have gnome-keyring])
+ if $PKG_CONFIG --atleast-version=1.0 gnome-keyring-1; then
+ gnome_extras="$gnome_extras gnome-keyring-1"
+ AC_DEFINE(HAVE_GNOME_KEYRING,1,[Defined when gnome-keyring is there.])
+ # Work around http://bugzilla.gnome.org/show_bug.cgi?id=556530
+ if $PKG_CONFIG --atleast-version=2.24.1 gnome-keyring-1; then
+ AC_DEFINE(HAVE_GNOME_KEYRING_24,1,
+ [Defined with gnome-keyring-2.24 or newer.])
+ fi
+ with_gnome_keyring=yes
+ else
+ with_gnome_keyring=no
fi
- with_gnome_keyring=yes
+ AC_MSG_RESULT($with_gnome_keyring)
+ AC_DEFINE(HAVE_GNOME,1,[Defined when gnome libs are available.])
else
- with_gnome_keyring=no
-fi
-AC_MSG_RESULT($with_gnome_keyring)
-
-if test x$with_gnome != xno; then
- AC_DEFINE(HAVE_GNOME,1,[Defined when configured for Gnome.])
+ gnome_extras=""
fi
+AM_CONDITIONAL([BUILD_WITH_GNOME], [test $with_gnome = "yes"])
# GMime configuration
#
diff --git a/libinit_balsa/assistant_page_defclient.c b/libinit_balsa/assistant_page_defclient.c
index d491900..522ddf7 100644
--- a/libinit_balsa/assistant_page_defclient.c
+++ b/libinit_balsa/assistant_page_defclient.c
@@ -31,6 +31,7 @@
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <gconf/gconf-client.h>
#include <glib/gi18n.h>
#include "balsa-app.h"
@@ -79,18 +80,22 @@ balsa_druid_page_defclient(GtkAssistant *druid, GdkPixbuf *default_logo)
{
BalsaDruidPageDefclient *defclient;
GtkWidget *page;
- GSettings *settings;
-
- gchar *cmd;
- gboolean set_to_balsa_already;
-
- settings = g_settings_new("org.gnome.url-handlers.mailto");
- cmd = g_settings_get_string(settings, "command");
- set_to_balsa_already = cmd && !strncmp(cmd, "balsa", 5);
- g_free(cmd);
- if (set_to_balsa_already)
- return;
-
+ GConfClient *gc;
+
+ gc = gconf_client_get_default(); /* FIXME: error handling */
+ if(gc) {
+ GError *err = NULL;
+ gchar *cmd;
+ gboolean set_to_balsa_already;
+ cmd =
+ gconf_client_get_string
+ (gc, "/desktop/gnome/url-handlers/mailto/command", &err);
+ set_to_balsa_already = !err && cmd && strncmp(cmd,"balsa",5)==0;
+ if(err) g_error_free(err);
+ g_free(cmd);
+ if(set_to_balsa_already)
+ return;
+ }
defclient = g_new0(BalsaDruidPageDefclient, 1);
page = gtk_vbox_new(FALSE, FALSE);
gtk_assistant_append_page(druid, page);
diff --git a/src/save-restore.c b/src/save-restore.c
index ca0ed8c..5444e24 100644
--- a/src/save-restore.c
+++ b/src/save-restore.c
@@ -26,6 +26,9 @@
#include <stdlib.h>
#include <string.h>
+#if HAVE_GNOME
+#include <gconf/gconf-client.h>
+#endif
#include <glib/gi18n.h>
#include "balsa-app.h"
#include "server.h"
@@ -2122,27 +2125,48 @@ config_defclient_save(void)
{
static struct {
const char *key, *val;
- } settings_string[] = { {
- "command", "balsa -m \"%s\""}, {
- "description", "Email"}};
+ } gconf_string[] = {
+ {"/desktop/gnome/url-handlers/mailto/command", "balsa -m \"%s\""},
+ {"/desktop/gnome/url-handlers/mailto/description", "Email" }};
+ static struct {
+ const char *key; gboolean val;
+ } gconf_bool[] = {
+ {"/desktop/gnome/url-handlers/mailto/need-terminal", FALSE},
+ {"/desktop/gnome/url-handlers/mailto/enabled", TRUE}};
if (balsa_app.default_client) {
- GSettings *settings;
+ GError *err = NULL;
+ GConfClient *gc;
unsigned i;
-
- settings = g_settings_new("org.gnome.desktop.url-handlers.mailto");
- for (i = 0; i < G_N_ELEMENTS(settings_string); i++) {
- g_settings_set_string(settings, settings_string[i].key,
- settings_string[i].val);
+ gc = gconf_client_get_default(); /* FIXME: error handling */
+ if (gc == NULL) {
+ balsa_information(LIBBALSA_INFORMATION_WARNING,
+ _("Error opening GConf database\n"));
+ return;
+ }
+ for(i=0; i<ELEMENTS(gconf_string); i++) {
+ gconf_client_set_string(gc, gconf_string[i].key,
+ gconf_string[i].val, &err);
+ if (err) {
+ balsa_information(LIBBALSA_INFORMATION_WARNING,
+ _("Error setting GConf field: %s\n"),
+ err->message);
+ g_error_free(err);
+ return;
+ }
+ }
+ for(i=0; i<ELEMENTS(gconf_bool); i++) {
+ gconf_client_set_bool(gc, gconf_bool[i].key,
+ gconf_bool[i].val, &err);
+ if (err) {
+ balsa_information(LIBBALSA_INFORMATION_WARNING,
+ _("Error setting GConf field: %s\n"),
+ err->message);
+ g_error_free(err);
+ return;
+ }
+ g_object_unref(gc);
}
- g_settings_set_boolean(settings, "need-terminal", FALSE);
- g_object_unref(settings);
-
- settings =
- g_settings_new
- ("org.gnome.desktop.url-handlers.mailto-handlers.mailto");
- g_settings_set_boolean(settings, "enabled", TRUE);
- g_object_unref(settings);
}
}
-#endif /* HAVE_GNOME */
+#endif /* HAVE_GNOME */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]