[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