diff options
author | Stefano Karapetsas <[email protected]> | 2012-10-01 22:58:54 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2012-10-01 22:58:54 +0200 |
commit | d2c7965aa092cecb857bd0301b7c9ff2dc10f9f8 (patch) | |
tree | 016ada3eb78c3c6f438abab5635ba17474d47a2b /mate-settings-daemon | |
parent | 03478b4d1d9fdc5f2f2fdbf9c41d963dabc0d00b (diff) | |
download | mate-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.c | 9 | ||||
-rw-r--r-- | mate-settings-daemon/mate-settings-manager.c | 126 | ||||
-rw-r--r-- | mate-settings-daemon/mate-settings-manager.h | 7 | ||||
-rw-r--r-- | mate-settings-daemon/mate-settings-manager.xml | 3 | ||||
-rw-r--r-- | mate-settings-daemon/mate-settings-plugin-info.c | 50 | ||||
-rw-r--r-- | mate-settings-daemon/mate-settings-plugin-info.h | 7 |
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 |