[gnome-applets] cpufreq: port to GSettings



commit 6d61304f8ee62eb2776725b8424140a332f651cf
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sat Sep 20 22:00:49 2014 +0300

    cpufreq: port to GSettings

 cpufreq/Makefile.am                                |   30 +++--
 cpufreq/cpufreq-applet.schemas.in                  |   36 -----
 ...g.gnome.gnome-applets.cpufreq.gschema.xml.in.in |   19 +++
 cpufreq/src/cpufreq-applet.c                       |   17 +--
 cpufreq/src/cpufreq-prefs.c                        |  161 +++-----------------
 cpufreq/src/cpufreq-prefs.h                        |    2 +-
 po/POTFILES.in                                     |    2 +-
 po/POTFILES.skip                                   |    1 +
 8 files changed, 69 insertions(+), 199 deletions(-)
---
diff --git a/cpufreq/Makefile.am b/cpufreq/Makefile.am
index 9315a7e..805fd4c 100644
--- a/cpufreq/Makefile.am
+++ b/cpufreq/Makefile.am
@@ -1,10 +1,20 @@
 SUBDIRS = help pixmaps src
 
-schemasdir       = @GCONF_SCHEMA_FILE_DIR@
-schemas_in_files = cpufreq-applet.schemas.in
-schemas_DATA     = $(schemas_in_files:.schemas.in=.schemas)
+gsettings_schemas_in_in = \
+       org.gnome.gnome-applets.cpufreq.gschema.xml.in.in
 
- INTLTOOL_SCHEMAS_RULE@
+ INTLTOOL_XML_NOMERGE_RULE@
+
+gsettings_ENUM_NAMESPACE = org.gnome.gnome-applets.cpufreq
+gsettings_ENUM_FILES = $(top_srcdir)/cpufreq/src/cpufreq-applet.h
+
+gsettings_schemas_in = $(gsettings_schemas_in_in:.xml.in.in=.xml.in)
+gsettings_SCHEMAS = $(gsettings_schemas_in:.xml.in=.xml)
+
+%.gschema.xml.in: %.gschema.xml.in.in Makefile
+       $(AM_V_GEN) $(SED) -e 's^\ GETTEXT_PACKAGE\@^$(GETTEXT_PACKAGE)^g' < $< > $@
+
+ GSETTINGS_RULES@
 
 appletdir       = $(LIBPANEL_APPLET_DIR)
 applet_in_files = org.gnome.applets.CPUFreqApplet.panel-applet.in
@@ -32,23 +42,21 @@ builder_DATA = cpufreq-preferences.ui
 uidir = $(pkgdatadir)/ui
 ui_DATA = cpufreq-applet-menu.xml
 
-if GCONF_SCHEMAS_INSTALL
-install-data-local:
-       -GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule 
$(top_builddir)/cpufreq/$(schemas_DATA) ;
-endif
-
 CLEANFILES = \
+       $(gsettings__enum_file) \
+       $(gsettings_SCHEMAS_in) \
+       $(gsettings_SCHEMAS) \
+       *.gschema.valid \
              $(applet_DATA)                    \
              $(applet_DATA).in                 \
              $(service_DATA)                   \
-            cpufreq-applet.schemas             \
             *.bak                              \
             *.gladep
 
 EXTRA_DIST = \
+       $(gsettings_schemas_in_in) \
              org.gnome.applets.CPUFreqApplet.panel-applet.in.in        \
              $(service_in_files)                               \
-            $(schemas_in_files)                                \
             $(builder_DATA)                                    \
             $(ui_DATA)
             
