[Xfce4-commits] [apps/xfce4-screensaver] 384/425: Port org.xfce.screensaver.gschema.xml to Xfconf

noreply at xfce.org noreply at xfce.org
Mon Oct 15 01:53:51 CEST 2018


This is an automated email from the git hooks/post-receive script.

b   l   u   e   s   a   b   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-screensaver.

commit f8e14b09d84559075f9458b3f2f69f1d6d5099d9
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Tue Oct 9 20:16:50 2018 -0400

    Port org.xfce.screensaver.gschema.xml to Xfconf
---
 configure.ac                             |   4 +-
 data/Makefile.am                         |   2 +-
 data/org.xfce.screensaver.gschema.xml.in |  89 ------------------
 po/POTFILES.in                           |   1 -
 src/gs-lock-plug.c                       |  23 +----
 src/gs-prefs.c                           | 146 +++++++++++++----------------
 src/gs-prefs.h                           | 155 +++++++++++++++++++++++++++----
 src/xfce4-screensaver-preferences.c      | 114 +++++++++++------------
 8 files changed, 259 insertions(+), 275 deletions(-)

diff --git a/configure.ac b/configure.ac
index 431d76a..baabdc5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,7 +100,8 @@ PKG_CHECK_MODULES(XFCE_SCREENSAVER_CAPPLET,
         gio-2.0 >= $GLIB_REQUIRED_VERSION
         gtk+-3.0 >= $GTK_REQUIRED_VERSION
         libxklavier >= $LIBXKLAVIER_REQUIRED
-        libxfce4ui-2 >= $LIBXFCE4UI_REQUIRED)
+        libxfce4ui-2 >= $LIBXFCE4UI_REQUIRED
+        libxfconf-0 >= $LIBXFCONF_REQUIRED)
 AC_SUBST(XFCE_SCREENSAVER_CAPPLET_CFLAGS)
 AC_SUBST(XFCE_SCREENSAVER_CAPPLET_LIBS)
 
@@ -1127,7 +1128,6 @@ data/Makefile
 data/xfce4-screensavers.menu
 data/xfce4-screensaver.pc
 data/org.xfce.ScreenSaver.service
-data/org.xfce.screensaver.gschema.xml
 data/images/Makefile
 data/images/cosmos/Makefile
 savers/Makefile
diff --git a/data/Makefile.am b/data/Makefile.am
index b2eba9b..7221986 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -43,7 +43,7 @@ dbussessionservice_DATA = org.xfce.ScreenSaver.service
 @GSETTINGS_RULES@
 @INTLTOOL_XML_NOMERGE_RULE@
 
-gsettingsschema_in_files = org.xfce.screensaver.gschema.xml.in org.xfce.peripherals-keyboard-xkb.gschema.xml.in
+gsettingsschema_in_files = org.xfce.peripherals-keyboard-xkb.gschema.xml.in
 gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
 
 EXTRA_DIST = 				\
