[nautilus-sendto] Port to GSettings



commit cc36a0c5956127e5d52210197d6cf3c2eb5de036
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Jun 23 19:03:29 2010 +0100

    Port to GSettings
    
    And disable the bluetooth plugin for now (the gnome-bluetooth
    version is already ported to GSettings)

 Makefile.am                                  |    9 +----
 configure.in                                 |   13 ++-----
 nst.schemas.in                               |   35 -------------------
 po/POTFILES.in                               |    3 +-
 src/Makefile.am                              |   10 +++++-
 src/nautilus-sendto-command.c                |   48 ++++++++++++-------------
 src/nautilus-sendto-convert                  |    3 ++
 src/org.gnome.Nautilus.Sendto.gschema.xml.in |   20 +++++++++++
 8 files changed, 62 insertions(+), 79 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index be84bf5..18eb6a9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 SUBDIRS = src docs po
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-gtk-doc --with-nautilusdir='$${libdir}/nautilus/extensions-2.0-distcheck'
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --with-nautilusdir='$${libdir}/nautilus/extensions-2.0-distcheck'
 
 man_MANS = nautilus-sendto.1
 
@@ -16,7 +16,7 @@ EXTRA_DIST =                    \
 	$(man_MANS)             \
 	$(schema_in_files)
 
-CLEANFILES = 			\
+CLEANFILES =			\
 	$(schema_DATA)
 
 DISTCLEANFILES =                        \
@@ -25,11 +25,6 @@ DISTCLEANFILES =                        \
 	intltool-merge                  \
 	intltool-update
 
-schema_in_files = nst.schemas.in
-schemadir = $(sysconfdir)/gconf/schemas
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
- INTLTOOL_SCHEMAS_RULE@
-
 # Build ChangeLog from GIT history
 ChangeLog:
 	@if test -f $(top_srcdir)/.git/HEAD; then \
diff --git a/configure.in b/configure.in
index 93a4f1b..47f045e 100644
--- a/configure.in
+++ b/configure.in
@@ -15,6 +15,7 @@ AC_PROG_CC
 AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 AC_PROG_MAKE_SET
+GLIB_GSETTINGS
 
 dnl gtk-doc checks
 GTK_DOC_CHECK(1.9)
@@ -29,11 +30,10 @@ ERROR_CFLAGS="-Wall -Wextra -Werror -Wno_missing_field_initializers -Wno_unused_
 
 dnl --------------------------------------------------
 
-GLIB_REQUIRED=2.6.0
+GLIB_REQUIRED=2.25.9
 GTHREAD_REQUIRED=2.6.0
 GTK_REQUIRED=2.90.3
 EBOOK_REQUIRED=1.5.3
-GCONF_REQUIRED=2.13.0
 NAUTILUS_EXTENSION=2.31.3
 DBUS_REQUIRED=1.0
 DBUS_GLIB_REQUIRED=0.60
@@ -42,7 +42,6 @@ GUPNP_REQUIRED=0.13
 AC_SUBST(GLIB_REQUIRED)
 AC_SUBST(GTHREAD_REQUIRED)
 AC_SUBST(GTK_REQUIRED)
-AC_SUBST(GCONF_REQUIRED)
 AC_SUBST(EBOOK_REQUIRED)
 AC_SUBST(NAUTILUS_EXTENSION)
 AC_SUBST(BLUETOOTH_REQUIRED)
@@ -53,8 +52,7 @@ PKG_CHECK_MODULES(NAUTILUS_SENDTO,\
 	 glib-2.0 >= $GLIB_REQUIRED                \
 	 gthread-2.0 >= $GTHREAD_REQUIRED         \
 	 gmodule-2.0 >= $GLIB_REQUIRED		  \
-	 gtk+-3.0    >= $GTK_REQUIRED             \
-	 gconf-2.0 >= $GCONF_REQUIRED)
+	 gtk+-3.0    >= $GTK_REQUIRED)
 AC_SUBST(NAUTILUS_SENDTO_CFLAGS)
 AC_SUBST(NAUTILUS_SENDTO_LIBS)
 
@@ -131,7 +129,7 @@ for plugin in ${used_plugins}; do
 	case ${plugin} in
 		bluetooth)
 			PKG_CHECK_MODULES(BLUETOOTH, dbus-glib-1 >= $DBUS_GLIB_REQUIRED,
-					  enable_bluetooth=yes, enable_bluetooth=no)
+					  enable_bluetooth=no, enable_bluetooth=no)
 			if test "${enable_bluetooth}" != "yes" ; then
 				plugin_error_or_ignore "you need dbus-glib to build the Bluetooth plugin"
 				add_plugin="0"
@@ -248,9 +246,6 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [GetText Package])
 
 AM_GLIB_GNU_GETTEXT
 
