[drwright] Port to gsettings



commit 2d8b9f853ef72b8a607df269552f8f04fe0ef445
Author: Christian Persch <chpe gnome org>
Date:   Thu Nov 18 20:24:52 2010 +0100

    Port to gsettings

 configure.in                                       |   23 +++-
 po/POTFILES.in                                     |    3 +-
 src/Makefile.am                                    |   23 ++--
 src/drw-break-window.c                             |   42 ++----
 src/drwright.c                                     |   83 ++++--------
 src/drwright.convert                               |    7 +
 src/drwright.h                                     |    2 +-
 src/drwright.schemas.in                            |   28 ----
 src/gsd-typing-break-manager.c                     |  139 ++++----------------
 src/gsd-typing-break-plugin.c                      |    2 +-
 ...tings-daemon.plugins.TypingBreak.gschema.xml.in |   48 +++++++
 11 files changed, 157 insertions(+), 243 deletions(-)
---
diff --git a/configure.in b/configure.in
index af8779d..4f54e62 100644
--- a/configure.in
+++ b/configure.in
@@ -36,16 +36,22 @@ AC_HEADER_STDC
 AM_PROG_LIBTOOL
 
 # ************
-# Typing Break
+# Requirements
 # ************
 
-GLIB_REQUIRED=2.12.0
+GLIB_REQUIRED=2.26.0
+GIO_REQUIRED=2.26.0
 GTK_REQUIRED=2.91.0
 LIBCANBERRA_REQUIRED=0
+GSD_REQUIRED=2.91.0
+
+# ************
+# Typing Break
+# ************
 
 PKG_CHECK_MODULES([TYPING],[
   glib-2.0 >= $GLIB_REQUIRED
-  gconf-2.0
+  gio-2.0 >= $GIO_REQUIRED
   gtk+-3.0 >= $GTK_REQUIRED
   libcanberra-gtk3 >= $LIBCANBERRA_REQUIRED
   x11])
@@ -70,13 +76,11 @@ AC_SUBST(SCREENSAVER_LIBS)
 # GSD plugin
 # **********
 
-GSD_REQUIRED=2.91.0
-
 PKG_CHECK_MODULES([GSD_PLUGIN],[
   gnome-settings-daemon >= $GSD_REQUIRED
+  gio-2.0 >= $GIO_REQUIRED
   gtk+-3.0
-  gdk-x11-3.0
-  gconf-2.0])
+  gdk-x11-3.0])
 
 gsd_plugindir=`$PKG_CONFIG --variable plugindir gnome-settings-daemon`
 AC_SUBST([gsd_plugindir])
@@ -92,6 +96,11 @@ case $host_os in
 esac
 AC_SUBST([GSD_PLUGIN_LDFLAGS])
 
+# *********
+# GSettings
+# *********
+
+GLIB_GSETTINGS
 
 # *****************
 # Optional features
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c563fc9..71e0d17 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,4 +2,5 @@ src/main.c
 src/drwright.c
 src/drw-break-window.c
 src/drw-monitor.c
-src/drwright.schemas.in
+src/org.gnome.settings-daemon.plugins.TypingBreak.gschema.xml.in
+
diff --git a/src/Makefile.am b/src/Makefile.am
index 9c25169..b2314bc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -93,34 +93,31 @@ gsd_plugin_DATA = $(gsd_plugin_in_files:.gnome-settings-plugin.in=.gnome-setting
 
 @GSD_INTLTOOL_PLUGIN_RULE@
 
-# GConf schema
+# GSettings
 
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_in_files = drwright.schemas.in
-schema_DATA = drwright.schemas
+gsettings_schemas_in_files = org.gnome-settings-daemon.plugins.TypingBreak.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_schemas_in_files:.gschema.xml.in=.gschema.xml)
 
-if GCONF_SCHEMAS_INSTALL
-install-data-local:
-	GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/src/$(schema_DATA)
-endif
+gsettings_convertdir = $(datadir)/GConf/gsettings
+dist_gsettings_convert_DATA = drwright.convert
 
- INTLTOOL_SCHEMAS_RULE@
+ GSETTINGS_RULES@
+ INTLTOOL_XML_NOMERGE_RULE@
 
 # Clean
 
 EXTRA_DIST = 			\
 	$(gsd_plugin_in_files)	\