diff --git a/data/org.xfce.screensaver.gschema.xml.in b/data/org.xfce.screensaver.gschema.xml.in
deleted file mode 100644
index 7f48840..0000000
--- a/data/org.xfce.screensaver.gschema.xml.in
+++ /dev/null
@@ -1,89 +0,0 @@
-<schemalist gettext-domain="@GETTEXT_PACKAGE@">
-  <enum id="org.xfce.screensaver.Mode">
-    <value nick="blank-only" value="0"/>
-    <value nick="random" value="1"/>
-    <value nick="single" value="2"/>
-  </enum>
-  <schema id="org.xfce.screensaver" path="/org/xfce/screensaver/">
-    <key name="idle-activation-enabled" type="b">
-      <default>true</default>
-      <summary>Activate when idle</summary>
-      <description>Set this to TRUE to activate the screensaver when the session is idle.</description>
-    </key>
-    <key name="lock-enabled" type="b">
-      <default>true</default>
-      <summary>Lock on activation</summary>
-      <description>Set this to TRUE to lock the screen when the screensaver goes active.</description>
-    </key>
-    <key name="mode" enum="org.xfce.screensaver.Mode">
-      <default>'blank-only'</default>
-      <summary>Screensaver theme selection mode</summary>
-      <description>The selection mode used by screensaver. May be "blank-only" to enable the screensaver without using any theme on activation, "single" to enable screensaver using only one theme on activation (specified in "themes" key), and "random" to enable the screensaver using a random theme on activation.</description>
-    </key>
-    <key name="themes" type="as">
-      <default>[]</default>
-      <summary>Screensaver themes</summary>
-      <description>This key specifies the list of themes to be used by the screensaver. It's ignored when "mode" key is "blank-only", should provide the theme name when "mode" is "single", and should provide a list of themes when "mode" is "random".</description>
-    </key>
-    <key name="power-management-delay" type="i">
-      <default>30</default>
-      <summary>Time before power management baseline</summary>
-      <description>The number of seconds of inactivity before signalling to power management. This key is set and maintained by the session power management agent.</description>
-    </key>
-      <key name="cycle-delay" type="i">
-      <default>10</default>
-      <summary>Time before theme change</summary>
-      <description>The number of minutes to run before changing the screensaver theme.</description>
-    </key>
-    <key name="lock-delay" type="i">
-      <default>0</default>
-      <summary>Time before locking</summary>
-      <description>The number of minutes after screensaver activation before locking the screen.</description>
-    </key>
-    <key name="embedded-keyboard-enabled" type="b">
-      <default>false</default>
-      <summary>Allow embedding a keyboard into the window</summary>
-      <description>Set this to TRUE to allow embedding a keyboard into the window when trying to unlock. The "keyboard_command" key must be set with the appropriate command.</description>
-    </key>
-    <key name="embedded-keyboard-command" type="s">
-      <default>''</default>
-      <summary>Embedded keyboard command</summary>
-      <description>The command that will be run, if the "embedded_keyboard_enabled" key is set to TRUE, to embed a keyboard widget into the window. This command should implement an XEMBED plug interface and output a window XID on the standard output.</description>
-    </key>
-    <key name="logout-enabled" type="b">
-      <default>false</default>
-      <summary>Allow logout</summary>
-      <description>Set this to TRUE to offer an option in the unlock dialog to allow logging out after a delay. The delay is specified in the "logout_delay" key.</description>
-    </key>
-    <key name="logout-delay" type="i">
-      <default>120</default>
-      <summary>Time before logout option</summary>
-      <description>The number of minutes after the screensaver activation before a logout option will appear in the unlock dialog. This key has effect only if the "logout_enable" key is set to TRUE.</description>
-    </key>
-    <key name="logout-command" type="s">
-      <default>''</default>
-      <summary>Logout command</summary>
-      <description>The command to invoke when the logout button is clicked. This command should simply log the user out without any interaction. This key has effect only if the "logout_enable" key is set to TRUE.</description>
-    </key>
-    <key name="user-switch-enabled" type="b">
-      <default>true</default>
-      <summary>Allow user switching</summary>
-      <description>Set this to TRUE to offer an option in the unlock dialog to switch to a different user account.</description>
-    </key>
-    <key name="lock-dialog-theme" type="s">
-      <default>'default'</default>
-      <summary>Theme for lock dialog</summary>
-      <description>Theme to use for the lock dialog</description>
-    </key>
-    <key name="status-message-enabled" type="b">
-      <default>true</default>
-      <summary>Allow the session status message to be displayed</summary>
-      <description>Allow the session status message to be displayed when the screen is locked.</description>
-    </key>
-    <key name="idle-delay" type="i">
-      <default>5</default>
-      <summary>Time before session is considered idle</summary>
-      <description>The number of minutes of inactivity before the session is considered idle.</description>
-    </key>
-  </schema>
-</schemalist>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 776e4fc..184abae 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,7 +2,6 @@
 # Please keep this file sorted alphabetically.
 data/images/cosmos/cosmos.xml.in.in
 [type: gettext/glade]data/lock-dialog-default.ui
-[type: gettext/gsettings]data/org.xfce.screensaver.gschema.xml.in
 [type: gettext/gsettings]data/org.xfce.peripherals-keyboard-xkb.gschema.xml.in
 data/xfce4-screensaver-preferences.desktop.in
 [type: gettext/glade]data/xfce4-screensaver-preferences.ui
diff --git a/src/gs-lock-plug.c b/src/gs-lock-plug.c
index bfae612..9738acd 100644
--- a/src/gs-lock-plug.c
+++ b/src/gs-lock-plug.c
@@ -51,10 +51,6 @@
 #include "gs-debug.h"
 #include "xfce-bg.h"
 
-#define GSETTINGS_SCHEMA "org.xfce.screensaver"
-
-#define KEY_LOCK_DIALOG_THEME "lock-dialog-theme"
-
 #define MDM_FLEXISERVER_COMMAND "mdmflexiserver"
 #define MDM_FLEXISERVER_ARGS    "--startnew Standard"
 
@@ -1883,19 +1879,6 @@ switch_user_button_clicked (GtkButton  *button,
 	do_user_switch (plug);
 }
 