-AC_PATH_PROG(GCONFTOOL, gconftool-2)
-AM_GCONF_SOURCE_2
-
 AC_OUTPUT([
 Makefile
 src/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a66fef3..abc792f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,13 +1,12 @@
 # List of source files containing translatable strings.
 # Please keep this file sorted alphabetically.
-nst.schemas.in
 src/nautilus-nste.c
 src/nautilus-nste.h
 src/nautilus-sendto-command.c
 src/nautilus-sendto-module.c
+src/org.gnome.Nautilus.Sendto.gschema.xml.in
 [type: gettext/glade]src/nautilus-sendto.ui
 src/plugins/bluetooth/bluetooth.c
-src/plugins/empathy/empathy.c
 src/plugins/evolution/evolution.c
 src/plugins/evolution/e-contact-entry.c
 src/plugins/gajim/gajim.c
diff --git a/src/Makefile.am b/src/Makefile.am
index ee7567f..4239b59 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -61,11 +61,19 @@ nst-enum-types.c: $(nst_headers_to_scan_for_enums) Makefile nst-enum-types.h
 			--fhead "#include <nautilus-sendto-plugin.h>\n" \
 			--fhead "#include \"nst-enum-types.h\"\n" \
 			--fhead "#include <glib-object.h>" \
-		      	--fprod "\n/* enumerations from \"@filename \" */" \
+			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" 	\
 			--vprod "      { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
 			--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_ type@_register_static (\"@EnumName \", values);\n  }\n  return etype;\n}\n" \
 		$(nst_headers_to_scan_for_enums)) > $@
 
+convertdir=$(datadir)/GConf/gsettings
+convert_DATA=nautilus-sendto-convert
+
+gsettingsschema_in_files = org.gnome.Nautilus.Sendto.gschema.xml.in
+gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
+
 EXTRA_DIST = $(ui_DATA) nautilus-sendto.pc.in
 CLEANFILES = $(nst_built_headers) $(nst_built_cfiles)
diff --git a/src/nautilus-sendto-command.c b/src/nautilus-sendto-command.c
index 92b96bb..1496411 100644
--- a/src/nautilus-sendto-command.c
+++ b/src/nautilus-sendto-command.c
@@ -27,12 +27,10 @@
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
 #include "nautilus-sendto-plugin.h"
 
-#define NAUTILUS_SENDTO_GCONF		"/desktop/gnome/nautilus-sendto"
-#define NAUTILUS_SENDTO_LAST_MEDIUM	NAUTILUS_SENDTO_GCONF"/last_medium"
-#define NAUTILUS_SENDTO_LAST_COMPRESS	NAUTILUS_SENDTO_GCONF"/last_compress"
+#define NAUTILUS_SENDTO_LAST_MEDIUM	"last-medium"
+#define NAUTILUS_SENDTO_LAST_COMPRESS	"last-compress"
 #define NAUTILUS_SENDTO_STATUS_LABEL_TIMEOUT_SECONDS 10
 
 #define UNINSTALLED_PLUGINDIR "plugins/removable-devices"
@@ -56,7 +54,7 @@ GList *plugin_list = NULL;
 GHashTable *hash ;
 guint option = 0;
 
-static GConfClient *gconf_client = NULL;
+static GSettings *settings = NULL;
 
 typedef struct _NS_ui NS_ui;
 
@@ -218,10 +216,9 @@ pack_files (NS_ui *ui)
 		g_assert_not_reached ();
 	}
 
-	gconf_client_set_int(gconf_client, 
-			     NAUTILUS_SENDTO_LAST_COMPRESS, 
-			     gtk_combo_box_get_active(GTK_COMBO_BOX(ui->pack_combobox)), 
-			     NULL);
+	g_settings_set_int (settings,
+			    NAUTILUS_SENDTO_LAST_COMPRESS,
+			    gtk_combo_box_get_active(GTK_COMBO_BOX(ui->pack_combobox)));
 
 	cmd = g_string_new ("");
 	g_string_printf (cmd, "%s --add-to=\"%s/%s%s\"",
@@ -301,13 +298,14 @@ send_button_cb (GtkWidget *widget, NS_ui *ui)
 		}
 	}
 
-	gconf_client_set_string (gconf_client, 
-				NAUTILUS_SENDTO_LAST_MEDIUM, p->info->id, NULL);
+	g_settings_set_string (settings,
+			       NAUTILUS_SENDTO_LAST_MEDIUM,
+			       p->info->id);
 
 	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui->pack_checkbutton))){
 		f = pack_files (ui);
 		if (f != NULL) {
-			GList *packed_file = NULL;		
+			GList *packed_file = NULL;
 			packed_file = g_list_append (packed_file, f);
 			if (!p->info->send_files (p, w, packed_file)) {
 				g_list_free (packed_file);
@@ -440,8 +438,8 @@ set_model_for_options_combobox (NS_ui *ui)
 
 	model = gtk_list_store_new (NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING);
 
-	last_used = gconf_client_get_string (gconf_client,
-			NAUTILUS_SENDTO_LAST_MEDIUM, NULL);
+	last_used = g_settings_get_string (settings,
+					   NAUTILUS_SENDTO_LAST_MEDIUM);
 
 	for (aux = plugin_list; aux; aux = aux->next) {
 		p = (NstPlugin *) aux->data;
@@ -527,12 +525,12 @@ update_button_image (GtkSettings *settings,
 static void
 nautilus_sendto_create_ui (void)
 {
-	GtkBuilder *app;	
+	GtkBuilder *app;
 	GError* error = NULL;
 	NS_ui *ui;
 	gboolean one_file = FALSE;
 	gboolean supports_dirs;
-	GtkSettings *settings;
+	GtkSettings *gtk_settings;
 	GtkWidget *button_image;
 
 	app = gtk_builder_new ();
@@ -556,15 +554,15 @@ nautilus_sendto_create_ui (void)
 	ui->status_label = GTK_WIDGET (gtk_builder_get_object (app, "status_label"));
 	ui->status_image = GTK_WIDGET (gtk_builder_get_object (app, "status_image"));
 
-	settings = gtk_settings_get_default ();
+	gtk_settings = gtk_settings_get_default ();
 	button_image = GTK_WIDGET (gtk_builder_get_object (app, "image1"));
-	g_signal_connect (G_OBJECT (settings), "notify::gtk-button-images",
+	g_signal_connect (G_OBJECT (gtk_settings), "notify::gtk-button-images",
 			  G_CALLBACK (update_button_image), button_image);
-	update_button_image (settings, NULL, button_image);
+	update_button_image (gtk_settings, NULL, button_image);
 
- 	gtk_combo_box_set_active (GTK_COMBO_BOX(ui->pack_combobox), 
- 		gconf_client_get_int(gconf_client, 
- 				NAUTILUS_SENDTO_LAST_COMPRESS, NULL));
+	gtk_combo_box_set_active (GTK_COMBO_BOX(ui->pack_combobox),
+				  g_settings_get_int (settings,
+						      NAUTILUS_SENDTO_LAST_COMPRESS));
 
 	if (file_list != NULL && file_list->next != NULL)
 		one_file = FALSE;
@@ -808,7 +806,7 @@ int main (int argc, char **argv)
 		return 1;
 	}
 
-	gconf_client = gconf_client_get_default();
+	settings = g_settings_new ("org.gnome.Nautilus.Sendto");
 	nautilus_sendto_init ();
 	if (nautilus_sendto_plugin_init () == FALSE) {
 		GtkWidget *error_dialog;
@@ -831,9 +829,9 @@ int main (int argc, char **argv)
 		return 1;
 	}
 	nautilus_sendto_create_ui ();
-			
+
 	gtk_main ();
-	g_object_unref(gconf_client);
+	g_object_unref(settings);
 
 	return 0;
 }
diff --git a/src/nautilus-sendto-convert b/src/nautilus-sendto-convert
new file mode 100644
index 0000000..8aa3bc3
--- /dev/null
+++ b/src/nautilus-sendto-convert
@@ -0,0 +1,3 @@
+[org.gnome.Nautilus.Sendto]
+last-medium = /desktop/gnome/nautilus-sendto/last_medium
+last-compress = /desktop/gnome/nautilus-sendto/last_compress
diff --git a/src/org.gnome.Nautilus.Sendto.gschema.xml.in b/src/org.gnome.Nautilus.Sendto.gschema.xml.in
new file mode 100644
index 0000000..3ec3bef
--- /dev/null
+++ b/src/org.gnome.Nautilus.Sendto.gschema.xml.in
@@ -0,0 +1,20 @@
+<schemalist>
+  <schema id="org.gnome.Nautilus.Sendto" path="/apps/nautilus-sendto/" gettext-domain="nautilus-sendto">
+    <key name="last-medium" type="s">
+      <default>''</default>
+      <summary>Last plugin used to send</summary>
+      <description>
+        Used to store which plugin was used the last time
+        files were sent using nautilus-sendto.
+      </description>
+    </key>
+    <key name="last-compress" type="i">
+      <default>0</default>
+      <summary>Last type of archive used</summary>
+      <description>
+        Used to store which type of archive was used the last time
+        (0: zip, 1: tar.gz, 2: tar.bz2).
+      </description>
+    </key>
+  </schema>
+</schemalist>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]