summaryrefslogtreecommitdiff
path: root/mate-settings-daemon
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2012-10-01 22:58:54 +0200
committerStefano Karapetsas <[email protected]>2012-10-01 22:58:54 +0200
commitd2c7965aa092cecb857bd0301b7c9ff2dc10f9f8 (patch)
tree016ada3eb78c3c6f438abab5635ba17474d47a2b /mate-settings-daemon
parent03478b4d1d9fdc5f2f2fdbf9c41d963dabc0d00b (diff)
downloadmate-settings-daemon-d2c7965aa092cecb857bd0301b7c9ff2dc10f9f8.tar.bz2
mate-settings-daemon-d2c7965aa092cecb857bd0301b7c9ff2dc10f9f8.tar.xz
migrate to gsettingsmate-settings-daemon-1.5.0
Diffstat (limited to 'mate-settings-daemon')
-rw-r--r--mate-settings-daemon/main.c9
-rw-r--r--mate-settings-daemon/mate-settings-manager.c126
-rw-r--r--mate-settings-daemon/mate-settings-manager.h7
-rw-r--r--mate-settings-daemon/mate-settings-manager.xml3
-rw-r--r--mate-settings-daemon/mate-settings-plugin-info.c50
-rw-r--r--mate-settings-daemon/mate-settings-plugin-info.h7
6 files changed, 36 insertions, 166 deletions
diff --git a/mate-settings-daemon/main.c b/mate-settings-daemon/main.c
index e1c5e85..5f778a7 100644
--- a/mate-settings-daemon/main.c
+++ b/mate-settings-daemon/main.c
@@ -44,7 +44,6 @@
#define MATE_SESSION_DBUS_OBJECT "/org/mate/SessionManager"
#define MATE_SESSION_DBUS_INTERFACE "org.mate.SessionManager"
-static char *mateconf_prefix = NULL;
static gboolean no_daemon = FALSE;
static gboolean debug = FALSE;
static gboolean do_timed_exit = FALSE;
@@ -54,7 +53,6 @@ static int term_signal_pipe_fds[2];
static GOptionEntry entries[] = {
{"debug", 0, 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging code"), NULL },
{"no-daemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Don't become a daemon"), NULL },
- {"mateconf-prefix", 0, 0, G_OPTION_ARG_STRING, &mateconf_prefix, N_("MateConf prefix from which to load plugin settings"), NULL},
{ "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
{NULL}
};
@@ -484,11 +482,7 @@ main (int argc, char *argv[])
automatically. Otherwise, wait for an Awake etc. */
if (g_getenv ("DBUS_STARTER_BUS_TYPE") == NULL) {
error = NULL;
- if (mateconf_prefix != NULL) {
- res = mate_settings_manager_start_with_settings_prefix (manager, mateconf_prefix, &error);
- } else {
- res = mate_settings_manager_start (manager, &error);
- }
+ res = mate_settings_manager_start (manager, &error);
if (! res) {
g_warning ("Unable to start: %s", error->message);
g_error_free (error);
@@ -505,7 +499,6 @@ main (int argc, char *argv[])
gtk_main ();
out:
- g_free (mateconf_prefix);
if (bus != NULL) {
dbus_g_connection_unref (bus);
diff --git a/mate-settings-daemon/mate-settings-manager.c b/mate-settings-daemon/mate-settings-manager.c
index e708997..21067e9 100644
--- a/mate-settings-daemon/mate-settings-manager.c
+++ b/mate-settings-daemon/mate-settings-manager.c
@@ -31,7 +31,7 @@
#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <mateconf/mateconf-client.h>
+#include <gio/gio.h>
#include "mate-settings-plugin-info.h"
#include "mate-settings-manager.h"
@@ -40,7 +40,7 @@
#define MSD_MANAGER_DBUS_PATH "/org/mate/SettingsDaemon"
-#define DEFAULT_SETTINGS_PREFIX "/apps/mate_settings_daemon/plugins"
+#define DEFAULT_SETTINGS_PREFIX "org.mate.SettingsDaemon"
#define PLUGIN_EXT ".mate-settings-plugin"
@@ -49,17 +49,10 @@
struct MateSettingsManagerPrivate
{
DBusGConnection *connection;
- MateConfClient *mateconf_client;
- char *settings_prefix;
GSList *plugins;
};
enum {
- PROP_0,
- PROP_SETTINGS_PREFIX,
-};
-
-enum {
PLUGIN_ACTIVATED,
PLUGIN_DEACTIVATED,
LAST_SIGNAL
@@ -156,10 +149,8 @@ static void
_load_file (MateSettingsManager *manager,
const char *filename)
{
- MateSettingsPluginInfo *info;
- char *key_name;
- int priority;
- GError *error;
+ MateSettingsPluginInfo *info;
+ char *schema;
GSList *l;
g_debug ("Loading plugin: %s", filename);
@@ -185,25 +176,13 @@ _load_file (MateSettingsManager *manager,
g_signal_connect (info, "deactivated",
G_CALLBACK (on_plugin_deactivated), manager);
- key_name = g_strdup_printf ("%s/%s/active",
- manager->priv->settings_prefix,
- mate_settings_plugin_info_get_location (info));
- mate_settings_plugin_info_set_enabled_key_name (info, key_name);
- g_free (key_name);
+ schema = g_strdup_printf ("%s.plugins.%s",
+ DEFAULT_SETTINGS_PREFIX,
+ mate_settings_plugin_info_get_location (info));
+
+ mate_settings_plugin_info_set_schema (info, schema);
- key_name = g_strdup_printf ("%s/%s/priority",
- manager->priv->settings_prefix,
- mate_settings_plugin_info_get_location (info));
- error = NULL;
- priority = mateconf_client_get_int (manager->priv->mateconf_client, key_name, &error);
- if (error == NULL) {
- if (priority > 0) {
- mate_settings_plugin_info_set_priority (info, priority);
- }
- } else {
- g_error_free (error);
- }
- g_free (key_name);
+ g_free (schema);
out:
if (info != NULL) {
@@ -337,15 +316,6 @@ mate_settings_manager_start (MateSettingsManager *manager,
goto out;
}
- manager->priv->mateconf_client = mateconf_client_get_default ();
-
- mate_settings_profile_start ("preloading mateconf keys");
- mateconf_client_add_dir (manager->priv->mateconf_client,
- manager->priv->settings_prefix,
- MATECONF_CLIENT_PRELOAD_RECURSIVE,
- NULL);
- mate_settings_profile_end ("preloading mateconf keys");
-
_load_all (manager);
ret = TRUE;
@@ -355,16 +325,6 @@ mate_settings_manager_start (MateSettingsManager *manager,
return ret;
}
-gboolean
-mate_settings_manager_start_with_settings_prefix (MateSettingsManager *manager,
- const char *settings_prefix,
- GError **error)
-{
- g_object_set (manager, "settings-prefix", settings_prefix, NULL);
-
- return mate_settings_manager_start (manager, error);
-}
-
void
mate_settings_manager_stop (MateSettingsManager *manager)
{
@@ -380,60 +340,6 @@ mate_settings_manager_stop (MateSettingsManager *manager)
#endif
_unload_all (manager);
-
- mateconf_client_remove_dir (manager->priv->mateconf_client,
- manager->priv->settings_prefix,
- NULL);
- g_object_unref (manager->priv->mateconf_client);
- manager->priv->mateconf_client = NULL;
-}
-
-static void
-_set_settings_prefix (MateSettingsManager *self,
- const char *prefix)
-{
- g_free (self->priv->settings_prefix);
- self->priv->settings_prefix = g_strdup (prefix);
-}
-
-static void
-mate_settings_manager_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- MateSettingsManager *self;
-
- self = MATE_SETTINGS_MANAGER (object);
-
- switch (prop_id) {
- case PROP_SETTINGS_PREFIX:
- _set_settings_prefix (self, g_value_get_string (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-mate_settings_manager_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- MateSettingsManager *self;
-
- self = MATE_SETTINGS_MANAGER (object);
-
- switch (prop_id) {
- case PROP_SETTINGS_PREFIX:
- g_value_set_string (value, self->priv->settings_prefix);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
}
static GObject *
@@ -470,8 +376,6 @@ mate_settings_manager_class_init (MateSettingsManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->get_property = mate_settings_manager_get_property;
- object_class->set_property = mate_settings_manager_set_property;
object_class->constructor = mate_settings_manager_constructor;
object_class->dispose = mate_settings_manager_dispose;
object_class->finalize = mate_settings_manager_finalize;
@@ -497,14 +401,6 @@ mate_settings_manager_class_init (MateSettingsManagerClass *klass)
G_TYPE_NONE,
1, G_TYPE_STRING);
- g_object_class_install_property (object_class,
- PROP_SETTINGS_PREFIX,
- g_param_spec_string ("settings-prefix",
- "settings-prefix",
- "settings-prefix",
- DEFAULT_SETTINGS_PREFIX,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
g_type_class_add_private (klass, sizeof (MateSettingsManagerPrivate));
dbus_g_object_type_install_info (MATE_TYPE_SETTINGS_MANAGER, &dbus_glib_mate_settings_manager_object_info);
@@ -529,8 +425,6 @@ mate_settings_manager_finalize (GObject *object)
g_return_if_fail (manager->priv != NULL);
- g_free (manager->priv->settings_prefix);
-
G_OBJECT_CLASS (mate_settings_manager_parent_class)->finalize (object);
}
diff --git a/mate-settings-daemon/mate-settings-manager.h b/mate-settings-daemon/mate-settings-manager.h
index f831b8c..97277b4 100644
--- a/mate-settings-daemon/mate-settings-manager.h
+++ b/mate-settings-daemon/mate-settings-manager.h
@@ -39,7 +39,7 @@ typedef struct MateSettingsManagerPrivate MateSettingsManagerPrivate;
typedef struct
{
GObject parent;
- MateSettingsManagerPrivate *priv;
+ MateSettingsManagerPrivate *priv;
} MateSettingsManager;
typedef struct
@@ -63,10 +63,7 @@ GQuark mate_settings_manager_error_quark (void);
GType mate_settings_manager_get_type (void);
MateSettingsManager * mate_settings_manager_new (void);
-gboolean mate_settings_manager_start_with_settings_prefix
- (MateSettingsManager *manager,
- const char *settings_prefix,
- GError **error);
+
gboolean mate_settings_manager_start (MateSettingsManager *manager,
GError **error);
void mate_settings_manager_stop (MateSettingsManager *manager);
diff --git a/mate-settings-daemon/mate-settings-manager.xml b/mate-settings-daemon/mate-settings-manager.xml
index ad68f5d..b1e316f 100644
--- a/mate-settings-daemon/mate-settings-manager.xml
+++ b/mate-settings-daemon/mate-settings-manager.xml
@@ -4,9 +4,6 @@
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="mate_settings_manager"/>
<method name="Awake"/>
<method name="Start"/>
- <method name="StartWithSettingsPrefix">
- <arg name="settings_prefix" direction="in" type="s"/>
- </method>
<signal name="PluginActivated">
<arg name="name" type="s"/>
</signal>
diff --git a/mate-settings-daemon/mate-settings-plugin-info.c b/mate-settings-daemon/mate-settings-plugin-info.c
index c5cd494..9fa333e 100644
--- a/mate-settings-daemon/mate-settings-plugin-info.c
+++ b/mate-settings-daemon/mate-settings-plugin-info.c
@@ -25,7 +25,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gmodule.h>
-#include <mateconf/mateconf-client.h>
+#include <gio/gio.h>
#include "mate-settings-plugin-info.h"
#include "mate-settings-module.h"
@@ -48,10 +48,10 @@ typedef enum
struct MateSettingsPluginInfoPrivate
{
char *file;
- MateConfClient *client;
+ GSettings *settings;
char *location;
- MateSettingsPluginLoader loader;
+ MateSettingsPluginLoader loader;
GTypeModule *module;
char *name;
@@ -117,14 +117,7 @@ mate_settings_plugin_info_finalize (GObject *object)
g_free (info->priv->copyright);
g_strfreev (info->priv->authors);
- if (info->priv->enabled_notification_id != 0) {
- mateconf_client_notify_remove (info->priv->client,
- info->priv->enabled_notification_id);
-
- info->priv->enabled_notification_id = 0;
- }
-
- g_object_unref (info->priv->client);
+ g_object_unref (info->priv->settings);
G_OBJECT_CLASS (mate_settings_plugin_info_parent_class)->finalize (object);
}
@@ -164,7 +157,6 @@ static void
mate_settings_plugin_info_init (MateSettingsPluginInfo *info)
{
info->priv = MATE_SETTINGS_PLUGIN_INFO_GET_PRIVATE (info);
- info->priv->client = mateconf_client_get_default ();
}
static void
@@ -296,32 +288,17 @@ mate_settings_plugin_info_fill_from_file (MateSettingsPluginInfo *info,
}
static void
-plugin_enabled_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
+plugin_enabled_cb (GSettings *settings,
+ gchar *key,
MateSettingsPluginInfo *info)
{
- if (mateconf_value_get_bool (entry->value)) {
+ if (g_settings_get_boolean (info->priv->settings, key)) {
mate_settings_plugin_info_activate (info);
} else {
mate_settings_plugin_info_deactivate (info);
}
}
-void
-mate_settings_plugin_info_set_enabled_key_name (MateSettingsPluginInfo *info,
- const char *key_name)
-{
- info->priv->enabled_notification_id = mateconf_client_notify_add (info->priv->client,
- key_name,
- (MateConfClientNotifyFunc)plugin_enabled_cb,
- info,
- NULL,
- NULL);
-
- info->priv->enabled = mateconf_client_get_bool (info->priv->client, key_name, NULL);
-}
-
MateSettingsPluginInfo *
mate_settings_plugin_info_new_from_file (const char *filename)
{
@@ -614,3 +591,16 @@ mate_settings_plugin_info_set_priority (MateSettingsPluginInfo *info,
info->priv->priority = priority;
}
+
+void
+mate_settings_plugin_info_set_schema (MateSettingsPluginInfo *info,
+ gchar *schema)
+{
+ g_return_if_fail (MATE_IS_SETTINGS_PLUGIN_INFO (info));
+
+ info->priv->settings = g_settings_new (schema);
+ info->priv->priority = g_settings_get_int(info->priv->settings, "priority");
+ info->priv->enabled = g_settings_get_boolean(info->priv->settings, "active");
+
+ g_signal_connect (info->priv->settings, "changed::active", G_CALLBACK (plugin_enabled_cb), info);
+}
diff --git a/mate-settings-daemon/mate-settings-plugin-info.h b/mate-settings-daemon/mate-settings-plugin-info.h
index b99036a..93903d2 100644
--- a/mate-settings-daemon/mate-settings-plugin-info.h
+++ b/mate-settings-daemon/mate-settings-plugin-info.h
@@ -54,8 +54,6 @@ GType mate_settings_plugin_info_get_type (void) G_GNUC_CONS
MateSettingsPluginInfo *mate_settings_plugin_info_new_from_file (const char *filename);
-void mate_settings_plugin_info_set_enabled_key_name (MateSettingsPluginInfo *info,
- const char *key_name);
gboolean mate_settings_plugin_info_activate (MateSettingsPluginInfo *info);
gboolean mate_settings_plugin_info_deactivate (MateSettingsPluginInfo *info);
@@ -72,8 +70,9 @@ const char *mate_settings_plugin_info_get_location (MateSettingsPluginIn
int mate_settings_plugin_info_get_priority (MateSettingsPluginInfo *info);
void mate_settings_plugin_info_set_priority (MateSettingsPluginInfo *info,
- int priority);
-
+ int priority);
+void mate_settings_plugin_info_set_schema (MateSettingsPluginInfo *info,
+ gchar *schema);
#ifdef __cplusplus
}
#endif