diff --git a/cpufreq/org.gnome.gnome-applets.cpufreq.gschema.xml.in.in 
b/cpufreq/org.gnome.gnome-applets.cpufreq.gschema.xml.in.in
new file mode 100644
index 0000000..acc3fee
--- /dev/null
+++ b/cpufreq/org.gnome.gnome-applets.cpufreq.gschema.xml.in.in
@@ -0,0 +1,19 @@
+<schemalist gettext-domain="@GETTEXT_PACKAGE@">
+       <schema id="org.gnome.gnome-applets.cpufreq">
+               <key name="cpu" type="i">
+                       <default>0</default>
+                       <_summary>CPU to Monitor</_summary>
+                       <_description>Set the CPU to monitor. In a single processor system you don't have to 
change it.</_description>
+               </key>
+               <key name="show-mode" enum="org.gnome.gnome-applets.cpufreq.CPUFreqShowMode">
+                       <default>'both'</default>
+                       <_summary>Mode to show cpu usage</_summary>
+                       <_description>A 'graphic' value means to show the applet in graphic mode (pixmap 
only), 'text' to show the applet in text mode (not to show the pixmap) and 'both' to show the applet in 
graphic and text mode.</_description>
+               </key>
+               <key name="show-text-mode" enum="org.gnome.gnome-applets.cpufreq.CPUFreqShowTextMode">
+                       <default>'frequency-unit'</default>
+                       <_summary>The type of text to display (if the text is enabled).</_summary>
+                       <_description>A 'frequency' value means to show cpu frequency, 'frequency-unit' to 
show frequency and units, and 'percentage' to show percentage instead of frequency.</_description>
+               </key>
+       </schema>
+</schemalist>
diff --git a/cpufreq/src/cpufreq-applet.c b/cpufreq/src/cpufreq-applet.c
index 8f2b05c..a703aed 100644
--- a/cpufreq/src/cpufreq-applet.c
+++ b/cpufreq/src/cpufreq-applet.c
@@ -26,7 +26,6 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include <panel-applet.h>
-#include <panel-applet-gconf.h>
 #include <glib/gi18n.h>
 #include <stdlib.h>
 #include <string.h>