-static char *
-get_dialog_theme_name (GSLockPlug *plug)
-{
-	char        *name;
-	GSettings *settings;
-
-	settings = g_settings_new (GSETTINGS_SCHEMA);
-	name = g_settings_get_string (settings, KEY_LOCK_DIALOG_THEME);
-	g_object_unref (settings);
-
-	return name;
-}
-
 static void
 get_draw_dimensions(GSLockPlug *plug,
 				    XfceBG *bg,
@@ -1974,11 +1957,7 @@ load_theme (GSLockPlug *plug)
 	GtkWidget  *lock_dialog;
 	GError     *error=NULL;
 
-	theme = get_dialog_theme_name (plug);
-	if (theme == NULL)
-	{
-		return FALSE;
-	}
+	theme = g_strdup("default");
 
 	filename = g_strdup_printf ("lock-dialog-%s.ui", theme);
 	gtkbuilder = g_build_filename (GTKBUILDERDIR, filename, NULL);
diff --git a/src/gs-prefs.c b/src/gs-prefs.c
index 967604c..dd7fc73 100644
--- a/src/gs-prefs.c
+++ b/src/gs-prefs.c
@@ -28,34 +28,19 @@
 #include <glib-object.h>
 #include <gio/gio.h>
 
+#include <xfconf/xfconf.h>
+
 #include "gs-prefs.h"
 
 static void gs_prefs_class_init (GSPrefsClass *klass);
 static void gs_prefs_init       (GSPrefs      *prefs);
 static void gs_prefs_finalize   (GObject      *object);
 
-#define GSETTINGS_SCHEMA "org.xfce.screensaver"
-#define KEY_IDLE_ACTIVATION_ENABLED "idle-activation-enabled"
-#define KEY_LOCK_ENABLED "lock-enabled"
-#define KEY_MODE "mode"
-#define KEY_POWER_DELAY "power-management-delay"
-#define KEY_LOCK_DELAY "lock-delay"
-#define KEY_CYCLE_DELAY "cycle-delay"
-#define KEY_THEMES "themes"
-#define KEY_USER_SWITCH_ENABLED "user-switch-enabled"
-#define KEY_LOGOUT_ENABLED "logout-enabled"
-#define KEY_LOGOUT_DELAY "logout-delay"
-#define KEY_LOGOUT_COMMAND "logout-command"
-#define KEY_KEYBOARD_ENABLED "embedded-keyboard-enabled"
-#define KEY_KEYBOARD_COMMAND "embedded-keyboard-command"
-#define KEY_STATUS_MESSAGE_ENABLED "status-message-enabled"
-#define KEY_IDLE_DELAY "idle-delay"
-
 #define GS_PREFS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_PREFS, GSPrefsPrivate))
 
 struct GSPrefsPrivate
 {
-	GSettings *settings;
+	XfconfChannel *channel;
 };
 
 enum
@@ -205,6 +190,9 @@ _gs_prefs_set_themes (GSPrefs *prefs,
 		g_slist_free (prefs->themes);
 	}
 
+	if (values == NULL)
+		return;
+
 	/* take ownership of the list */
 	prefs->themes = NULL;
         for (i=0; values[i] != NULL; i++)
@@ -307,189 +295,179 @@ gs_prefs_load_from_settings (GSPrefs *prefs)
 	gchar    **strv;
 	gint       mode;
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_IDLE_ACTIVATION_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_IDLE_ACTIVATION_ENABLED, DEFAULT_KEY_IDLE_ACTIVATION_ENABLED);
 	_gs_prefs_set_idle_activation_enabled (prefs, bvalue);
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_LOCK_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_LOCK_ENABLED, DEFAULT_KEY_LOCK_ENABLED);
 	_gs_prefs_set_lock_enabled (prefs, bvalue);
 
-	value = g_settings_get_int (prefs->priv->settings, KEY_IDLE_DELAY);
+	value = xfconf_channel_get_int (prefs->priv->channel, KEY_IDLE_DELAY, DEFAULT_KEY_IDLE_DELAY);
 	_gs_prefs_set_timeout (prefs, value);
 
-	value = g_settings_get_int (prefs->priv->settings, KEY_POWER_DELAY);
+	value = xfconf_channel_get_int (prefs->priv->channel, KEY_POWER_DELAY, DEFAULT_KEY_POWER_DELAY);
 	_gs_prefs_set_power_timeout (prefs, value);
 
-	value = g_settings_get_int (prefs->priv->settings, KEY_LOCK_DELAY);
+	value = xfconf_channel_get_int (prefs->priv->channel, KEY_LOCK_DELAY, DEFAULT_KEY_LOCK_DELAY);
 	_gs_prefs_set_lock_timeout (prefs, value);
 
-	value = g_settings_get_int (prefs->priv->settings, KEY_CYCLE_DELAY);
+	value = xfconf_channel_get_int (prefs->priv->channel, KEY_CYCLE_DELAY, DEFAULT_KEY_CYCLE_DELAY);
 	_gs_prefs_set_cycle_timeout (prefs, value);
 
-	mode = g_settings_get_enum (prefs->priv->settings, KEY_MODE);
+	mode = xfconf_channel_get_int (prefs->priv->channel, KEY_MODE, DEFAULT_KEY_MODE);
 	_gs_prefs_set_mode (prefs, mode);
 
-	strv = g_settings_get_strv (prefs->priv->settings, KEY_THEMES);
+	strv = xfconf_channel_get_string_list (prefs->priv->channel, KEY_THEMES);
 	_gs_prefs_set_themes (prefs, strv);
 	g_strfreev (strv);
 
 	/* Embedded keyboard options */
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_KEYBOARD_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_KEYBOARD_ENABLED, DEFAULT_KEY_KEYBOARD_ENABLED);
 	_gs_prefs_set_keyboard_enabled (prefs, bvalue);
 
-	string = g_settings_get_string (prefs->priv->settings, KEY_KEYBOARD_COMMAND);
+	string = xfconf_channel_get_string (prefs->priv->channel, KEY_KEYBOARD_COMMAND, DEFAULT_KEY_KEYBOARD_COMMAND);
 	_gs_prefs_set_keyboard_command (prefs, string);
 	g_free (string);
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_STATUS_MESSAGE_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_STATUS_MESSAGE_ENABLED, DEFAULT_KEY_STATUS_MESSAGE_ENABLED);
 	_gs_prefs_set_status_message_enabled (prefs, bvalue);
 
 	/* Logout options */
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_LOGOUT_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_LOGOUT_ENABLED, DEFAULT_KEY_LOGOUT_ENABLED);
 	_gs_prefs_set_logout_enabled (prefs, bvalue);
 
-	string = g_settings_get_string (prefs->priv->settings, KEY_LOGOUT_COMMAND);
+	string = xfconf_channel_get_string (prefs->priv->channel, KEY_LOGOUT_COMMAND, DEFAULT_KEY_LOGOUT_COMMAND);
 	_gs_prefs_set_logout_command (prefs, string);
 	g_free (string);
 