-	$(schema_in_files) 	\
+	$(gsettings_schemas_in_files) 	\
 	$(NULL)
 
 CLEANFILES = 			\
-	$(gsd_plugin_DATA)		\
-	$(schema_DATA)		\
+	$(gsd_plugin_DATA)	\
+	$(gsettings_SCHEMAS)	\
 	$(NULL)
 
 DISTCLEANFILES =		\
 	$(gsd_plugin_DATA)	\
-	$(schema_DATA)		\
 	$(NULL)
 
 # includes
diff --git a/src/drw-break-window.c b/src/drw-break-window.c
index 6af4a11..45c4d80 100644
--- a/src/drw-break-window.c
+++ b/src/drw-break-window.c
@@ -24,9 +24,9 @@
 #include <string.h>
 #include <math.h>
 #include <glib/gi18n.h>
+#include <gio/gio.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
-#include <gconf/gconf-client.h>
 
 #ifdef HAVE_CANBERRA_GTK
 #include <canberra-gtk.h>
@@ -52,6 +52,8 @@ struct _DrwBreakWindowPrivate {
 	guint      clock_timeout_id;
 	guint      postpone_timeout_id;
 	guint      postpone_sensitize_id;
+
+        GSettings *settings;
 };
 
 #define DRW_BREAK_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DRW_TYPE_BREAK_WINDOW, DrwBreakWindowPrivate))
@@ -131,23 +133,17 @@ drw_break_window_init (DrwBreakWindow *window)
 	GdkRectangle           monitor;
 	gint                   right_padding;
 	gint                   bottom_padding;
-	GConfClient	      *client;
+	GSettings             *settings;
 
 	priv = DRW_BREAK_WINDOW_GET_PRIVATE (window);
 	window->priv = priv;
 
-	client = gconf_client_get_default ();
+        priv->settings = g_settings_new (DRW_SETTINGS_SCHEMA_ID);
 
-	priv->break_time = 60 * gconf_client_get_int (client,
-						      GCONF_PATH "/break_time",
-						      NULL);
+	priv->break_time = 60 * g_settings_get_int (priv->settings, "break-time");
 
-	allow_postpone = gconf_client_get_bool (client,
-					      GCONF_PATH "/allow_postpone",
-					      NULL);
-	g_object_unref (client);
+        allow_postpone = g_settings_get_boolean (priv->settings, "allow-postpone");
 
-	g_object_set (window, "type", GTK_WINDOW_POPUP, NULL);
 	gtk_window_set_keep_above (GTK_WINDOW (window), TRUE);
 	gtk_window_fullscreen (GTK_WINDOW (window));
 	gtk_window_set_modal (GTK_WINDOW (window), TRUE);
@@ -304,11 +300,11 @@ drw_break_window_finalize (GObject *object)
 		g_source_remove (priv->postpone_sensitize_id);
 	}
 
+        g_object_unref (priv->settings);
+
 	window->priv = NULL;
 
-	if (G_OBJECT_CLASS (drw_break_window_parent_class)->finalize) {
-		(* G_OBJECT_CLASS (drw_break_window_parent_class)->finalize) (object);
-        }
+	G_OBJECT_CLASS (drw_break_window_parent_class)->finalize (object);
 }
 
 static void
@@ -417,24 +413,18 @@ static void
 postpone_entry_activate_cb (GtkWidget      *entry,
 			  DrwBreakWindow *window)
 {
-	const gchar *str;
-	gchar *phrase;
-	GConfClient *client = gconf_client_get_default();
+        DrwBreakWindowPrivate *priv = window->priv;
+	const gchar *str, *phrase;
 
 	str = gtk_entry_get_text (GTK_ENTRY (entry));
 
-	phrase = gconf_client_get_string (client,
-					  GCONF_PATH "/unlock_phrase",
-					  NULL);
-	g_object_unref (client);
+        g_settings_get (priv->settings, "unlock-phrase", "&s", &phrase);
 
 	if (!strcmp (str, phrase)) {
 		g_signal_emit (window, signals[POSTPONE], 0, NULL);
-		g_free (phrase);
 		return;
 	}
 
-	g_free (phrase);
 	gtk_entry_set_text (GTK_ENTRY (entry), "");
 }
 
