gnome-settings-daemon r168 - in trunk: . data gnome-settings-daemon
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-settings-daemon r168 - in trunk: . data gnome-settings-daemon
- Date: Fri, 22 Feb 2008 23:15:40 +0000 (GMT)
Author: mccann
Date: Fri Feb 22 23:15:39 2008
New Revision: 168
URL: http://svn.gnome.org/viewvc/gnome-settings-daemon?rev=168&view=rev
Log:
2008-02-22 William Jon McCann <jmccann redhat com>
* data/gnome-settings-daemon.schemas.in:
* gnome-settings-daemon/gnome-settings-manager.c: (_load_file):
* gnome-settings-daemon/gnome-settings-plugin-info.c:
(gnome_settings_plugin_info_set_priority):
* gnome-settings-daemon/gnome-settings-plugin-info.h:
Allow gconf to override priorities. Set sound plugin
priority to 1 (highest).
Fixes #515340
Modified:
trunk/ChangeLog
trunk/data/gnome-settings-daemon.schemas.in
trunk/gnome-settings-daemon/gnome-settings-manager.c
trunk/gnome-settings-daemon/gnome-settings-plugin-info.c
trunk/gnome-settings-daemon/gnome-settings-plugin-info.h
Modified: trunk/data/gnome-settings-daemon.schemas.in
==============================================================================
--- trunk/data/gnome-settings-daemon.schemas.in (original)
+++ trunk/data/gnome-settings-daemon.schemas.in Fri Feb 22 23:15:39 2008
@@ -133,6 +133,17 @@
<long>Set to True to enable the plugin to manage sound settings.</long>
</locale>
</schema>
+ <schema>
+ <key>/schemas/apps/gnome_settings_daemon/plugins/sound/priority</key>
+ <applyto>/apps/gnome_settings_daemon/plugins/sound/priority</applyto>
+ <owner>gnome-settings-daemon</owner>
+ <type>int</type>
+ <default>1</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
<schema>
<key>/schemas/apps/gnome_settings_daemon/plugins/typing-break/active</key>
Modified: trunk/gnome-settings-daemon/gnome-settings-manager.c
==============================================================================
--- trunk/gnome-settings-daemon/gnome-settings-manager.c (original)
+++ trunk/gnome-settings-daemon/gnome-settings-manager.c Fri Feb 22 23:15:39 2008
@@ -31,6 +31,7 @@
#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
+#include <gconf/gconf-client.h>
#include "gnome-settings-plugin-info.h"
#include "gnome-settings-manager.h"
@@ -70,21 +71,6 @@
static gpointer manager_object = NULL;
-static GnomeSettingsPluginInfo *
-_load_info (GnomeSettingsManager *manager,
- const char *file)
-{
- GnomeSettingsPluginInfo *info;
-
- g_return_val_if_fail (file != NULL, NULL);
-
- g_debug ("Loading plugin: %s", file);
-
- info = gnome_settings_plugin_info_new_from_file (file);
-
- return info;
-}
-
static void
maybe_activate_plugin (GnomeSettingsPluginInfo *info, gpointer user_data)
{
@@ -153,8 +139,13 @@
{
GnomeSettingsPluginInfo *info;
char *key_name;
+ GConfClient *client;
+ int priority;
+ GError *error;
- info = _load_info (manager, filename);
+ g_debug ("Loading plugin: %s", filename);
+
+ info = gnome_settings_plugin_info_new_from_file (filename);
if (info == NULL) {
return;
}
@@ -179,6 +170,23 @@
gnome_settings_plugin_info_get_location (info));
gnome_settings_plugin_info_set_enabled_key_name (info, key_name);
g_free (key_name);
+
+ key_name = g_strdup_printf ("%s/%s/priority",
+ manager->priv->gconf_prefix,
+ gnome_settings_plugin_info_get_location (info));
+ client = gconf_client_get_default ();
+ error = NULL;
+ priority = gconf_client_get_int (client, key_name, &error);
+ if (error == NULL) {
+ if (priority > 0) {
+ gnome_settings_plugin_info_set_priority (info, priority);
+ }
+ } else {
+ g_error_free (error);
+ }
+ g_object_unref (client);
+ g_free (key_name);
+
}
static void
Modified: trunk/gnome-settings-daemon/gnome-settings-plugin-info.c
==============================================================================
--- trunk/gnome-settings-daemon/gnome-settings-plugin-info.c (original)
+++ trunk/gnome-settings-daemon/gnome-settings-plugin-info.c Fri Feb 22 23:15:39 2008
@@ -583,10 +583,19 @@
return info->priv->location;
}
-gint
+int
gnome_settings_plugin_info_get_priority (GnomeSettingsPluginInfo *info)
{
g_return_val_if_fail (info != NULL, PLUGIN_PRIORITY_DEFAULT);
return info->priv->priority;
}
+
+void
+gnome_settings_plugin_info_set_priority (GnomeSettingsPluginInfo *info,
+ int priority)
+{
+ g_return_if_fail (info != NULL);
+
+ info->priv->priority = priority;
+}
Modified: trunk/gnome-settings-daemon/gnome-settings-plugin-info.h
==============================================================================
--- trunk/gnome-settings-daemon/gnome-settings-plugin-info.h (original)
+++ trunk/gnome-settings-daemon/gnome-settings-plugin-info.h Fri Feb 22 23:15:39 2008
@@ -67,7 +67,10 @@
const char *gnome_settings_plugin_info_get_website (GnomeSettingsPluginInfo *info);
const char *gnome_settings_plugin_info_get_copyright (GnomeSettingsPluginInfo *info);
const char *gnome_settings_plugin_info_get_location (GnomeSettingsPluginInfo *info);
-gint gnome_settings_plugin_info_get_priority (GnomeSettingsPluginInfo *info);
+int gnome_settings_plugin_info_get_priority (GnomeSettingsPluginInfo *info);
+
+void gnome_settings_plugin_info_set_priority (GnomeSettingsPluginInfo *info,
+ int priority);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]