@@ -938,23 +937,19 @@ cpufreq_applet_setup (CPUFreqApplet *applet)
 {
        GtkActionGroup *action_group;
        gchar          *ui_path;
-        AtkObject      *atk_obj;
-        gchar          *prefs_key;
+       AtkObject      *atk_obj;
+       GSettings *settings;
 
        g_set_application_name  (_("CPU Frequency Scaling Monitor"));
 
        gtk_window_set_default_icon_name ("gnome-cpu-frequency-applet");
-       
-        panel_applet_add_preferences (PANEL_APPLET (applet),
-                                      "/schemas/apps/cpufreq-applet/prefs", NULL);
-           
+
         /* Preferences */
         if (applet->prefs)
                 g_object_unref (applet->prefs);
-        
-        prefs_key = panel_applet_get_preferences_key (PANEL_APPLET (applet));
-        applet->prefs = cpufreq_prefs_new (prefs_key);
-        g_free (prefs_key);
+
+        settings = panel_applet_settings_new (PANEL_APPLET (applet), "org.gnome.gnome-applets.cpufreq");
+        applet->prefs = cpufreq_prefs_new (settings);
 
        g_signal_connect (G_OBJECT (applet->prefs),
                          "notify::cpu",
diff --git a/cpufreq/src/cpufreq-prefs.c b/cpufreq/src/cpufreq-prefs.c
index f091cee..332074c 100644
--- a/cpufreq/src/cpufreq-prefs.c
+++ b/cpufreq/src/cpufreq-prefs.c
@@ -25,27 +25,24 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#include <gconf/gconf-client.h>
 
 #include "cpufreq-prefs.h"
 #include "cpufreq-utils.h"
 
 enum {
        PROP_0,
-       PROP_GCONF_KEY,
        PROP_CPU,
        PROP_SHOW_MODE,
        PROP_SHOW_TEXT_MODE,
 };
 
 struct _CPUFreqPrefsPrivate {
-       GConfClient        *gconf_client;
-       gchar              *gconf_key;
-       
        guint               cpu;
        CPUFreqShowMode     show_mode;
        CPUFreqShowTextMode show_text_mode;
 
+       GSettings *settings;
+
        /* Preferences dialog */
        GtkWidget *dialog;
        GtkWidget *show_freq;
@@ -82,9 +79,7 @@ cpufreq_prefs_init (CPUFreqPrefs *prefs)
 {
        prefs->priv = CPUFREQ_PREFS_GET_PRIVATE (prefs);
 
-       prefs->priv->gconf_client = gconf_client_get_default ();
-       prefs->priv->gconf_key = NULL;
-
+       prefs->priv->settings = NULL;
        prefs->priv->cpu = 0;
 }
 
@@ -100,14 +95,6 @@ cpufreq_prefs_class_init (CPUFreqPrefsClass *klass)
 
        /* Properties */
        g_object_class_install_property (g_object_class,
-                                        PROP_GCONF_KEY,
-                                        g_param_spec_string ("gconf-key",
-                                                             "GConfKey",
-                                                             "The applet gconf key",
-                                                             NULL,
-                                                             G_PARAM_WRITABLE |
-                                                             G_PARAM_CONSTRUCT_ONLY));
-       g_object_class_install_property (g_object_class,
                                         PROP_CPU,
                                         g_param_spec_uint ("cpu",
                                                            "CPU",
@@ -141,14 +128,9 @@ cpufreq_prefs_finalize (GObject *object)
 {
        CPUFreqPrefs *prefs = CPUFREQ_PREFS (object);
 
-       if (prefs->priv->gconf_client) {
-               g_object_unref (prefs->priv->gconf_client);
-               prefs->priv->gconf_client = NULL;
-       }
-
-       if (prefs->priv->gconf_key) {
-               g_free (prefs->priv->gconf_key);
-               prefs->priv->gconf_key = NULL;
+       if (prefs->priv->settings) {
+               g_object_unref (prefs->priv->settings);
+               prefs->priv->settings = NULL;
        }
 
        if (prefs->priv->dialog) {
@@ -169,25 +151,13 @@ cpufreq_prefs_set_property (GObject      *object,
        gboolean      update_sensitivity = FALSE;
 
        switch (prop_id) {
-       case PROP_GCONF_KEY:
-               prefs->priv->gconf_key = g_value_dup_string (value);
-               break;
        case PROP_CPU: {
                guint cpu;
 
                cpu = g_value_get_uint (value);
                if (prefs->priv->cpu != cpu) {
-                       gchar *key;
-                       
                        prefs->priv->cpu = cpu;
-                       key = g_strjoin ("/",
-                                        prefs->priv->gconf_key,
-                                        "cpu",
-                                        NULL);
-                       gconf_client_set_int (prefs->priv->gconf_client,
-                                             key, prefs->priv->cpu,
-                                             NULL);
-                       g_free (key);
+                       g_settings_set_int (prefs->priv->settings, "cpu", cpu);
                }
        }
                break;
@@ -196,18 +166,9 @@ cpufreq_prefs_set_property (GObject      *object,
 
                mode = g_value_get_enum (value);
                if (prefs->priv->show_mode != mode) {
-                       gchar *key;
-
                        update_sensitivity = TRUE;
                        prefs->priv->show_mode = mode;
-                       key = g_strjoin ("/",
-                                        prefs->priv->gconf_key,
-                                        "show_mode",
-                                        NULL);
-                       gconf_client_set_int (prefs->priv->gconf_client,
-                                             key, prefs->priv->show_mode,
-                                             NULL);
-                       g_free (key);
+                       g_settings_set_enum (prefs->priv->settings, "show-mode", mode);
                }
        }
                break;
@@ -216,18 +177,9 @@ cpufreq_prefs_set_property (GObject      *object,
 
                mode = g_value_get_enum (value);
                if (prefs->priv->show_text_mode != mode) {
-                       gchar *key;
-
                        update_sensitivity = TRUE;
                        prefs->priv->show_text_mode = mode;
-                       key = g_strjoin ("/",
-                                        prefs->priv->gconf_key,
-                                        "show_text_mode",
-                                        NULL);
-                       gconf_client_set_int (prefs->priv->gconf_client,
-                                             key, prefs->priv->show_text_mode,
-                                             NULL);
-                       g_free (key);
+                       g_settings_set_enum (prefs->priv->settings, "show-text-mode", mode);
                }
        }
                break;
@@ -248,9 +200,6 @@ cpufreq_prefs_get_property (GObject    *object,
        CPUFreqPrefs *prefs = CPUFREQ_PREFS (object);
 
        switch (prop_id) {
-       case PROP_GCONF_KEY:
-               /* Is not readable */
-               break;
        case PROP_CPU:
                g_value_set_uint (value, prefs->priv->cpu);
                break;
@@ -268,74 +217,24 @@ cpufreq_prefs_get_property (GObject    *object,
 static void
 cpufreq_prefs_setup (CPUFreqPrefs *prefs)
 {
-       guint                cpu;
-       CPUFreqShowMode      show_mode;
-       CPUFreqShowTextMode  show_text_mode;
-       gchar               *key;
-       GError              *error = NULL;
-
-       g_assert (GCONF_IS_CLIENT (prefs->priv->gconf_client));
-       g_assert (prefs->priv->gconf_key != NULL);
-
-       key = g_strjoin ("/", prefs->priv->gconf_key, "cpu", NULL);
-       cpu = gconf_client_get_int (prefs->priv->gconf_client,
-                                   key, &error);
-       g_free (key);
-       /* In case anything went wrong with gconf, get back to the default */
-       if (error) {
-               g_warning ("%s", error->message);
-               cpu = 0;
-               g_error_free (error);
-               error = NULL;
-       }
-       prefs->priv->cpu = cpu;
-
-       key = g_strjoin ("/", prefs->priv->gconf_key, "show_mode", NULL);
-       show_mode = gconf_client_get_int (prefs->priv->gconf_client,
-                                         key, &error);
-       g_free (key);
-       /* In case anything went wrong with gconf, get back to the default */
-       if (error ||
-           show_mode < CPUFREQ_MODE_GRAPHIC ||
-           show_mode > CPUFREQ_MODE_BOTH) {
-               show_mode = CPUFREQ_MODE_BOTH;
-               if (error) {
-                       g_warning ("%s", error->message);
-                       g_error_free (error);
-                       error = NULL;
-               }
-       }
-       prefs->priv->show_mode = show_mode;
-
-       key = g_strjoin ("/", prefs->priv->gconf_key, "show_text_mode", NULL);
-       show_text_mode = gconf_client_get_int (prefs->priv->gconf_client,
-                                              key, &error);
-       g_free (key);
-       /* In case anything went wrong with gconf, get back to the default */
-       if (error ||
-           show_text_mode < CPUFREQ_MODE_TEXT_FREQUENCY ||
-           show_text_mode > CPUFREQ_MODE_TEXT_PERCENTAGE) {
-               show_text_mode = CPUFREQ_MODE_TEXT_FREQUENCY_UNIT;
-               if (error) {
-                       g_warning ("%s", error->message);
-                       g_error_free (error);
-                       error = NULL;
-               }
-       }
-       prefs->priv->show_text_mode = show_text_mode;
+       g_assert (G_IS_SETTINGS (prefs->priv->settings));
+
+       prefs->priv->cpu = g_settings_get_int (prefs->priv->settings, "cpu");
+       prefs->priv->show_mode = g_settings_get_enum (prefs->priv->settings, "show-mode");
+       prefs->priv->show_text_mode = g_settings_get_enum (prefs->priv->settings, "show-text-mode");
+
 }
 
 CPUFreqPrefs *
-cpufreq_prefs_new (const gchar *gconf_key)
+cpufreq_prefs_new (GSettings *settings)
 {
        CPUFreqPrefs *prefs;
 
-       g_return_val_if_fail (gconf_key != NULL, NULL);
+       g_return_val_if_fail (settings != NULL, NULL);
+
+       prefs = CPUFREQ_PREFS (g_object_new (CPUFREQ_TYPE_PREFS, NULL));
+       prefs->priv->settings = g_object_ref (settings);
 
-       prefs = CPUFREQ_PREFS (g_object_new (CPUFREQ_TYPE_PREFS,
-                                            "gconf-key", gconf_key,
-                                            NULL));
-       
        cpufreq_prefs_setup (prefs);
 
        return prefs;
@@ -369,22 +268,6 @@ cpufreq_prefs_get_show_text_mode (CPUFreqPrefs *prefs)
 }
 
 /* Preferences Dialog */
-static gboolean
-cpufreq_prefs_key_is_writable (CPUFreqPrefs *prefs, const gchar *key)
-{
-        gboolean  writable;
-        gchar    *fullkey;
-
-       g_assert (prefs->priv->gconf_client != NULL);
-
-       fullkey = g_strjoin ("/", prefs->priv->gconf_key, key, NULL);
-        writable = gconf_client_key_is_writable (prefs->priv->gconf_client,
-                                                fullkey, NULL);
-        g_free (fullkey);
-
-        return writable;
-}
-
 static void
 cpufreq_prefs_dialog_show_freq_toggled (GtkWidget *show_freq, CPUFreqPrefs *prefs)
 {
@@ -498,12 +381,12 @@ static void
 cpufreq_prefs_dialog_update_sensitivity (CPUFreqPrefs *prefs)
 {
        gtk_widget_set_sensitive (prefs->priv->show_mode_combo,
-                                 cpufreq_prefs_key_is_writable (prefs, "show_mode"));
+                                 g_settings_is_writable (prefs->priv->settings, "show-mode"));
        
        if (prefs->priv->show_mode != CPUFREQ_MODE_GRAPHIC) {
                gboolean key_writable;
                
-               key_writable = cpufreq_prefs_key_is_writable (prefs, "show_text_mode");
+               key_writable = g_settings_is_writable (prefs->priv->settings, "show-text-mode");
                
                gtk_widget_set_sensitive (prefs->priv->show_freq,
                                          (TRUE && key_writable));
diff --git a/cpufreq/src/cpufreq-prefs.h b/cpufreq/src/cpufreq-prefs.h
index 90ad137..a265514 100644
--- a/cpufreq/src/cpufreq-prefs.h
+++ b/cpufreq/src/cpufreq-prefs.h
@@ -51,7 +51,7 @@ struct _CPUFreqPrefsClass {
 
 GType               cpufreq_prefs_get_type           (void) G_GNUC_CONST;
 
-CPUFreqPrefs       *cpufreq_prefs_new                (const gchar  *gconf_key);
+CPUFreqPrefs       *cpufreq_prefs_new                (GSettings *settings);
 
 guint               cpufreq_prefs_get_cpu            (CPUFreqPrefs *prefs);
 CPUFreqShowMode     cpufreq_prefs_get_show_mode      (CPUFreqPrefs *prefs);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 34fb316..7b296ae 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -14,9 +14,9 @@ charpick/charpick.c
 [type: gettext/ini]charpick/org.gnome.applets.CharpickerApplet.panel-applet.in.in
 charpick/org.gnome.gnome-applets.charpick.gschema.xml.in.in
 charpick/properties.c
-cpufreq/cpufreq-applet.schemas.in
 [type: gettext/glade]cpufreq/cpufreq-preferences.ui
 [type: gettext/ini]cpufreq/org.gnome.applets.CPUFreqApplet.panel-applet.in.in
+cpufreq/org.gnome.gnome-applets.cpufreq.gschema.xml.in.in
 cpufreq/src/cpufreq-applet.c
 cpufreq/src/cpufreq-prefs.c
 cpufreq/src/cpufreq-monitor-cpuinfo.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 1e6b584..5a16a2b 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -9,6 +9,7 @@ battstat/org.gnome.gnome-applets.battstat.gschema.xml.in
 charpick/org.gnome.applets.CharpickerApplet.panel-applet.in
 charpick/org.gnome.gnome-applets.charpick.gschema.xml.in
 cpufreq/org.gnome.applets.CPUFreqApplet.panel-applet.in
+cpufreq/org.gnome.gnome-applets.cpufreq.gschema.xml.in
 drivemount/drivemount/org.gnome.applets.DriveMountApplet.panel-applet.in
 geyes/org.gnome.applets.GeyesApplet.panel-applet.in
 geyes/org.gnome.gnome-applets.geyes.gschema.xml.in


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