-	value = g_settings_get_int (prefs->priv->settings, KEY_LOGOUT_DELAY);
+	value = xfconf_channel_get_int (prefs->priv->channel, KEY_LOGOUT_DELAY, DEFAULT_KEY_LOGOUT_DELAY);
 	_gs_prefs_set_logout_timeout (prefs, value);
 
 	/* User switching options */
 
-	bvalue = g_settings_get_boolean (prefs->priv->settings, KEY_USER_SWITCH_ENABLED);
+	bvalue = xfconf_channel_get_bool (prefs->priv->channel, KEY_USER_SWITCH_ENABLED, DEFAULT_KEY_USER_SWITCH_ENABLED);
 	_gs_prefs_set_user_switch_enabled (prefs, bvalue);
 }
 
 static void
-key_changed_cb (GSettings *settings,
-		gchar *key,
+key_changed_cb (XfconfChannel *channel,
+		gchar *property,
+		GValue *value,
 		GSPrefs *prefs)
 {
-	if (strcmp (key, KEY_MODE) == 0)
+	g_warning("key changed!");
+	if (strcmp (property, KEY_MODE) == 0)
 	{
 		gint mode;
 
-		mode = g_settings_get_enum (settings, key);
+		mode = xfconf_channel_get_int (channel, property, DEFAULT_KEY_MODE);
 		_gs_prefs_set_mode (prefs, mode);
-
 	}
-	else if (strcmp (key, KEY_THEMES) == 0)
+	else if (strcmp (property, KEY_THEMES) == 0)
 	{
 		gchar **strv = NULL;
 
-		strv = g_settings_get_strv (settings, key);
+		strv = xfconf_channel_get_string_list (channel, property);
 		_gs_prefs_set_themes (prefs, strv);
 		g_strfreev (strv);
-
 	}
-	else if (strcmp (key, KEY_IDLE_DELAY) == 0)
+	else if (strcmp (property, KEY_IDLE_DELAY) == 0)
 	{
 		int delay;
 
-		delay = g_settings_get_int (settings, key);
+		delay = xfconf_channel_get_int (channel, property, DEFAULT_KEY_IDLE_DELAY);
 		_gs_prefs_set_timeout (prefs, delay);
-
 	}
-	else if (strcmp (key, KEY_POWER_DELAY) == 0)
+	else if (strcmp (property, KEY_POWER_DELAY) == 0)
 	{
 		int delay;
 
-		delay = g_settings_get_int (settings, key);
+		delay = xfconf_channel_get_int (channel, property, DEFAULT_KEY_POWER_DELAY);
 		_gs_prefs_set_power_timeout (prefs, delay);
-
 	}
-	else if (strcmp (key, KEY_LOCK_DELAY) == 0)
+	else if (strcmp (property, KEY_LOCK_DELAY) == 0)
 	{
 		int delay;
 
-		delay = g_settings_get_int (settings, key);
+		delay = xfconf_channel_get_int (channel, property, DEFAULT_KEY_LOCK_DELAY);
 		_gs_prefs_set_lock_timeout (prefs, delay);
 	}
-	else if (strcmp (key, KEY_IDLE_ACTIVATION_ENABLED) == 0)
+	else if (strcmp (property, KEY_IDLE_ACTIVATION_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_IDLE_ACTIVATION_ENABLED);
 		_gs_prefs_set_idle_activation_enabled (prefs, enabled);
-
 	}
-	else if (strcmp (key, KEY_LOCK_ENABLED) == 0)
+	else if (strcmp (property, KEY_LOCK_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_LOCK_ENABLED);
 		_gs_prefs_set_lock_enabled (prefs, enabled);
-
 	}
-	else if (strcmp (key, KEY_CYCLE_DELAY) == 0)
+	else if (strcmp (property, KEY_CYCLE_DELAY) == 0)
 	{
 		int delay;
 
-		delay = g_settings_get_int (settings, key);
+		delay = xfconf_channel_get_int (channel, property, DEFAULT_KEY_CYCLE_DELAY);
 		_gs_prefs_set_cycle_timeout (prefs, delay);
-
 	}
-	else if (strcmp (key, KEY_KEYBOARD_ENABLED) == 0)
+	else if (strcmp (property, KEY_KEYBOARD_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_KEYBOARD_ENABLED);
 		_gs_prefs_set_keyboard_enabled (prefs, enabled);
-
 	}
-	else if (strcmp (key, KEY_KEYBOARD_COMMAND) == 0)
+	else if (strcmp (property, KEY_KEYBOARD_COMMAND) == 0)
 	{
 		char *command;
 
-		command = g_settings_get_string (settings, key);
+		command = xfconf_channel_get_string (channel, property, DEFAULT_KEY_KEYBOARD_COMMAND);
 		_gs_prefs_set_keyboard_command (prefs, command);
 		g_free (command);
-
 	}
-	else if (strcmp (key, KEY_STATUS_MESSAGE_ENABLED) == 0)
+	else if (strcmp (property, KEY_STATUS_MESSAGE_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_STATUS_MESSAGE_ENABLED);
 		_gs_prefs_set_status_message_enabled (prefs, enabled);
-
 	}
-	else if (strcmp (key, KEY_LOGOUT_ENABLED) == 0)
+	else if (strcmp (property, KEY_LOGOUT_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_LOGOUT_ENABLED);
 		_gs_prefs_set_logout_enabled (prefs, enabled);
-
 	}
-	else if (strcmp (key, KEY_LOGOUT_DELAY) == 0)
+	else if (strcmp (property, KEY_LOGOUT_DELAY) == 0)
 	{
 		int delay;
 
-		delay = g_settings_get_int (settings, key);
+		delay = xfconf_channel_get_int (channel, property, DEFAULT_KEY_LOGOUT_DELAY);
 		_gs_prefs_set_logout_timeout (prefs, delay);
-
 	}
-	else if (strcmp (key, KEY_LOGOUT_COMMAND) == 0)
+	else if (strcmp (property, KEY_LOGOUT_COMMAND) == 0)
 	{
 		char *command;
-		command = g_settings_get_string (settings, key);
+		command = xfconf_channel_get_string (channel, property, DEFAULT_KEY_LOGOUT_COMMAND);
 		_gs_prefs_set_logout_command (prefs, command);
 		g_free (command);
 	}
-	else if (strcmp (key, KEY_USER_SWITCH_ENABLED) == 0)
+	else if (strcmp (property, KEY_USER_SWITCH_ENABLED) == 0)
 	{
 		gboolean enabled;
 
-		enabled = g_settings_get_boolean (settings, key);
+		enabled = xfconf_channel_get_bool (channel, property, DEFAULT_KEY_USER_SWITCH_ENABLED);
 		_gs_prefs_set_user_switch_enabled (prefs, enabled);
 
 	}
 	else
 	{
-		g_warning ("Config key not handled: %s", key);
+		g_warning ("Config key not handled: %s", property);
 	}
 
 	g_signal_emit (prefs, signals [CHANGED], 0);
@@ -500,9 +478,9 @@ gs_prefs_init (GSPrefs *prefs)
 {
 	prefs->priv = GS_PREFS_GET_PRIVATE (prefs);
 
-	prefs->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
-	g_signal_connect (prefs->priv->settings,
-			  "changed",
+	prefs->priv->channel = xfconf_channel_get (SETTINGS_XFCONF_CHANNEL);
+	g_signal_connect (prefs->priv->channel,
+			  "property-changed",
 			  G_CALLBACK (key_changed_cb),
 			  prefs);
 
@@ -534,10 +512,10 @@ gs_prefs_finalize (GObject *object)
 
 	g_return_if_fail (prefs->priv != NULL);
 
-	if (prefs->priv->settings)
+	if (prefs->priv->channel)
 	{
-		g_object_unref (prefs->priv->settings);
-		prefs->priv->settings = NULL;
+		g_object_unref (prefs->priv->channel);
+		prefs->priv->channel = NULL;
 	}
 
 	if (prefs->themes)
diff --git a/src/gs-prefs.h b/src/gs-prefs.h
index 95729bf..bca1fd8 100644
--- a/src/gs-prefs.h
+++ b/src/gs-prefs.h
@@ -34,6 +34,127 @@ G_BEGIN_DECLS
 #define GS_IS_PREFS_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GS_TYPE_PREFS))
 #define GS_PREFS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GS_TYPE_PREFS, GSPrefsClass))
 
+#define SETTINGS_XFCONF_CHANNEL "xfce4-screensaver"
+
+/**
+ * Screensaver theme selection mode
+ * The selection mode used by screensaver. May be "blank-only" to enable the screensaver 
+ * without using any theme on activation, "single" to enable screensaver using only one 
+ * theme on activation (specified in "themes" key), and "random" to enable the screensaver 
+ * using a random theme on activation.
+ */
+#define KEY_MODE "/mode"
+#define DEFAULT_KEY_MODE 0
+
+/**
+ * Time before session is considered idle
+ * The number of minutes of inactivity before the session is considered idle.
+ */
+#define KEY_IDLE_DELAY "/idle-delay"
+#define DEFAULT_KEY_IDLE_DELAY 5
+
+/**
+ * Time before power management baseline
+ * The number of seconds of inactivity before signalling to power management. 
+ * This key is set and maintained by the session power management agent.
+ */
+#define KEY_POWER_DELAY "/power-management-delay"
+#define DEFAULT_KEY_POWER_DELAY 30
+
+/**
+ * Time before locking
+ * The number of minutes after screensaver activation before locking the screen.
+ */
+#define KEY_LOCK_DELAY "/lock-delay"
+#define DEFAULT_KEY_LOCK_DELAY 0
+
+/**
+ * Activate when idle
+ * Set this to TRUE to activate the screensaver when the session is idle.
+ */
+#define KEY_IDLE_ACTIVATION_ENABLED "/idle-activation-enabled"
+#define DEFAULT_KEY_IDLE_ACTIVATION_ENABLED TRUE
+
+/**
+ * Lock on activation
+ * Set this to TRUE to lock the screen when the screensaver goes active.
+ */
+#define KEY_LOCK_ENABLED "/lock-enabled"
+#define DEFAULT_KEY_LOCK_ENABLED TRUE
+
+/**
+ * Time before theme change
+ * The number of minutes to run before changing the screensaver theme.
+ */
+#define KEY_CYCLE_DELAY "/cycle-delay"
+#define DEFAULT_KEY_CYCLE_DELAY 10
+
+/**
+ * Allow embedding a keyboard into the window
+ * Set this to TRUE to allow embedding a keyboard into the window when trying to unlock.
+ * The "keyboard_command" key must be set with the appropriate command.
+ */
+#define KEY_KEYBOARD_ENABLED "/embedded-keyboard-enabled"
+#define DEFAULT_KEY_KEYBOARD_ENABLED FALSE
+
+/**
+ * Embedded keyboard command
+ * The command that will be run, if the "embedded_keyboard_enabled" key is set to TRUE, 
+ * to embed a keyboard widget into the window. This command should implement an XEMBED 
+ * plug interface and output a window XID on the standard output.
+ */
+#define KEY_KEYBOARD_COMMAND "/embedded-keyboard-command"
+#define DEFAULT_KEY_KEYBOARD_COMMAND ""
+
+/**
+ * Allow the session status message to be displayed
+ * Allow the session status message to be displayed when the screen is locked.
+ */
+#define KEY_STATUS_MESSAGE_ENABLED "/status-message-enabled"
+#define DEFAULT_KEY_STATUS_MESSAGE_ENABLED TRUE
+
+/**
+ * Allow logout
+ * Set this to TRUE to offer an option in the unlock dialog to allow logging out after a
+ * delay. The delay is specified in the "logout_delay" key.
+ */
+#define KEY_LOGOUT_ENABLED "/logout-enabled"
+#define DEFAULT_KEY_LOGOUT_ENABLED FALSE
+
+/**
+ * Time before logout option
+ * The number of minutes after the screensaver activation before a logout option will 
+ * appear in the unlock dialog. This key has effect only if the "logout_enable" key is 
+ * set to TRUE.
+ */
+#define KEY_LOGOUT_DELAY "/logout-delay"
+#define DEFAULT_KEY_LOGOUT_DELAY 120
+
+/**
+ * Logout command
+ * The command to invoke when the logout button is clicked. This command should simply 
+ * log the user out without any interaction. This key has effect only if the 
+ * "logout_enable" key is set to TRUE.
+ */
+#define KEY_LOGOUT_COMMAND "/logout-command"
+#define DEFAULT_KEY_LOGOUT_COMMAND ""
+
+/**
+ * Allow user switching
+ * Set this to TRUE to offer an option in the unlock dialog to switch to a different 
+ * user account.
+ */
+#define KEY_USER_SWITCH_ENABLED "/user-switch-enabled"
+#define DEFAULT_KEY_USER_SWITCH_ENABLED TRUE
+
+/**
+ * Screensaver themes
+ * This key specifies the list of themes to be used by the screensaver. It's ignored 
+ * when "mode" key is "blank-only", should provide the theme name when "mode" is "single", 
+ * and should provide a list of themes when "mode" is "random".
+ */
+#define KEY_THEMES "/themes"
+
 typedef enum
 {
     GS_MODE_BLANK_ONLY,
@@ -50,23 +171,23 @@ typedef struct
 	GSPrefsPrivate  *priv;
 
 	guint            idle_activation_enabled : 1; /* whether to activate when idle */
-	guint            lock_enabled : 1;              /* whether to lock when active */
-	guint            logout_enabled : 1;    /* Whether to offer the logout option */
-	guint            user_switch_enabled : 1;       /* Whether to offer the user switch option */
-	guint            keyboard_enabled : 1;  /* Whether to try to embed a keyboard */
-	guint            status_message_enabled : 1; /* show the status message in the lock */
-
-	guint            power_timeout;         /* how much idle time before power management */
-	guint            timeout;               /* how much idle time before activation */
-	guint            lock_timeout;          /* how long after activation locking starts */
-	guint            logout_timeout;        /* how long until the logout option appears */
-	guint            cycle;                 /* how long each theme should run */
-
-	char            *logout_command;        /* command to use to logout */
-	char            *keyboard_command;      /* command to use to embed a keyboard */
-
-	GSList          *themes;                /* the screensaver themes to run */
-	GSSaverMode      mode;                  /* theme selection mode */
+guint lock_enabled : 1;			  /* whether to lock when active */
+guint logout_enabled : 1;		  /* Whether to offer the logout option */
+guint user_switch_enabled : 1;	/* Whether to offer the user switch option */
+guint keyboard_enabled : 1;		  /* Whether to try to embed a keyboard */
+guint status_message_enabled : 1; /* show the status message in the lock */
+
+guint power_timeout;  /* how much idle time before power management */
+guint timeout;		  /* how much idle time before activation */
+guint lock_timeout;   /* how long after activation locking starts */
+guint logout_timeout; /* how long until the logout option appears */
+guint cycle;		  /* how long each theme should run */
+
+char *logout_command;   /* command to use to logout */
+char *keyboard_command; /* command to use to embed a keyboard */
+
+GSList *themes;   /* the screensaver themes to run */
+GSSaverMode mode; /* theme selection mode */
 } GSPrefs;
 
 typedef struct
diff --git a/src/xfce4-screensaver-preferences.c b/src/xfce4-screensaver-preferences.c
index ef845b6..9a2b978 100644
--- a/src/xfce4-screensaver-preferences.c
+++ b/src/xfce4-screensaver-preferences.c
@@ -48,16 +48,9 @@
 #include "gs-job.h"
 #include "gs-prefs.h" /* for GS_MODE enum */
 
-#define GTK_BUILDER_FILE "xfce4-screensaver-preferences.ui"
+#include <xfconf/xfconf.h>
 
-#define GSETTINGS_SCHEMA "org.xfce.screensaver"
-#define KEY_LOCK "lock-enabled"
-#define KEY_IDLE_ACTIVATION_ENABLED "idle-activation-enabled"
-#define KEY_MODE "mode"
-#define KEY_LOCK_DELAY "lock-delay"
-#define KEY_CYCLE_DELAY "cycle-delay"
-#define KEY_THEMES "themes"
-#define KEY_IDLE_DELAY "idle-delay"
+#define GTK_BUILDER_FILE "xfce4-screensaver-preferences.ui"
 
 #define GPM_COMMAND "xfce4-power-manager-settings"
 
@@ -84,7 +77,7 @@ static GtkTargetEntry drop_types [] =
 static GtkBuilder     *builder = NULL;
 static GSThemeManager *theme_manager = NULL;
 static GSJob          *job = NULL;
-static GSettings      *screensaver_settings = NULL;
+static XfconfChannel  *screensaver_channel = NULL;
 
 static gint32
 config_get_activate_delay (gboolean *is_writable)
@@ -93,11 +86,11 @@ config_get_activate_delay (gboolean *is_writable)
 
 	if (is_writable)
 	{
-		*is_writable = g_settings_is_writable (screensaver_settings,
+		*is_writable = !xfconf_channel_is_property_locked (screensaver_channel,
 		               KEY_IDLE_DELAY);
 	}
 
-	delay = g_settings_get_int (screensaver_settings, KEY_IDLE_DELAY);
+	delay = xfconf_channel_get_int (screensaver_channel, KEY_IDLE_DELAY, DEFAULT_KEY_IDLE_DELAY);
 
 	if (delay < 1)
 	{
@@ -110,7 +103,7 @@ config_get_activate_delay (gboolean *is_writable)
 static void
 config_set_activate_delay (gint32 timeout)
 {
-	g_settings_set_int (screensaver_settings, KEY_IDLE_DELAY, timeout);
+	xfconf_channel_set_int (screensaver_channel, KEY_IDLE_DELAY, timeout);
 }
 
 static int
@@ -120,11 +113,11 @@ config_get_mode (gboolean *is_writable)
 
 	if (is_writable)
 	{
-		*is_writable = g_settings_is_writable (screensaver_settings,
+		*is_writable = !xfconf_channel_is_property_locked (screensaver_channel,
 		               KEY_MODE);
 	}
 
-	mode = g_settings_get_enum (screensaver_settings, KEY_MODE);
+	mode = xfconf_channel_get_int (screensaver_channel, KEY_MODE, DEFAULT_KEY_MODE);
 
 	return mode;
 }
@@ -132,7 +125,7 @@ config_get_mode (gboolean *is_writable)
 static void
 config_set_mode (int mode)
 {
-	g_settings_set_enum (screensaver_settings, KEY_MODE, mode);
+	xfconf_channel_set_int (screensaver_channel, KEY_MODE, mode);
 }
 
 static char *
@@ -143,13 +136,13 @@ config_get_theme (gboolean *is_writable)
 
 	if (is_writable)
 	{
-		gboolean can_write_theme;
-		gboolean can_write_mode;
+		gboolean can_write_theme = TRUE;
+		gboolean can_write_mode = TRUE;
 
-		can_write_theme = g_settings_is_writable (screensaver_settings,
-		                                          KEY_THEMES);
-		can_write_mode = g_settings_is_writable (screensaver_settings,
-		                                         KEY_MODE);
+		can_write_theme = !xfconf_channel_is_property_locked (screensaver_channel,
+												KEY_THEMES);
+		can_write_mode = !xfconf_channel_is_property_locked (screensaver_channel,
+												KEY_MODE);
 		*is_writable = can_write_theme && can_write_mode;
 	}
 
@@ -167,7 +160,7 @@ config_get_theme (gboolean *is_writable)
 	else
 	{
 		gchar **strv;
-		strv = g_settings_get_strv (screensaver_settings,
+		strv = xfconf_channel_get_string_list (screensaver_channel,
 	                                KEY_THEMES);
 		if (strv != NULL) {
 			name = g_strdup (strv[0]);
@@ -232,7 +225,7 @@ config_set_theme (const char *theme_id)
 
 	config_set_mode (mode);
 
-	g_settings_set_strv (screensaver_settings,
+	xfconf_channel_set_string_list (screensaver_channel,
 	                     KEY_THEMES,
 	                     (const gchar * const*) strv);
 
@@ -247,11 +240,11 @@ config_get_enabled (gboolean *is_writable)
 
 	if (is_writable)
 	{
-		*is_writable = g_settings_is_writable (screensaver_settings,
-		               KEY_LOCK);
+		*is_writable = !xfconf_channel_is_property_locked (screensaver_channel,
+		               KEY_LOCK_ENABLED);
 	}
 
-	enabled = g_settings_get_boolean (screensaver_settings, KEY_IDLE_ACTIVATION_ENABLED);
+	enabled = xfconf_channel_get_bool (screensaver_channel, KEY_IDLE_ACTIVATION_ENABLED, DEFAULT_KEY_IDLE_ACTIVATION_ENABLED);
 
 	return enabled;
 }
@@ -259,7 +252,7 @@ config_get_enabled (gboolean *is_writable)
 static void
 config_set_enabled (gboolean enabled)
 {
-	g_settings_set_boolean (screensaver_settings, KEY_IDLE_ACTIVATION_ENABLED, enabled);
+	xfconf_channel_set_bool (screensaver_channel, KEY_IDLE_ACTIVATION_ENABLED, enabled);
 }
 
 static gboolean
@@ -269,11 +262,11 @@ config_get_lock (gboolean *is_writable)
 
 	if (is_writable)
 	{
-		*is_writable = g_settings_is_writable (screensaver_settings,
-		               KEY_LOCK);
+		*is_writable = !xfconf_channel_is_property_locked (screensaver_channel,
+		               KEY_LOCK_ENABLED);
 	}
 
-	lock = g_settings_get_boolean (screensaver_settings, KEY_LOCK);
+	lock = xfconf_channel_get_bool (screensaver_channel, KEY_LOCK_ENABLED, DEFAULT_KEY_LOCK_ENABLED);
 
 	return lock;
 }
@@ -281,7 +274,7 @@ config_get_lock (gboolean *is_writable)
 static void
 config_set_lock (gboolean lock)
 {
-	g_settings_set_boolean (screensaver_settings, KEY_LOCK, lock);
+	xfconf_channel_set_bool (screensaver_channel, KEY_LOCK_ENABLED, lock);
 }
 
 static void
@@ -1123,38 +1116,31 @@ ui_set_delay (int delay)
 }
 
 static void
-key_changed_cb (GSettings *settings, const gchar *key, gpointer data)
+key_changed_cb (XfconfChannel *channel, const gchar *key, gpointer data)
 {
 	if (strcmp (key, KEY_IDLE_ACTIVATION_ENABLED) == 0)
 	{
-			gboolean enabled;
-
-			enabled = g_settings_get_boolean (settings, key);
-
-			ui_set_enabled (enabled);
+		gboolean enabled;
+		enabled = xfconf_channel_get_bool (channel, key, DEFAULT_KEY_IDLE_ACTIVATION_ENABLED);
+		ui_set_enabled (enabled);
 	}
-	else if (strcmp (key, KEY_LOCK) == 0)
+	else if (strcmp (key, KEY_LOCK_ENABLED) == 0)
 	{
-		        gboolean enabled;
-
-			enabled = g_settings_get_boolean (settings, key);
-
-			ui_set_lock (enabled);
+		gboolean enabled;
+		enabled = xfconf_channel_get_bool (channel, key, DEFAULT_KEY_LOCK_ENABLED);
+		ui_set_lock (enabled);
 	}
 	else if (strcmp (key, KEY_THEMES) == 0)
 	{
-		        GtkWidget *treeview;
-
-			treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview"));
-			setup_treeview_selection (treeview);
+		GtkWidget *treeview;
+		treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview"));
+		setup_treeview_selection (treeview);
 	}
 	else if (strcmp (key, KEY_IDLE_DELAY) == 0)
 	{
-			int delay;
-
-			delay = g_settings_get_int (settings, key);
-                        ui_set_delay (delay);
-
+		int delay;
+		delay = xfconf_channel_get_int (channel, key, DEFAULT_KEY_IDLE_DELAY);
+		ui_set_delay (delay);
 	}
 	else
 	{
@@ -1559,9 +1545,9 @@ init_capplet (void)
 		gtk_widget_hide (gpm_button);
 	}
 
-	screensaver_settings = g_settings_new (GSETTINGS_SCHEMA);
-	g_signal_connect (screensaver_settings,
-	                  "changed",
+	screensaver_channel = xfconf_channel_get(SETTINGS_XFCONF_CHANNEL);
+	g_signal_connect (screensaver_channel,
+	                  "property-changed",
 	                  G_CALLBACK (key_changed_cb),
 	                  NULL);
 
@@ -1614,11 +1600,12 @@ init_capplet (void)
 	gtk_widget_show_all (dialog);
 
 	/* Update list of themes if using random screensaver */
-	mode = g_settings_get_enum (screensaver_settings, KEY_MODE);
+	mode = xfconf_channel_get_int (screensaver_channel, KEY_MODE, DEFAULT_KEY_MODE);
 	if (mode == GS_MODE_RANDOM) {
 		gchar **list;
 		list = get_all_theme_ids (theme_manager);
-		g_settings_set_strv (screensaver_settings, KEY_THEMES, (const gchar * const*) list);
+		g_warning("instance b");
+		xfconf_channel_set_string_list (screensaver_channel, KEY_THEMES, (const gchar * const*) list);
 		g_strfreev (list);
 	}
 
@@ -1653,13 +1640,14 @@ init_capplet (void)
 static void
 finalize_capplet (void)
 {
-	g_object_unref (screensaver_settings);
+	g_object_unref (screensaver_channel);
 }
 
 int
 main (int    argc,
       char **argv)
 {
+	GError *error = NULL;
 
 #ifdef ENABLE_NLS
 	bindtextdomain (GETTEXT_PACKAGE, XFCELOCALEDIR);
@@ -1675,6 +1663,14 @@ main (int    argc,
 	if (xfce_titled_dialog_get_type() == 0)
 		exit(1);
 
+	if (!xfconf_init(&error))
+	{
+		g_error("Failed to connect to xfconf daemon: %s.", error->message);
+		g_error_free(error);
+
+		return EXIT_FAILURE;
+	}
+
 	job = gs_job_new ();
 	theme_manager = gs_theme_manager_new ();
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list