gnome-settings-daemon r168 - in trunk: . data gnome-settings-daemon



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]