@@ -506,12 +496,10 @@ postpone_clicked_cb (GtkWidget *button,
 {
 	DrwBreakWindow        *bw = DRW_BREAK_WINDOW (window);
 	DrwBreakWindowPrivate *priv = bw->priv;
-	gchar                 *phrase;
+	const gchar           *phrase;
 
 	/* Disable the phrase for now. */
-	phrase = NULL; /*gconf_client_get_string (gconf_client_get_default (),
-					  GCONF_PATH "/unlock_phrase",
-					  NULL);*/
+	phrase = NULL; /* g_settings_get_string (priv->settings, "unlock-phrase", "&s", &phrase); */
 
 	if (!phrase || !phrase[0]) {
 		g_signal_emit (window, signals[POSTPONE], 0, NULL);
diff --git a/src/drwright.c b/src/drwright.c
index 5e8674d..716a5e2 100644
--- a/src/drwright.c
+++ b/src/drwright.c
@@ -23,11 +23,11 @@
 #include <config.h>
 #include <string.h>
 #include <math.h>
+#include <gio/gio.h>
 #include <glib/gi18n.h>
 #include <gdk/gdk.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
 
 #ifdef HAVE_APP_INDICATOR
 #include <libappindicator/app-indicator.h>
@@ -48,6 +48,8 @@
 #define POPUP_ITEM_ENABLED 1
 #define POPUP_ITEM_BREAK   2
 
+#define I_(string) (g_intern_static_string (string))
+
 typedef enum {
 	STATE_START,
 	STATE_RUNNING,
@@ -64,6 +66,8 @@ typedef enum {
 #endif /* HAVE_APP_INDICATOR */
 
 struct _DrWright {
+        GSettings      *settings;
+
 	/* Widgets. */
 	GtkWidget      *break_window;
 	GList          *secondary_break_windows;
@@ -548,39 +552,29 @@ activity_detected_cb (DrwMonitor *monitor,
 }
 
 static void
-gconf_notify_cb (GConfClient *client,
-		 guint        cnxn_id,
-		 GConfEntry  *entry,
-		 gpointer     user_data)
+settings_change_cb (GSettings *settings,
+                    const char *key,
+                    DrWright  *dr)
 {
-	DrWright  *dr = user_data;
 	GtkWidget *item;
 
-	if (!strcmp (entry->key, GCONF_PATH "/type_time")) {
-		if (entry->value->type == GCONF_VALUE_INT) {
-			dr->type_time = 60 * gconf_value_get_int (entry->value);
-			dr->warn_time = MIN (dr->type_time / 10, 5*60);
+        if (key == I_("type-time")) {
+                dr->type_time = 60 * g_settings_get_int (settings, key);
+                dr->warn_time = MIN (dr->type_time / 10, 5*60);
 
-			dr->state = STATE_START;
-		}
-	}
-	else if (!strcmp (entry->key, GCONF_PATH "/break_time")) {
-		if (entry->value->type == GCONF_VALUE_INT) {
-			dr->break_time = 60 * gconf_value_get_int (entry->value);
-			dr->state = STATE_START;
-		}
-	}
-	else if (!strcmp (entry->key, GCONF_PATH "/enabled")) {
-		if (entry->value->type == GCONF_VALUE_BOOL) {
-			dr->enabled = gconf_value_get_bool (entry->value);
-			dr->state = STATE_START;
+                dr->state = STATE_START;
+	} else if (key == I_("break-time")) {
+                dr->break_time = 60 * g_settings_get_int (settings, key);
+                dr->state = STATE_START;
+	} else if (key == I_("enabled")) {
+                dr->enabled = g_settings_get_boolean (settings, key);
+                dr->state = STATE_START;
 
-			item = gtk_ui_manager_get_widget (dr->ui_manager,
-							  "/Pop/TakeABreak");
-			gtk_widget_set_sensitive (item, dr->enabled);
+                item = gtk_ui_manager_get_widget (dr->ui_manager,
+                                                  "/Pop/TakeABreak");
+                gtk_widget_set_sensitive (item, dr->enabled);
 
-			update_status (dr);
-		}
+                update_status (dr);
 	}
 
 	maybe_change_state (dr);
@@ -810,8 +804,8 @@ drwright_new (void)
 {
 	DrWright  *dr;
 	GtkWidget *item;
-	GConfClient *client;
 	GtkActionGroup *action_group;
+        GSettings *settings;
 
 	static const char ui_description[] =
 	  "<ui>"
@@ -825,33 +819,14 @@ drwright_new (void)
 
         dr = g_new0 (DrWright, 1);
 
-	client = gconf_client_get_default ();
-
-	gconf_client_add_dir (client,
-			      GCONF_PATH,
-			      GCONF_CLIENT_PRELOAD_NONE,
-			      NULL);
-
-	gconf_client_notify_add (client, GCONF_PATH,
-				 gconf_notify_cb,
-				 dr,
-				 NULL,
-				 NULL);
-
-	dr->type_time = 60 * gconf_client_get_int (
-		client, GCONF_PATH "/type_time", NULL);
+        dr->settings = g_settings_new (DRW_SETTINGS_SCHEMA_ID);
+        g_signal_connect (dr->settings, "changed",
+                          G_CALLBACK (settings_change_cb), dr);
 
+	dr->type_time = 60 * g_settings_get_int (dr->settings, "type-time");
 	dr->warn_time = MIN (dr->type_time / 12, 60*3);
-
-	dr->break_time = 60 * gconf_client_get_int (
-		client, GCONF_PATH "/break_time", NULL);
-
-	dr->enabled = gconf_client_get_bool (
-		client,
-		GCONF_PATH "/enabled",
-		NULL);
-
-	g_object_unref (client);
+	dr->break_time = 60 * g_settings_get_int (dr->settings, "break-time");
+	dr->enabled = g_settings_get_boolean (dr->settings, "enabled");
 
 	if (debug) {
 		setup_debug_values (dr);
diff --git a/src/drwright.convert b/src/drwright.convert
new file mode 100644
index 0000000..b11daca
--- /dev/null
+++ b/src/drwright.convert
@@ -0,0 +1,7 @@
+[org.gnome.settings-daemon.plugins.TypingBreak]
+active = /apps/gnome_settings_daemon/plugins/typing-break/active
+enabled =  /desktop/gnome/typing_break/enabled
+allow-postpone = /desktop/gnome/typing_break/allow_postpone
+type-time = /desktop/gnome/typing_break/type_time
+break-time = /desktop/gnome/typing_break/break_time
+unlock-phrase = /desktop/gnome/typing_break/unlock_phrase
\ No newline at end of file
diff --git a/src/drwright.h b/src/drwright.h
index df2cf99..12234ac 100644
--- a/src/drwright.h
+++ b/src/drwright.h
@@ -21,7 +21,7 @@
 #ifndef __DR_WRIGHT_H__
 #define __DR_WRIGHT_H__
 
-#define GCONF_PATH "/desktop/gnome/typing_break"
+#define DRW_SETTINGS_SCHEMA_ID "org.gnome.settings-daemon.plugins.TypingBreak"
 
 typedef struct _DrWright DrWright;
 
diff --git a/src/gsd-typing-break-manager.c b/src/gsd-typing-break-manager.c
index 69b60cd..f4f3495 100644
--- a/src/gsd-typing-break-manager.c
+++ b/src/gsd-typing-break-manager.c
@@ -33,25 +33,26 @@
 
 #include <glib.h>
 #include <glib/gi18n.h>
+#include <gio/gio.h>
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
 #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
 
 #include "gnome-settings-profile.h"
 #include "gsd-typing-break-manager.h"
 
-#define GSD_TYPING_BREAK_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_TYPING_BREAK_MANAGER, GsdTypingBreakManagerPrivate))
+#define DRW_SETTINGS_SCHEMA_ID "org.gnome.settings-daemon.plugins.TypingBreak"
+#define I_(string) (g_intern_static_string (string))
 
-#define GCONF_BREAK_DIR           "/desktop/gnome/typing_break"
+#define GSD_TYPING_BREAK_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_TYPING_BREAK_MANAGER, GsdTypingBreakManagerPrivate))
 
 struct GsdTypingBreakManagerPrivate
 {
+        GSettings *settings;
         GPid  typing_monitor_pid;
         guint typing_monitor_idle_id;
         guint child_watch_id;
         guint setup_id;
-        guint notify;
 };
 
 static void     gsd_typing_break_manager_class_init  (GsdTypingBreakManagerClass *klass);
@@ -137,16 +138,13 @@ setup_typing_break (GsdTypingBreakManager *manager,
 }
 
 static void
-typing_break_callback (GConfClient           *client,
-                       guint                  cnxn_id,
-                       GConfEntry            *entry,
-                       GsdTypingBreakManager *manager)
+typing_break_enabled_changed_cb (GSettings *settings,
+                                 const char *key,
+                                 GsdTypingBreakManager *manager)
 {
-        if (! strcmp (entry->key, "/desktop/gnome/typing_break/enabled")) {
-                if (entry->value->type == GCONF_VALUE_BOOL) {
-                        setup_typing_break (manager, gconf_value_get_bool (entry->value));
-                }
-        }
+        g_assert (key == I_("enabled"));
+
+        setup_typing_break (manager, g_settings_get_boolean (settings, key));
 }
 
 static gboolean
@@ -161,28 +159,20 @@ gboolean
 gsd_typing_break_manager_start (GsdTypingBreakManager *manager,
                                 GError               **error)
 {
-        GConfClient *client;
-        gboolean     enabled;
+        GsdTypingBreakManagerPrivate *priv = manager->priv;
 
         g_debug ("Starting typing_break manager");
         gnome_settings_profile_start (NULL);
 
-        client = gconf_client_get_default ();
-
-        gconf_client_add_dir (client, GCONF_BREAK_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-        manager->priv->notify =
-                gconf_client_notify_add (client,
-                                         GCONF_BREAK_DIR,
-                                         (GConfClientNotifyFunc) typing_break_callback, manager,
-                                         NULL, NULL);
-
-        enabled = gconf_client_get_bool (client, GCONF_BREAK_DIR "/enabled", NULL);
-        g_object_unref (client);
-        if (enabled) {
-                manager->priv->setup_id =
-                        g_timeout_add_seconds (3,
-                                               (GSourceFunc) really_setup_typing_break,
-                                               manager);
+        priv->settings = g_settings_new (DRW_SETTINGS_SCHEMA_ID);
+        g_signal_connect (priv->settings, "changed::enabled",
+                          G_CALLBACK (typing_break_enabled_changed_cb),
+                          manager);
+
+        if (g_settings_get_boolean (priv->settings, "enabled")) {
+                priv->setup_id = g_timeout_add_seconds (3,
+                                                        (GSourceFunc) really_setup_typing_break,
+                                                        manager);
         }
 
         gnome_settings_profile_end (NULL);
@@ -218,85 +208,20 @@ gsd_typing_break_manager_stop (GsdTypingBreakManager *manager)
                 p->typing_monitor_pid = 0;
         }
 
-        if (p->notify != 0) {
-                GConfClient *client = gconf_client_get_default ();
-                gconf_client_remove_dir (client, GCONF_BREAK_DIR, NULL);
-                gconf_client_notify_remove (client, p->notify);
-                g_object_unref (client);
-                p->notify = 0;
-        }
-}
-
-static void
-gsd_typing_break_manager_set_property (GObject        *object,
-                               guint           prop_id,
-                               const GValue   *value,
-                               GParamSpec     *pspec)
-{
-        GsdTypingBreakManager *self;
-
-        self = GSD_TYPING_BREAK_MANAGER (object);
-
-        switch (prop_id) {
-        default:
-                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-                break;
-        }
-}
-
-static void
-gsd_typing_break_manager_get_property (GObject        *object,
-                               guint           prop_id,
-                               GValue         *value,
-                               GParamSpec     *pspec)
-{
-        GsdTypingBreakManager *self;
-
-        self = GSD_TYPING_BREAK_MANAGER (object);
-
-        switch (prop_id) {
-        default:
-                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-                break;
+        if (p->settings != NULL) {
+                g_signal_handlers_disconnect_by_func (p->settings,
+                                                      G_CALLBACK (typing_break_enabled_changed_cb),
+                                                      manager);
+                g_object_unref (p->settings);
+                p->settings = NULL;
         }
 }
 
-static GObject *
-gsd_typing_break_manager_constructor (GType                  type,
-                              guint                  n_construct_properties,
-                              GObjectConstructParam *construct_properties)
-{
-        GsdTypingBreakManager      *typing_break_manager;
-        GsdTypingBreakManagerClass *klass;
-
-        klass = GSD_TYPING_BREAK_MANAGER_CLASS (g_type_class_peek (GSD_TYPE_TYPING_BREAK_MANAGER));
-
-        typing_break_manager = GSD_TYPING_BREAK_MANAGER (G_OBJECT_CLASS (gsd_typing_break_manager_parent_class)->constructor (type,
-                                                                                                      n_construct_properties,
-                                                                                                      construct_properties));
-
-        return G_OBJECT (typing_break_manager);
-}
-
-static void
-gsd_typing_break_manager_dispose (GObject *object)
-{
-        GsdTypingBreakManager *typing_break_manager;
-
-        typing_break_manager = GSD_TYPING_BREAK_MANAGER (object);
-
-        G_OBJECT_CLASS (gsd_typing_break_manager_parent_class)->dispose (object);
-}
-
 static void
 gsd_typing_break_manager_class_init (GsdTypingBreakManagerClass *klass)
 {
         GObjectClass   *object_class = G_OBJECT_CLASS (klass);
 
-        object_class->get_property = gsd_typing_break_manager_get_property;
-        object_class->set_property = gsd_typing_break_manager_set_property;
-        object_class->constructor = gsd_typing_break_manager_constructor;
-        object_class->dispose = gsd_typing_break_manager_dispose;
         object_class->finalize = gsd_typing_break_manager_finalize;
 
         g_type_class_add_private (klass, sizeof (GsdTypingBreakManagerPrivate));
@@ -306,20 +231,12 @@ static void
 gsd_typing_break_manager_init (GsdTypingBreakManager *manager)
 {
         manager->priv = GSD_TYPING_BREAK_MANAGER_GET_PRIVATE (manager);
-
 }
 
 static void
 gsd_typing_break_manager_finalize (GObject *object)
 {
-        GsdTypingBreakManager *typing_break_manager;
-
-        g_return_if_fail (object != NULL);
-        g_return_if_fail (GSD_IS_TYPING_BREAK_MANAGER (object));
-
-        typing_break_manager = GSD_TYPING_BREAK_MANAGER (object);
-
-        g_return_if_fail (typing_break_manager->priv != NULL);
+        GsdTypingBreakManager *typing_break_manager = GSD_TYPING_BREAK_MANAGER (object);
 
         G_OBJECT_CLASS (gsd_typing_break_manager_parent_class)->finalize (object);
 }
diff --git a/src/gsd-typing-break-plugin.c b/src/gsd-typing-break-plugin.c
index 28621fa..ceb5e88 100644
--- a/src/gsd-typing-break-plugin.c
+++ b/src/gsd-typing-break-plugin.c
@@ -35,7 +35,7 @@ struct GsdTypingBreakPluginPrivate {
 GNOME_SETTINGS_PLUGIN_REGISTER (GsdTypingBreakPlugin, gsd_typing_break_plugin)
 
 static void
-gsd_typing_break_plugin_class_finalize (GsdTypingBreakPluginClass*klass)
+gsd_typing_break_plugin_class_finalize (GsdTypingBreakPluginClass *klass)
 {
 }
 
diff --git a/src/org.gnome-settings-daemon.plugins.TypingBreak.gschema.xml.in b/src/org.gnome-settings-daemon.plugins.TypingBreak.gschema.xml.in
new file mode 100644
index 0000000..55b3117
--- /dev/null
+++ b/src/org.gnome-settings-daemon.plugins.TypingBreak.gschema.xml.in
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright © 2010 Christian Persch
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 3, or (at your option)
+  any later version.
+
+  This program is distributed in the hope conf it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-->
+<schemalist>
+  <schema id="org.gnome.settings-daemon.plugins.TypingBreak"
+          path="/org/gnome/settings-daemon/plugins/typing-break/"
+          gettext-domain="drwright">
+    <key name="active" type="b">
+      <default>true</default>
+      <_summary>Whether the settings daemon should activate the typing break plugin</_summary>
+    </key>
+    <key name="enabled" type="b">
+      <default>true</default>
+      <_summary>Whether typing break is enabled</_summary>
+    </key>
+    <key name="allow-postpone" type="b">
+      <default>false</default>
+      <_summary>Whether the typing break can be postponed</_summary>
+    </key>
+    <key name="type-time" type="i">
+      <default>60</default>
+      <_summary>Number of minutes of typing time before break mode starts</_summary>
+    </key>
+    <key name="break-time" type="i">
+      <default>3</default>
+      <_summary>Number of minutes that the typing break should last</_summary>
+    </key>
+    <key name="unlock-phrase" type="s">
+      <default>''</default>
+      <_summary>Phrase to unlock the break screen with</_summary>
+    </key>
+  </schema>
+</schemalist>



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