summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am10
-rw-r--r--src/gpm-backlight.c101
-rw-r--r--src/gpm-common.c108
-rw-r--r--src/gpm-common.h177
-rw-r--r--src/gpm-control.c53
-rw-r--r--src/gpm-dpms.c47
-rw-r--r--src/gpm-dpms.h2
-rw-r--r--src/gpm-engine.c93
-rw-r--r--src/gpm-idle.c1
-rw-r--r--src/gpm-kbd-backlight.c734
-rw-r--r--src/gpm-kbd-backlight.h79
-rw-r--r--src/gpm-manager.c219
-rw-r--r--src/gpm-manager.h3
-rw-r--r--src/gpm-phone.c1
-rw-r--r--src/gpm-prefs-core.c386
-rw-r--r--src/gpm-prefs-server.c138
-rw-r--r--src/gpm-prefs-server.h67
-rw-r--r--src/gpm-screensaver.c123
-rw-r--r--src/gpm-screensaver.h5
-rw-r--r--src/gpm-statistics.c55
-rw-r--r--src/gpm-tray-icon.c30
-rw-r--r--src/org.mate.PowerManager.xml3
22 files changed, 1250 insertions, 1185 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 9aa8cdc..6393bbd 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -77,6 +77,8 @@ libgpmshared_a_SOURCES = \
egg-console-kit.c \
gpm-common.h \
gpm-common.c \
+ gpm-brightness.h \
+ gpm-brightness.c \
gpm-marshal.h \
gpm-marshal.c \
gpm-upower.c \
@@ -146,8 +148,6 @@ mate_power_manager_SOURCES = \
gpm-phone.c \
gpm-backlight.h \
gpm-backlight.c \
- gpm-prefs-server.h \
- gpm-prefs-server.c \
gpm-idle.h \
gpm-idle.c \
gpm-load.h \
@@ -158,8 +158,8 @@ mate_power_manager_SOURCES = \
gpm-control.c \
gpm-button.h \
gpm-button.c \
- gpm-brightness.h \
- gpm-brightness.c \
+ gpm-kbd-backlight.h \
+ gpm-kbd-backlight.c \
gpm-main.c \
gpm-manager.h \
gpm-manager.c \
@@ -218,8 +218,6 @@ mate_power_self_test_SOURCES = \
egg-array-float.c \
egg-console-kit.h \
egg-console-kit.c \
- gpm-prefs-server.h \
- gpm-prefs-server.c \
gpm-control.h \
gpm-control.c \
gpm-networkmanager.h \
diff --git a/src/gpm-backlight.c b/src/gpm-backlight.c
index c0479fd..573778a 100644
--- a/src/gpm-backlight.c
+++ b/src/gpm-backlight.c
@@ -39,7 +39,6 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "gpm-button.h"
@@ -53,7 +52,6 @@
#include "gpm-idle.h"
#include "gpm-marshal.h"
#include "gpm-stock-icons.h"
-#include "gpm-prefs-server.h"
#include "egg-console-kit.h"
#define GPM_BACKLIGHT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GPM_TYPE_BACKLIGHT, GpmBacklightPrivate))
@@ -63,7 +61,7 @@ struct GpmBacklightPrivate
UpClient *client;
GpmBrightness *brightness;
GpmButton *button;
- MateConfClient *conf;
+ GSettings *settings;
GtkWidget *popup;
GpmControl *control;
GpmDpms *dpms;
@@ -289,7 +287,7 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
return FALSE;
}
- do_laptop_lcd = mateconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_ENABLE, NULL);
+ do_laptop_lcd = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_BACKLIGHT_ENABLE);
if (do_laptop_lcd == FALSE) {
egg_warning ("policy is no dimming");
return FALSE;
@@ -305,9 +303,9 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
NULL);
/* reduce if on battery power if we should */
- battery_reduce = mateconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_BATTERY_REDUCE, NULL);
+ battery_reduce = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE);
if (on_battery && battery_reduce) {
- value = mateconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT, NULL);
+ value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_BRIGHTNESS_DIM_BATT);
if (value > 100) {
egg_warning ("cannot use battery brightness value %i, correcting to 50", value);
value = 50;
@@ -321,11 +319,11 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
/* reduce if system is momentarily idle */
if (!on_battery)
- enable_action = mateconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_AC, NULL);
+ enable_action = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_AC);
else
- enable_action = mateconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_BATT, NULL);
+ enable_action = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_BATT);
if (enable_action && backlight->priv->system_is_idle) {
- value = mateconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS, NULL);
+ value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_IDLE_BRIGHTNESS);
if (value > 100) {
egg_warning ("cannot use idle brightness value %i, correcting to 50", value);
value = 50;
@@ -365,44 +363,39 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
}
/**
- * gpm_conf_mateconf_key_changed_cb:
+ * gpm_settings_key_changed_cb:
*
- * We might have to do things when the mateconf keys change; do them here.
+ * We might have to do things when the keys change; do them here.
**/
static void
-gpm_conf_mateconf_key_changed_cb (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GpmBacklight *backlight)
+gpm_settings_key_changed_cb (GSettings *settings, const gchar *key, GpmBacklight *backlight)
{
- MateConfValue *value;
gboolean on_battery;
- value = mateconf_entry_get_value (entry);
- if (value == NULL)
- return;
-
/* get battery status */
g_object_get (backlight->priv->client,
"on-battery", &on_battery,
NULL);
- if (!on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
- backlight->priv->master_percentage = mateconf_value_get_int (value);
+ if (!on_battery && g_strcmp0 (key, GPM_SETTINGS_BRIGHTNESS_AC) == 0) {
+ backlight->priv->master_percentage = g_settings_get_double (settings, key);
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
- } else if (on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT) == 0) {
+ } else if (on_battery && g_strcmp0 (key, GPM_SETTINGS_BRIGHTNESS_DIM_BATT) == 0) {
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
- } else if (strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_DIM_AC) == 0 ||
- strcmp (entry->key, GPM_CONF_BACKLIGHT_ENABLE) == 0 ||
- strcmp (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT) == 0 ||
- strcmp (entry->key, GPM_CONF_BACKLIGHT_BATTERY_REDUCE) == 0 ||
- strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS) == 0) {
+ } else if (g_strcmp0 (key, GPM_SETTINGS_IDLE_DIM_AC) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_BACKLIGHT_ENABLE) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_BATT) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_IDLE_BRIGHTNESS) == 0) {
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
- } else if (strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_DIM_TIME) == 0) {
- backlight->priv->idle_dim_timeout = mateconf_value_get_int (value);
+ } else if (g_strcmp0 (key, GPM_SETTINGS_IDLE_DIM_TIME) == 0) {
+ backlight->priv->idle_dim_timeout = g_settings_get_int (settings, key);
gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
} else {
- egg_debug ("unknown key %s", entry->key);
+ egg_debug ("unknown key %s", key);
}
}
@@ -435,7 +428,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
gboolean hw_changed;
egg_debug ("Button press event type=%s", type);
- if (strcmp (type, GPM_BUTTON_BRIGHT_UP) == 0) {
+ if (g_strcmp0 (type, GPM_BUTTON_BRIGHT_UP) == 0) {
/* go up one step */
ret = gpm_brightness_up (backlight->priv->brightness, &hw_changed);
@@ -454,7 +447,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
egg_debug ("emitting brightness-changed : %i", percentage);
g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, percentage);
}
- } else if (strcmp (type, GPM_BUTTON_BRIGHT_DOWN) == 0) {
+ } else if (g_strcmp0 (type, GPM_BUTTON_BRIGHT_DOWN) == 0) {
/* go up down step */
ret = gpm_brightness_down (backlight->priv->brightness, &hw_changed);
@@ -473,7 +466,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
egg_debug ("emitting brightness-changed : %i", percentage);
g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, percentage);
}
- } else if (strcmp (type, GPM_BUTTON_LID_OPEN) == 0) {
+ } else if (g_strcmp0 (type, GPM_BUTTON_LID_OPEN) == 0) {
/* make sure we undim when we lift the lid */
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
@@ -521,8 +514,8 @@ gpm_backlight_notify_system_idle_changed (GpmBacklight *backlight, gboolean is_i
if (elapsed > 2*60) {
/* reset back to our default dimming */
backlight->priv->idle_dim_timeout =
- mateconf_client_get_int (backlight->priv->conf,
- GPM_CONF_BACKLIGHT_IDLE_DIM_TIME, NULL);
+ g_settings_get_int (backlight->priv->settings,
+ GPM_SETTINGS_IDLE_DIM_TIME);
egg_debug ("resetting idle dim time to %is", backlight->priv->idle_dim_timeout);
gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
}
@@ -552,7 +545,6 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
gboolean ret;
GError *error = NULL;
gboolean on_battery;
- gchar *dpms_method;
GpmDpmsMode dpms_mode;
/* don't dim or undim the screen when the lid is closed */
@@ -601,16 +593,13 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
"on-battery", &on_battery,
NULL);
if (!on_battery)
- dpms_method = mateconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_AC, NULL);
+ dpms_mode = g_settings_get_enum (backlight->priv->settings, GPM_SETTINGS_DPMS_METHOD_AC);
else
- dpms_method = mateconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_BATT, NULL);
-
- /* convert the string types to standard types */
- dpms_mode = gpm_dpms_mode_from_string (dpms_method);
+ dpms_mode = g_settings_get_enum (backlight->priv->settings, GPM_SETTINGS_DPMS_METHOD_BATT);
/* check if method is valid */
if (dpms_mode == GPM_DPMS_MODE_UNKNOWN || dpms_mode == GPM_DPMS_MODE_ON) {
- egg_warning ("BACKLIGHT method %s unknown. Using OFF.", dpms_method);
+ egg_warning ("BACKLIGHT method %i unknown. Using OFF.", dpms_mode);
dpms_mode = GPM_DPMS_MODE_OFF;
}
@@ -621,7 +610,6 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
g_error_free (error);
}
- g_free (dpms_method);
}
}
@@ -681,7 +669,7 @@ gpm_backlight_finalize (GObject *object)
g_object_unref (backlight->priv->dpms);
g_object_unref (backlight->priv->control);
- g_object_unref (backlight->priv->conf);
+ g_object_unref (backlight->priv->settings);
g_object_unref (backlight->priv->client);
g_object_unref (backlight->priv->button);
g_object_unref (backlight->priv->idle);
@@ -724,9 +712,6 @@ gpm_backlight_class_init (GpmBacklightClass *klass)
static void
gpm_backlight_init (GpmBacklight *backlight)
{
- gboolean lid_is_present = TRUE;
- GpmPrefsServer *prefs_server;
-
backlight->priv = GPM_BACKLIGHT_GET_PRIVATE (backlight);
/* record our idle time */
@@ -745,31 +730,13 @@ gpm_backlight_init (GpmBacklight *backlight)
/* gets caps */
backlight->priv->can_dim = gpm_brightness_has_hw (backlight->priv->brightness);
- /* we use UPower to see if we should show the lid UI */
- g_object_get (backlight->priv->client,
- "lid-is-present", &lid_is_present,
- NULL);
-
- /* expose ui in prefs program */
- prefs_server = gpm_prefs_server_new ();
- if (lid_is_present)
- gpm_prefs_server_set_capability (prefs_server, GPM_PREFS_SERVER_LID);
- if (backlight->priv->can_dim)
- gpm_prefs_server_set_capability (prefs_server, GPM_PREFS_SERVER_BACKLIGHT);
- g_object_unref (prefs_server);
-
/* watch for dim value changes */
- backlight->priv->conf = mateconf_client_get_default ();
-
- /* watch mate-power-manager keys */
- mateconf_client_add_dir (backlight->priv->conf, GPM_CONF_DIR, MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
- mateconf_client_notify_add (backlight->priv->conf, GPM_CONF_DIR,
- (MateConfClientNotifyFunc) gpm_conf_mateconf_key_changed_cb,
- backlight, NULL, NULL);
+ backlight->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+ g_signal_connect (backlight->priv->settings, "changed", G_CALLBACK (gpm_settings_key_changed_cb), backlight);
/* set the main brightness, this is designed to be updated if the user changes the
* brightness so we can undim to the 'correct' value */
- backlight->priv->master_percentage = mateconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC, NULL);
+ backlight->priv->master_percentage = g_settings_get_double (backlight->priv->settings, GPM_SETTINGS_BRIGHTNESS_AC);
/* watch for brightness up and down buttons and also check lid state */
backlight->priv->button = gpm_button_new ();
@@ -783,7 +750,7 @@ gpm_backlight_init (GpmBacklight *backlight)
/* assumption */
backlight->priv->system_is_idle = FALSE;
- backlight->priv->idle_dim_timeout = mateconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_TIME, NULL);
+ backlight->priv->idle_dim_timeout = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_TIME);
gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
/* use a visual widget */
diff --git a/src/gpm-common.c b/src/gpm-common.c
index 0d0e536..e7d1d66 100644
--- a/src/gpm-common.c
+++ b/src/gpm-common.c
@@ -79,88 +79,50 @@ gpm_get_timestring (guint time_secs)
}
/**
- * gpm_icon_policy_from_string:
- **/
-GpmIconPolicy
-gpm_icon_policy_from_string (const gchar *policy)
-{
- if (policy == NULL)
- return GPM_ICON_POLICY_NEVER;
- if (g_strcmp0 (policy, "always") == 0)
- return GPM_ICON_POLICY_ALWAYS;
- if (g_strcmp0 (policy, "present") == 0)
- return GPM_ICON_POLICY_PRESENT;
- if (g_strcmp0 (policy, "charge") == 0)
- return GPM_ICON_POLICY_CHARGE;
- if (g_strcmp0 (policy, "low") == 0)
- return GPM_ICON_POLICY_LOW;
- if (g_strcmp0 (policy, "critical") == 0)
- return GPM_ICON_POLICY_CRITICAL;
- if (g_strcmp0 (policy, "never") == 0)
- return GPM_ICON_POLICY_NEVER;
- return GPM_ICON_POLICY_NEVER;
-}
-
-/**
- * gpm_icon_policy_to_string:
+ * gpm_discrete_from_percent:
+ * @percentage: The percentage to convert
+ * @levels: The number of discrete levels
+ *
+ * We have to be carefull when converting from %->discrete as precision is very
+ * important if we want the highest value.
+ *
+ * Return value: The discrete value for this percentage.
**/
-const gchar *
-gpm_icon_policy_to_string (GpmIconPolicy policy)
+guint
+gpm_discrete_from_percent (guint percentage, guint levels)
{
- if (policy == GPM_ICON_POLICY_ALWAYS)
- return "always";
- if (policy == GPM_ICON_POLICY_PRESENT)
- return "present";
- if (policy == GPM_ICON_POLICY_CHARGE)
- return "charge";
- if (policy == GPM_ICON_POLICY_LOW)
- return "low";
- if (policy == GPM_ICON_POLICY_CRITICAL)
- return "critical";
- if (policy == GPM_ICON_POLICY_NEVER)
- return "never";
- return "never";
+ /* check we are in range */
+ if (percentage > 100)
+ return levels;
+ if (levels == 0) {
+ g_warning ("levels is 0!");
+ return 0;
+ }
+ return (guint) ((((gfloat) percentage * (gfloat) (levels - 1)) / 100.0f) + 0.5f);
}
/**
- * gpm_action_policy_from_string:
+ * gpm_discrete_to_percent:
+ * @hw: The discrete level
+ * @levels: The number of discrete levels
+ *
+ * We have to be carefull when converting from discrete->%.
+ *
+ * Return value: The percentage for this discrete value.
**/
-GpmActionPolicy
-gpm_action_policy_from_string (const gchar *policy)
+guint
+gpm_discrete_to_percent (guint discrete, guint levels)
{
- if (policy == NULL)
- return GPM_ACTION_POLICY_NOTHING;
- if (g_strcmp0 (policy, "blank") == 0)
- return GPM_ACTION_POLICY_BLANK;
- if (g_strcmp0 (policy, "shutdown") == 0)
- return GPM_ACTION_POLICY_SHUTDOWN;
- if (g_strcmp0 (policy, "suspend") == 0)
- return GPM_ACTION_POLICY_SUSPEND;
- if (g_strcmp0 (policy, "hibernate") == 0)
- return GPM_ACTION_POLICY_HIBERNATE;
- if (g_strcmp0 (policy, "interactive") == 0)
- return GPM_ACTION_POLICY_INTERACTIVE;
- return GPM_ACTION_POLICY_NOTHING;
+ /* check we are in range */
+ if (discrete > levels)
+ return 100;
+ if (levels == 0) {
+ g_warning ("levels is 0!");
+ return 0;
+ }
+ return (guint) (((gfloat) discrete * (100.0f / (gfloat) (levels - 1))) + 0.5f);
}
-/**
- * gpm_action_policy_to_string:
- **/
-const gchar *
-gpm_action_policy_to_string (GpmActionPolicy policy)
-{
- if (policy == GPM_ACTION_POLICY_BLANK)
- return "blank";
- if (policy == GPM_ACTION_POLICY_SHUTDOWN)
- return "shutdown";
- if (policy == GPM_ACTION_POLICY_SUSPEND)
- return "suspend";
- if (policy == GPM_ACTION_POLICY_HIBERNATE)
- return "hibernate";
- if (policy == GPM_ACTION_POLICY_INTERACTIVE)
- return "interactive";
- return "nothing";
-}
/**
* gpm_help_display:
diff --git a/src/gpm-common.h b/src/gpm-common.h
index e2733a8..ca4762c 100644
--- a/src/gpm-common.h
+++ b/src/gpm-common.h
@@ -31,124 +31,111 @@ G_BEGIN_DECLS
#define GPM_DBUS_INTERFACE_BACKLIGHT "org.mate.PowerManager.Backlight"
#define GPM_DBUS_PATH "/org/mate/PowerManager"
#define GPM_DBUS_PATH_BACKLIGHT "/org/mate/PowerManager/Backlight"
+#define GPM_DBUS_PATH_KBD_BACKLIGHT "/org/mate/PowerManager/KbdBacklight"
/* common descriptions of this program */
#define GPM_NAME _("Power Manager")
#define GPM_DESCRIPTION _("Power Manager for the MATE desktop")
-/* help location */
-#define GPM_HOMEPAGE_URL "http://www.mate.org/projects/mate-power-manager/"
-#define GPM_BUGZILLA_URL "http://bugzilla.mate.org/buglist.cgi?product=mate-power-manager"
-#define GPM_FAQ_URL "http://live.mate.org/MatePowerManager/Faq"
-
-/* change general/installed_schema whenever adding or moving keys */
-#define GPM_CONF_SCHEMA_ID 3
-
-#define GPM_CONF_DIR "/apps/mate-power-manager"
+/* schema location */
+#define GPM_SETTINGS_SCHEMA "org.mate.power-manager"
/* actions */
-#define GPM_CONF_ACTIONS_CRITICAL_UPS GPM_CONF_DIR "/actions/critical_ups"
-#define GPM_CONF_ACTIONS_CRITICAL_BATT GPM_CONF_DIR "/actions/critical_battery"
-#define GPM_CONF_ACTIONS_LOW_UPS GPM_CONF_DIR "/actions/low_ups"
-#define GPM_CONF_ACTIONS_SLEEP_TYPE_AC GPM_CONF_DIR "/actions/sleep_type_ac"
-#define GPM_CONF_ACTIONS_SLEEP_TYPE_BATT GPM_CONF_DIR "/actions/sleep_type_battery"
-#define GPM_CONF_ACTIONS_SLEEP_WHEN_CLOSED GPM_CONF_DIR "/actions/event_when_closed_battery"
+#define GPM_SETTINGS_ACTION_CRITICAL_UPS "action-critical-ups"
+#define GPM_SETTINGS_ACTION_CRITICAL_BATT "action-critical-battery"
+#define GPM_SETTINGS_ACTION_LOW_UPS "action-low-ups"
+#define GPM_SETTINGS_ACTION_SLEEP_TYPE_AC "action-sleep-type-ac"
+#define GPM_SETTINGS_ACTION_SLEEP_TYPE_BATT "action-sleep-type-battery"
+#define GPM_SETTINGS_SLEEP_WHEN_CLOSED "event-when-closed-battery"
/* backlight stuff */
-#define GPM_CONF_BACKLIGHT_ENABLE GPM_CONF_DIR "/backlight/enable"
-#define GPM_CONF_BACKLIGHT_BATTERY_REDUCE GPM_CONF_DIR "/backlight/battery_reduce"
-#define GPM_CONF_BACKLIGHT_DPMS_METHOD_AC GPM_CONF_DIR "/backlight/dpms_method_ac"
-#define GPM_CONF_BACKLIGHT_DPMS_METHOD_BATT GPM_CONF_DIR "/backlight/dpms_method_battery"
-#define GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS GPM_CONF_DIR "/backlight/idle_brightness"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_AC GPM_CONF_DIR "/backlight/idle_dim_ac"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_BATT GPM_CONF_DIR "/backlight/idle_dim_battery"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_TIME GPM_CONF_DIR "/backlight/idle_dim_time"
-#define GPM_CONF_BACKLIGHT_BRIGHTNESS_AC GPM_CONF_DIR "/backlight/brightness_ac"
-#define GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT GPM_CONF_DIR "/backlight/brightness_dim_battery"
+#define GPM_SETTINGS_BACKLIGHT_ENABLE "backlight-enable"
+#define GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE "backlight-battery-reduce"
+#define GPM_SETTINGS_DPMS_METHOD_AC "dpms-method-ac"
+#define GPM_SETTINGS_DPMS_METHOD_BATT "dpms-method-battery"
+#define GPM_SETTINGS_IDLE_BRIGHTNESS "idle-brightness"
+#define GPM_SETTINGS_IDLE_DIM_AC "idle-dim-ac"
+#define GPM_SETTINGS_IDLE_DIM_BATT "idle-dim-battery"
+#define GPM_SETTINGS_IDLE_DIM_TIME "idle-dim-time"
+#define GPM_SETTINGS_BRIGHTNESS_AC "brightness-ac"
+#define GPM_SETTINGS_BRIGHTNESS_DIM_BATT "brightness-dim-battery"
+
+/* keyboard backlight */
+#define GPM_SETTINGS_KBD_BACKLIGHT_BATT_REDUCE "kbd-backlight-battery-reduce"
+#define GPM_SETTINGS_KBD_BRIGHTNESS_ON_AC "kbd-brightness-on-ac"
+#define GPM_SETTINGS_KBD_BRIGHTNESS_DIM_BY_ON_BATT "kbd-brightness-dim-by-on-battery"
+#define GPM_SETTINGS_KBD_BRIGHTNESS_DIM_BY_ON_IDLE "kbd-brightness-dim-by-on-idle"
/* buttons */
-#define GPM_CONF_BUTTON_LID_AC GPM_CONF_DIR "/buttons/lid_ac"
-#define GPM_CONF_BUTTON_LID_BATT GPM_CONF_DIR "/buttons/lid_battery"
-#define GPM_CONF_BUTTON_SUSPEND GPM_CONF_DIR "/buttons/suspend"
-#define GPM_CONF_BUTTON_HIBERNATE GPM_CONF_DIR "/buttons/hibernate"
-#define GPM_CONF_BUTTON_POWER GPM_CONF_DIR "/buttons/power"
+#define GPM_SETTINGS_BUTTON_LID_AC "button-lid-ac"
+#define GPM_SETTINGS_BUTTON_LID_BATT "button-lid-battery"
+#define GPM_SETTINGS_BUTTON_SUSPEND "button-suspend"
+#define GPM_SETTINGS_BUTTON_HIBERNATE "button-hibernate"
+#define GPM_SETTINGS_BUTTON_POWER "button-power"
/* general */
-#define GPM_CONF_SCHEMA_VERSION GPM_CONF_DIR "/general/installed_schema"
-#define GPM_CONF_USE_TIME_POLICY GPM_CONF_DIR "/general/use_time_for_policy"
-#define GPM_CONF_USE_PROFILE_TIME GPM_CONF_DIR "/general/use_profile_time"
-#define GPM_CONF_NETWORKMANAGER_SLEEP GPM_CONF_DIR "/general/network_sleep"
-#define GPM_CONF_IDLE_CHECK_CPU GPM_CONF_DIR "/general/check_type_cpu"
-#define GPM_CONF_LAPTOP_USES_EXT_MON GPM_CONF_DIR "/general/using_external_monitor"
+#define GPM_SETTINGS_USE_TIME_POLICY "use-time-for-policy"
+#define GPM_SETTINGS_NETWORKMANAGER_SLEEP "network-sleep"
+#define GPM_SETTINGS_IDLE_CHECK_CPU "check-type-cpu"
/* lock */
-#define GPM_CONF_LOCK_USE_SCREENSAVER GPM_CONF_DIR "/lock/use_screensaver_settings"
-#define GPM_CONF_LOCK_ON_BLANK_SCREEN GPM_CONF_DIR "/lock/blank_screen"
-#define GPM_CONF_LOCK_ON_SUSPEND GPM_CONF_DIR "/lock/suspend"
-#define GPM_CONF_LOCK_ON_HIBERNATE GPM_CONF_DIR "/lock/hibernate"
-#define GPM_CONF_LOCK_MATE_KEYRING_SUSPEND GPM_CONF_DIR "/lock/mate_keyring_suspend"
-#define GPM_CONF_LOCK_MATE_KEYRING_HIBERNATE GPM_CONF_DIR "/lock/mate_keyring_hibernate"
+#define GPM_SETTINGS_LOCK_USE_SCREENSAVER "lock-use-screensaver"
+#define GPM_SETTINGS_LOCK_ON_BLANK_SCREEN "lock-blank-screen"
+#define GPM_SETTINGS_LOCK_ON_SUSPEND "lock-suspend"
+#define GPM_SETTINGS_LOCK_ON_HIBERNATE "lock-hibernate"
+#define GPM_SETTINGS_LOCK_KEYRING_SUSPEND "lock-keyring-suspend"
+#define GPM_SETTINGS_LOCK_KEYRING_HIBERNATE "lock-keyring-hibernate"
/* disks */
-#define GPM_CONF_DISKS_SPINDOWN_ENABLE_AC GPM_CONF_DIR "/disks/spindown_enable_ac"
-#define GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT GPM_CONF_DIR "/disks/spindown_enable_battery"
-#define GPM_CONF_DISKS_SPINDOWN_TIMEOUT_AC GPM_CONF_DIR "/disks/spindown_timeout_ac"
-#define GPM_CONF_DISKS_SPINDOWN_TIMEOUT_BATT GPM_CONF_DIR "/disks/spindown_timeout_battery"
+#define GPM_SETTINGS_SPINDOWN_ENABLE_AC "spindown-enable-ac"
+#define GPM_SETTINGS_SPINDOWN_ENABLE_BATT "spindown-enable-battery"
+#define GPM_SETTINGS_SPINDOWN_TIMEOUT_AC "spindown-timeout-ac"
+#define GPM_SETTINGS_SPINDOWN_TIMEOUT_BATT "spindown-timeout-battery"
/* notify */
-#define GPM_CONF_NOTIFY_PERHAPS_RECALL GPM_CONF_DIR "/notify/perhaps_recall"
-#define GPM_CONF_NOTIFY_LOW_CAPACITY GPM_CONF_DIR "/notify/low_capacity"
-#define GPM_CONF_NOTIFY_DISCHARGING GPM_CONF_DIR "/notify/discharging"
-#define GPM_CONF_NOTIFY_FULLY_CHARGED GPM_CONF_DIR "/notify/fully_charged"
-#define GPM_CONF_NOTIFY_SLEEP_FAILED GPM_CONF_DIR "/notify/sleep_failed"
-#define GPM_CONF_NOTIFY_SLEEP_FAILED_URI GPM_CONF_DIR "/notify/sleep_failed_uri"
-#define GPM_CONF_NOTIFY_LOW_POWER GPM_CONF_DIR "/notify/low_power"
-
-/* statistics */
-#define GPM_CONF_STATS_SHOW_AXIS_LABELS GPM_CONF_DIR "/statistics/show_axis_labels"
-#define GPM_CONF_STATS_SHOW_EVENTS GPM_CONF_DIR "/statistics/show_events"
-#define GPM_CONF_STATS_SMOOTH_DATA GPM_CONF_DIR "/statistics/smooth_data"
-#define GPM_CONF_STATS_GRAPH_TYPE GPM_CONF_DIR "/statistics/graph_type"
-#define GPM_CONF_STATS_MAX_TIME GPM_CONF_DIR "/statistics/data_max_time"
+#define GPM_SETTINGS_NOTIFY_PERHAPS_RECALL "notify-perhaps-recall"
+#define GPM_SETTINGS_NOTIFY_LOW_CAPACITY "notify-low-capacity"
+#define GPM_SETTINGS_NOTIFY_DISCHARGING "notify-discharging"
+#define GPM_SETTINGS_NOTIFY_FULLY_CHARGED "notify-fully-charged"
+#define GPM_SETTINGS_NOTIFY_SLEEP_FAILED "notify-sleep-failed"
+#define GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI "notify-sleep-failed-uri"
+#define GPM_SETTINGS_NOTIFY_LOW_POWER "notify-low-power"
/* thresholds */
-#define GPM_CONF_THRESH_PERCENTAGE_LOW GPM_CONF_DIR "/thresholds/percentage_low"
-#define GPM_CONF_THRESH_PERCENTAGE_CRITICAL GPM_CONF_DIR "/thresholds/percentage_critical"
-#define GPM_CONF_THRESH_PERCENTAGE_ACTION GPM_CONF_DIR "/thresholds/percentage_action"
-#define GPM_CONF_THRESH_TIME_LOW GPM_CONF_DIR "/thresholds/time_low"
-#define GPM_CONF_THRESH_TIME_CRITICAL GPM_CONF_DIR "/thresholds/time_critical"
-#define GPM_CONF_THRESH_TIME_ACTION GPM_CONF_DIR "/thresholds/time_action"
+#define GPM_SETTINGS_PERCENTAGE_LOW "percentage-low"
+#define GPM_SETTINGS_PERCENTAGE_CRITICAL "percentage-critical"
+#define GPM_SETTINGS_PERCENTAGE_ACTION "percentage-action"
+#define GPM_SETTINGS_TIME_LOW "time-low"
+#define GPM_SETTINGS_TIME_CRITICAL "time-critical"
+#define GPM_SETTINGS_TIME_ACTION "time-action"
/* timeout */
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC GPM_CONF_DIR "/timeout/sleep_computer_ac"
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT GPM_CONF_DIR "/timeout/sleep_computer_battery"
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_UPS GPM_CONF_DIR "/timeout/sleep_computer_ups"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC GPM_CONF_DIR "/timeout/sleep_display_ac"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT GPM_CONF_DIR "/timeout/sleep_display_battery"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_UPS GPM_CONF_DIR "/timeout/sleep_display_ups"
+#define GPM_SETTINGS_SLEEP_COMPUTER_AC "sleep-computer-ac"
+#define GPM_SETTINGS_SLEEP_COMPUTER_BATT "sleep-computer-battery"
+#define GPM_SETTINGS_SLEEP_COMPUTER_UPS "sleep-computer-ups"
+#define GPM_SETTINGS_SLEEP_DISPLAY_AC "sleep-display-ac"
+#define GPM_SETTINGS_SLEEP_DISPLAY_BATT "sleep-display-battery"
+#define GPM_SETTINGS_SLEEP_DISPLAY_UPS "sleep-display-ups"
/* ui */
-#define GPM_CONF_UI_ICON_POLICY GPM_CONF_DIR "/ui/icon_policy"
-#define GPM_CONF_UI_ENABLE_SOUND GPM_CONF_DIR "/ui/enable_sound"
-#define GPM_CONF_UI_SHOW_ACTIONS GPM_CONF_DIR "/ui/show_actions"
-
-/* new info binary */
-#define GPM_CONF_INFO_HISTORY_TIME "/apps/mate-power-manager/info/history_time"
-#define GPM_CONF_INFO_HISTORY_TYPE "/apps/mate-power-manager/info/history_type"
-#define GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH "/apps/mate-power-manager/info/history_graph_smooth"
-#define GPM_CONF_INFO_HISTORY_GRAPH_POINTS "/apps/mate-power-manager/info/history_graph_points"
-#define GPM_CONF_INFO_STATS_TYPE "/apps/mate-power-manager/info/stats_type"
-#define GPM_CONF_INFO_STATS_GRAPH_SMOOTH "/apps/mate-power-manager/info/stats_graph_smooth"
-#define GPM_CONF_INFO_STATS_GRAPH_POINTS "/apps/mate-power-manager/info/stats_graph_points"
-#define GPM_CONF_INFO_PAGE_NUMBER "/apps/mate-power-manager/info/page_number"
-#define GPM_CONF_INFO_LAST_DEVICE "/apps/mate-power-manager/info/last_device"
+#define GPM_SETTINGS_ICON_POLICY "icon-policy"
+#define GPM_SETTINGS_ENABLE_SOUND "enable-sound"
+#define GPM_SETTINGS_SHOW_ACTIONS "show-actions"
-/* mate-screensaver */
-#define GS_CONF_DIR "/apps/mate-screensaver"
-#define GS_PREF_LOCK_ENABLED GS_CONF_DIR "/lock_enabled"
+/* statistics */
+#define GPM_SETTINGS_INFO_HISTORY_TIME "info-history-time"
+#define GPM_SETTINGS_INFO_HISTORY_TYPE "info-history-type"
+#define GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH "info-history-graph-smooth"
+#define GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS "info-history-graph-points"
+#define GPM_SETTINGS_INFO_STATS_TYPE "info-stats-type"
+#define GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH "info-stats-graph-smooth"
+#define GPM_SETTINGS_INFO_STATS_GRAPH_POINTS "info-stats-graph-points"
+#define GPM_SETTINGS_INFO_PAGE_NUMBER "info-page-number"
+#define GPM_SETTINGS_INFO_LAST_DEVICE "info-last-device"
-/* mate-session */
-#define GPM_CONF_IDLE_DELAY "/desktop/mate/session/idle_delay"
+/* mate-screensaver */
+#define GS_SETTINGS_SCHEMA "org.mate.screensaver"
+#define GS_SETTINGS_PREF_LOCK_ENABLED "lock-enabled"
typedef enum {
GPM_ICON_POLICY_ALWAYS,
@@ -169,10 +156,10 @@ typedef enum {
} GpmActionPolicy;
gchar *gpm_get_timestring (guint time);
-GpmIconPolicy gpm_icon_policy_from_string (const gchar *policy);
-const gchar *gpm_icon_policy_to_string (GpmIconPolicy policy);
-GpmActionPolicy gpm_action_policy_from_string (const gchar *policy);
-const gchar *gpm_action_policy_to_string (GpmActionPolicy policy);
+guint gpm_discrete_from_percent (guint percentage,
+ guint levels);
+guint gpm_discrete_to_percent (guint discrete,
+ guint levels);
void gpm_help_display (const gchar *link_id);
#ifdef EGG_TEST
void gpm_common_test (gpointer data);
diff --git a/src/gpm-control.c b/src/gpm-control.c
index 50212b8..4b6c959 100644
--- a/src/gpm-control.c
+++ b/src/gpm-control.c
@@ -40,7 +40,6 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <mate-keyring.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "egg-debug.h"
@@ -55,7 +54,7 @@
struct GpmControlPrivate
{
- MateConfClient *conf;
+ GSettings *settings;
UpClient *client;
};
@@ -103,7 +102,7 @@ gpm_control_shutdown (GpmControl *control, GError **error)
/**
* gpm_control_get_lock_policy:
* @control: This class instance
- * @policy: The policy mateconf string.
+ * @policy: The policy string.
*
* This function finds out if we should lock the screen when we do an
* action. It is required as we can either use the mate-screensaver policy
@@ -116,15 +115,33 @@ gpm_control_get_lock_policy (GpmControl *control, const gchar *policy)
{
gboolean do_lock;
gboolean use_ss_setting;
- /* This allows us to over-ride the custom lock settings set in mateconf
+ const char * const *schemas;
+ gboolean schema_exists;
+ gint i;
+
+ /* Check if the mate-screensaver schema exists before trying to read
+ the lock setting to prevent crashing. See GNOME bug #651225. */
+ schemas = g_settings_list_schemas ();
+ schema_exists = FALSE;
+ for (i = 0; schemas[i] != NULL; i++) {
+ if (g_strcmp0 (schemas[i], GS_SETTINGS_SCHEMA) == 0) {
+ schema_exists = TRUE;
+ break;
+ }
+ }
+
+ /* This allows us to over-ride the custom lock settings set
with a system default set in mate-screensaver.
See bug #331164 for all the juicy details. :-) */
- use_ss_setting = mateconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_USE_SCREENSAVER, NULL);
- if (use_ss_setting) {
- do_lock = mateconf_client_get_bool (control->priv->conf, GS_PREF_LOCK_ENABLED, NULL);
+ use_ss_setting = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_USE_SCREENSAVER);
+ if (use_ss_setting && schema_exists) {
+ GSettings *settings_ss;
+ settings_ss = g_settings_new (GS_SETTINGS_SCHEMA);
+ do_lock = g_settings_get_boolean (settings_ss, GS_SETTINGS_PREF_LOCK_ENABLED);
egg_debug ("Using ScreenSaver settings (%i)", do_lock);
+ g_object_unref (settings_ss);
} else {
- do_lock = mateconf_client_get_bool (control->priv->conf, policy, NULL);
+ do_lock = g_settings_get_boolean (control->priv->settings, policy);
egg_debug ("Using custom locking settings (%i)", do_lock);
}
return do_lock;
@@ -157,20 +174,20 @@ gpm_control_suspend (GpmControl *control, GError **error)
}
/* we should perhaps lock keyrings when sleeping #375681 */
- lock_mate_keyring = mateconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_MATE_KEYRING_SUSPEND, NULL);
+ lock_mate_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND);
if (lock_mate_keyring) {
keyres = mate_keyring_lock_all_sync ();
if (keyres != MATE_KEYRING_RESULT_OK)
egg_warning ("could not lock keyring");
}
- do_lock = gpm_control_get_lock_policy (control, GPM_CONF_LOCK_ON_SUSPEND);
+ do_lock = gpm_control_get_lock_policy (control, GPM_SETTINGS_LOCK_ON_SUSPEND);
if (do_lock) {
throttle_cookie = gpm_screensaver_add_throttle (screensaver, "suspend");
gpm_screensaver_lock (screensaver);
}
- nm_sleep = mateconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+ nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
if (nm_sleep)
gpm_networkmanager_sleep ();
@@ -189,7 +206,7 @@ gpm_control_suspend (GpmControl *control, GError **error)
gpm_screensaver_remove_throttle (screensaver, throttle_cookie);
}
- nm_sleep = mateconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+ nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
if (nm_sleep)
gpm_networkmanager_wake ();
@@ -225,7 +242,7 @@ gpm_control_hibernate (GpmControl *control, GError **error)
}
/* we should perhaps lock keyrings when sleeping #375681 */
- lock_mate_keyring = mateconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_MATE_KEYRING_HIBERNATE, NULL);
+ lock_mate_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_HIBERNATE);
if (lock_mate_keyring) {
keyres = mate_keyring_lock_all_sync ();
if (keyres != MATE_KEYRING_RESULT_OK) {
@@ -233,13 +250,13 @@ gpm_control_hibernate (GpmControl *control, GError **error)
}
}
- do_lock = gpm_control_get_lock_policy (control, GPM_CONF_LOCK_ON_HIBERNATE);
+ do_lock = gpm_control_get_lock_policy (control, GPM_SETTINGS_LOCK_ON_HIBERNATE);
if (do_lock) {
throttle_cookie = gpm_screensaver_add_throttle (screensaver, "hibernate");
gpm_screensaver_lock (screensaver);
}
- nm_sleep = mateconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+ nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
if (nm_sleep)
gpm_networkmanager_sleep ();
@@ -257,7 +274,7 @@ gpm_control_hibernate (GpmControl *control, GError **error)
gpm_screensaver_remove_throttle (screensaver, throttle_cookie);
}
- nm_sleep = mateconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+ nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
if (nm_sleep)
gpm_networkmanager_wake ();
@@ -278,7 +295,7 @@ gpm_control_finalize (GObject *object)
g_return_if_fail (GPM_IS_CONTROL (object));
control = GPM_CONTROL (object);
- g_object_unref (control->priv->conf);
+ g_object_unref (control->priv->settings);
g_object_unref (control->priv->client);
g_return_if_fail (control->priv != NULL);
@@ -326,7 +343,7 @@ gpm_control_init (GpmControl *control)
control->priv = GPM_CONTROL_GET_PRIVATE (control);
control->priv->client = up_client_new ();
- control->priv->conf = mateconf_client_get_default ();
+ control->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
}
/**
diff --git a/src/gpm-dpms.c b/src/gpm-dpms.c
index 13928f9..8eaf704 100644
--- a/src/gpm-dpms.c
+++ b/src/gpm-dpms.c
@@ -190,53 +190,6 @@ gpm_dpms_x11_set_mode (GpmDpms *dpms, GpmDpmsMode mode, GError **error)
}
/**
- * gpm_dpms_mode_from_string:
- **/
-GpmDpmsMode
-gpm_dpms_mode_from_string (const gchar *str)
-{
- if (str == NULL)
- return GPM_DPMS_MODE_UNKNOWN;
- if (strcmp (str, "on") == 0)
- return GPM_DPMS_MODE_ON;
- if (strcmp (str, "standby") == 0)
- return GPM_DPMS_MODE_STANDBY;
- if (strcmp (str, "suspend") == 0)
- return GPM_DPMS_MODE_SUSPEND;
- if (strcmp (str, "off") == 0)
- return GPM_DPMS_MODE_OFF;
- return GPM_DPMS_MODE_UNKNOWN;
-}
-
-/**
- * gpm_dpms_mode_to_string:
- **/
-const gchar *
-gpm_dpms_mode_to_string (GpmDpmsMode mode)
-{
- const gchar *str = NULL;
-
- switch (mode) {
- case GPM_DPMS_MODE_ON:
- str = "on";
- break;
- case GPM_DPMS_MODE_STANDBY:
- str = "standby";
- break;
- case GPM_DPMS_MODE_SUSPEND:
- str = "suspend";
- break;
- case GPM_DPMS_MODE_OFF:
- str = "off";
- break;
- default:
- str = NULL;
- break;
- }
- return str;
-}
-
-/**
* gpm_dpms_set_mode:
**/
gboolean
diff --git a/src/gpm-dpms.h b/src/gpm-dpms.h
index 95cd226..b6218fc 100644
--- a/src/gpm-dpms.h
+++ b/src/gpm-dpms.h
@@ -71,8 +71,6 @@ gboolean gpm_dpms_get_mode (GpmDpms *dpms,
gboolean gpm_dpms_set_mode (GpmDpms *dpms,
GpmDpmsMode mode,
GError **error);
-const gchar *gpm_dpms_mode_to_string (GpmDpmsMode mode);
-GpmDpmsMode gpm_dpms_mode_from_string (const gchar *mode);
void gpm_dpms_test (gpointer data);
G_END_DECLS
diff --git a/src/gpm-engine.c b/src/gpm-engine.c
index 1ca78b8..0f9d0c1 100644
--- a/src/gpm-engine.c
+++ b/src/gpm-engine.c
@@ -24,7 +24,6 @@
#include <string.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "egg-debug.h"
@@ -34,7 +33,6 @@
#include "gpm-marshal.h"
#include "gpm-engine.h"
#include "gpm-stock-icons.h"
-#include "gpm-prefs-server.h"
#include "gpm-phone.h"
static void gpm_engine_finalize (GObject *object);
@@ -45,7 +43,7 @@ static void gpm_engine_finalize (GObject *object);
struct GpmEnginePrivate
{
- MateConfClient *conf;
+ GSettings *settings;
UpClient *client;
UpDevice *battery_composite;
GPtrArray *array;
@@ -510,30 +508,19 @@ gpm_engine_recalculate_state (GpmEngine *engine)
}
/**
- * gpm_engine_conf_key_changed_cb:
+ * gpm_engine_settings_key_changed_cb:
**/
static void
-gpm_engine_conf_key_changed_cb (MateConfClient *conf, guint cnxn_id, MateConfEntry *entry, GpmEngine *engine)
+gpm_engine_settings_key_changed_cb (GSettings *settings, const gchar *key, GpmEngine *engine)
{
- MateConfValue *value;
- gchar *icon_policy;
- if (entry == NULL)
- return;
- value = mateconf_entry_get_value (entry);
- if (value == NULL)
- return;
-
- if (strcmp (entry->key, GPM_CONF_USE_TIME_POLICY) == 0) {
+ if (g_strcmp0 (key, GPM_SETTINGS_USE_TIME_POLICY) == 0) {
+ engine->priv->use_time_primary = g_settings_get_boolean (settings, key);
- engine->priv->use_time_primary = mateconf_value_get_bool (value);
-
- } else if (strcmp (entry->key, GPM_CONF_UI_ICON_POLICY) == 0) {
+ } else if (g_strcmp0 (key, GPM_SETTINGS_ICON_POLICY) == 0) {
/* do we want to display the icon in the tray */
- icon_policy = mateconf_client_get_string (conf, GPM_CONF_UI_ICON_POLICY, NULL);
- engine->priv->icon_policy = gpm_icon_policy_from_string (icon_policy);
- g_free (icon_policy);
+ engine->priv->icon_policy = g_settings_get_enum (settings, key);
/* perhaps change icon */
gpm_engine_recalculate_state_icon (engine);
@@ -568,8 +555,8 @@ gpm_engine_device_check_capacity (GpmEngine *engine, UpDevice *device)
if (capacity < 1.0f)
return FALSE;
- /* only emit this if specified in mateconf */
- ret = mateconf_client_get_bool (engine->priv->conf, GPM_CONF_NOTIFY_LOW_CAPACITY, NULL);
+ /* only emit this if specified in the settings */
+ ret = g_settings_get_boolean (engine->priv->settings, GPM_SETTINGS_NOTIFY_LOW_CAPACITY);
if (ret) {
egg_debug ("** EMIT: low-capacity");
g_signal_emit (engine, signals [LOW_CAPACITY], 0, device);
@@ -816,12 +803,8 @@ static gboolean
gpm_engine_coldplug_idle_cb (GpmEngine *engine)
{
guint i;
- GPtrArray *array;
- gboolean has_battery = FALSE;
- gboolean has_ups = FALSE;
- GpmPrefsServer *prefs_server;
+ GPtrArray *array = NULL;
UpDevice *device;
- UpDeviceKind kind;
gboolean ret;
GError *error = NULL;
@@ -835,31 +818,6 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
g_error_free (error);
goto out;
}
- engine->priv->array = up_client_get_devices (engine->priv->client);
-
- /* do we have specific device types? */
- array = engine->priv->array;
- for (i=0;i<array->len;i++) {
- device = g_ptr_array_index (engine->priv->array, i);
-
- /* get device properties */
- g_object_get (device,
- "kind", &kind,
- NULL);
-
- if (kind == UP_DEVICE_KIND_BATTERY)
- has_battery = TRUE;
- else if (kind == UP_DEVICE_KIND_UPS)
- has_ups = TRUE;
- }
-
- /* only show the battery prefs section if we have batteries */
- prefs_server = gpm_prefs_server_new ();
- if (has_battery)
- gpm_prefs_server_set_capability (prefs_server, GPM_PREFS_SERVER_BATTERY);
- if (has_ups)
- gpm_prefs_server_set_capability (prefs_server, GPM_PREFS_SERVER_UPS);
- g_object_unref (prefs_server);
/* connected mobile phones */
gpm_phone_coldplug (engine->priv->phone);
@@ -867,12 +825,15 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
gpm_engine_recalculate_state (engine);
/* add to database */
+ array = up_client_get_devices (engine->priv->client);
for (i=0;i<array->len;i++) {
- device = g_ptr_array_index (engine->priv->array, i);
+ device = g_ptr_array_index (array, i);
gpm_engine_device_add (engine, device);
gpm_engine_check_recall (engine, device);
}
out:
+ if (array != NULL)
+ g_ptr_array_unref (array);
/* never repeat */
return FALSE;
}
@@ -1081,7 +1042,6 @@ phone_device_refresh_cb (GpmPhone *phone, guint idx, GpmEngine *engine)
static void
gpm_engine_init (GpmEngine *engine)
{
- gchar *icon_policy;
engine->priv = GPM_ENGINE_GET_PRIVATE (engine);
@@ -1094,10 +1054,9 @@ gpm_engine_init (GpmEngine *engine)
g_signal_connect (engine->priv->client, "device-changed",
G_CALLBACK (gpm_engine_device_changed_cb), engine);
- engine->priv->conf = mateconf_client_get_default ();
- mateconf_client_notify_add (engine->priv->conf, GPM_CONF_DIR,
- (MateConfClientNotifyFunc) gpm_engine_conf_key_changed_cb,
- engine, NULL, NULL);
+ engine->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+ g_signal_connect (engine->priv->settings, "changed",
+ G_CALLBACK (gpm_engine_settings_key_changed_cb), engine);
engine->priv->phone = gpm_phone_new ();
g_signal_connect (engine->priv->phone, "device-added",
@@ -1121,22 +1080,20 @@ gpm_engine_init (GpmEngine *engine)
engine->priv->previous_summary = NULL;
/* do we want to display the icon in the tray */
- icon_policy = mateconf_client_get_string (engine->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
- engine->priv->icon_policy = gpm_icon_policy_from_string (icon_policy);
- g_free (icon_policy);
+ engine->priv->icon_policy = g_settings_get_enum (engine->priv->settings, GPM_SETTINGS_ICON_POLICY);
/* get percentage policy */
- engine->priv->low_percentage = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_LOW, NULL);
- engine->priv->critical_percentage = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_CRITICAL, NULL);
- engine->priv->action_percentage = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_ACTION, NULL);
+ engine->priv->low_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_LOW);
+ engine->priv->critical_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_CRITICAL);
+ engine->priv->action_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_ACTION);
/* get time policy */
- engine->priv->low_time = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_LOW, NULL);
- engine->priv->critical_time = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_CRITICAL, NULL);
- engine->priv->action_time = mateconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_ACTION, NULL);
+ engine->priv->low_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_LOW);
+ engine->priv->critical_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_CRITICAL);
+ engine->priv->action_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_ACTION);
/* we can disable this if the time remaining is inaccurate or just plain wrong */
- engine->priv->use_time_primary = mateconf_client_get_bool (engine->priv->conf, GPM_CONF_USE_TIME_POLICY, NULL);
+ engine->priv->use_time_primary = g_settings_get_boolean (engine->priv->settings, GPM_SETTINGS_USE_TIME_POLICY);
if (engine->priv->use_time_primary)
egg_debug ("Using per-time notification policy");
else
diff --git a/src/gpm-idle.c b/src/gpm-idle.c
index 0a7c33c..97e9072 100644
--- a/src/gpm-idle.c
+++ b/src/gpm-idle.c
@@ -352,6 +352,7 @@ static void
gpm_idle_session_idle_changed_cb (GpmSession *session, gboolean is_idle, GpmIdle *idle)
{
egg_debug ("Received mate session idle changed: %i", is_idle);
+ idle->priv->x_idle = TRUE;
gpm_idle_evaluate (idle);
}
diff --git a/src/gpm-kbd-backlight.c b/src/gpm-kbd-backlight.c
new file mode 100644
index 0000000..4ed3fcf
--- /dev/null
+++ b/src/gpm-kbd-backlight.c
@@ -0,0 +1,734 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2010 Alex Launi <alex launi canonical com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <gio/gio.h>
+#include <glib.h>
+#include <libupower-glib/upower.h>
+
+#include "gpm-button.h"
+#include "gpm-common.h"
+#include "gpm-control.h"
+#include "gpm-idle.h"
+#include "gpm-kbd-backlight.h"
+
+static const gchar *kbd_backlight_introspection = ""
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>""<node name=\"/\">"
+ "<interface name=\"org.mate.PowerManager.Backlight\">"
+ "<method name=\"GetBrightness\">"
+ "<arg type=\"u\" name=\"percentage_brightness\" direction=\"out\"/>"
+ "</method>"
+ "<method name=\"SetBrightness\">"
+ "<arg type=\"u\" name=\"percentage_brightness\" direction=\"in\"/>"
+ "</method>"
+ "<signal name=\"BrightnessChanged\">"
+ "<arg type=\"u\" name=\"percentage_brightness\" direction=\"out\"/>"
+ "</signal>"
+ "</interface>"
+"</node>";
+
+#define GPM_KBD_BACKLIGHT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GPM_TYPE_KBD_BACKLIGHT, GpmKbdBacklightPrivate))
+
+struct GpmKbdBacklightPrivate
+{
+ UpClient *client;
+ GpmButton *button;
+ GSettings *settings;
+ GSettings *settings_gsd;
+ GpmControl *control;
+ GpmIdle *idle;
+ gboolean can_dim;
+ gboolean system_is_idle;
+ GTimer *idle_timer;
+ guint idle_dim_timeout;
+ guint master_percentage;
+ guint brightness;
+ guint max_brightness;
+ guint brightness_percent;
+ GDBusProxy *upower_proxy;
+ GDBusConnection *bus_connection;
+ guint bus_object_id;
+};
+
+enum {
+ BRIGHTNESS_CHANGED,
+ LAST_SIGNAL
+};
+
+static guint signals [LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (GpmKbdBacklight, gpm_kbd_backlight, G_TYPE_OBJECT)
+
+/**
+ * gpm_kbd_backlight_error_quark:
+ * Return value: Our personal error quark.
+ **/
+GQuark
+gpm_kbd_backlight_error_quark (void)
+{
+ static GQuark quark = 0;
+ if (!quark)
+ quark = g_quark_from_static_string ("gpm_kbd_backlight_error");
+ return quark;
+}
+
+/**
+ * gpm_kbd_backlight_get_brightness:
+ * @backlight:
+ * @brightness:
+ * @error:
+ *
+ * Return value:
+ */
+gboolean
+gpm_kbd_backlight_get_brightness (GpmKbdBacklight *backlight,
+ guint *brightness,
+ GError **error)
+{
+ g_return_val_if_fail (backlight != NULL, FALSE);
+ g_return_val_if_fail (GPM_IS_KBD_BACKLIGHT (backlight), FALSE);
+ g_return_val_if_fail (brightness != NULL, FALSE);
+
+ if (backlight->priv->can_dim == FALSE) {
+ g_set_error_literal (error, gpm_kbd_backlight_error_quark (),
+ GPM_KBD_BACKLIGHT_ERROR_HARDWARE_NOT_PRESENT,
+ "Dim capable hardware not present");
+ return FALSE;
+ }
+
+ *brightness = backlight->priv->brightness_percent;
+ return TRUE;
+}
+
+static gboolean
+gpm_kbd_backlight_set (GpmKbdBacklight *backlight,
+ guint percentage)
+{
+ gint scale;
+ guint goal;
+
+ g_return_val_if_fail (GPM_IS_KBD_BACKLIGHT (backlight), FALSE);
+ /* if we're setting the same we are, don't bother */
+ //g_return_val_if_fail (backlight->priv->brightness_percent != percentage, FALSE);
+
+ goal = gpm_discrete_from_percent (percentage, backlight->priv->max_brightness);
+ scale = percentage > backlight->priv->brightness_percent ? 1 : -1;
+
+ /* step loop down by 1 for a dimming effect */
+ while (backlight->priv->brightness != goal) {
+ backlight->priv->brightness += scale;
+ backlight->priv->brightness_percent = gpm_discrete_to_percent (backlight->priv->brightness, backlight->priv->max_brightness);
+
+ g_dbus_proxy_call (backlight->priv->upower_proxy,
+ "SetBrightness",
+ g_variant_new ("(i)", (gint) backlight->priv->brightness),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ NULL,
+ NULL);
+ }
+
+ return TRUE;
+}
+
+/**
+ * gpm_kbd_backlight_brightness_up:
+ **/
+static gboolean
+gpm_kbd_backlight_brightness_up (GpmKbdBacklight *backlight)
+{
+ guint new;
+
+ new = MIN (backlight->priv->brightness_percent + GPM_KBD_BACKLIGHT_STEP, 100u);
+ return gpm_kbd_backlight_set (backlight, new);
+}
+
+/**
+ * gpm_kbd_backlight_brightness_down:
+ **/
+static gboolean
+gpm_kbd_backlight_brightness_down (GpmKbdBacklight *backlight)
+{
+ guint new;
+
+ // we can possibly go below 0 here, so by converting to a gint we avoid underflow errors.
+ new = MAX ((gint) backlight->priv->brightness_percent - GPM_KBD_BACKLIGHT_STEP, 0);
+ return gpm_kbd_backlight_set (backlight, new);
+}
+
+/**
+ * gpm_kbd_backlight_set_brightness:
+ * @backlight:
+ * @percentage:
+ * @error:
+ *
+ * Return value:
+ **/
+gboolean
+gpm_kbd_backlight_set_brightness (GpmKbdBacklight *backlight,
+ guint percentage,
+ GError **error)
+{
+ gboolean ret;
+
+ g_return_val_if_fail (backlight != NULL, FALSE);
+ g_return_val_if_fail (GPM_IS_KBD_BACKLIGHT (backlight), FALSE);
+
+ if (backlight->priv->can_dim == FALSE) {
+ g_set_error_literal (error, gpm_kbd_backlight_error_quark (),
+ GPM_KBD_BACKLIGHT_ERROR_HARDWARE_NOT_PRESENT,
+ "Dim capable hardware not present");
+ return FALSE;
+ }
+
+ backlight->priv->master_percentage = percentage;
+
+ ret = gpm_kbd_backlight_set (backlight, percentage);
+ if (!ret) {
+ g_set_error_literal (error, gpm_kbd_backlight_error_quark (),
+ GPM_KBD_BACKLIGHT_ERROR_GENERAL,
+ "Cannot set keyboard backlight brightness");
+ }
+
+ return ret;
+}
+
+static void
+gpm_kbd_backlight_on_brightness_changed (GpmKbdBacklight *backlight,
+ guint value)
+{
+ backlight->priv->brightness = value;
+ backlight->priv->brightness_percent = gpm_discrete_to_percent (value, backlight->priv->max_brightness);
+ backlight->priv->master_percentage = backlight->priv->brightness_percent;
+ g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, backlight->priv->brightness_percent);
+}
+
+/**
+ * gpm_kbd_backlight_on_dbus_signal:
+ **/
+static void
+gpm_kbd_backlight_on_dbus_signal (GDBusProxy *proxy,
+ gchar *sender_name,
+ gchar *signal_name,
+ GVariant *parameters,
+ gpointer user_data)
+{
+ guint value;
+ GpmKbdBacklight *backlight = GPM_KBD_BACKLIGHT (user_data);
+
+ if (g_strcmp0 (signal_name, "BrightnessChanged") == 0) {
+ g_variant_get (parameters, "(i)", &value);
+ gpm_kbd_backlight_on_brightness_changed (backlight, value);
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+/**
+ * gpm_kbd_backlight_dbus_method_call:
+ * @connection:
+ * @object_path:
+ * @interface_name:
+ * @method_name:
+ * @parameters:
+ * @invocation:
+ * @user_data:
+ **/
+static void
+gpm_kbd_backlight_dbus_method_call (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ guint value;
+ gboolean ret;
+ GError *error = NULL;
+ GpmKbdBacklight *backlight = GPM_KBD_BACKLIGHT (user_data);
+
+ if (g_strcmp0 (method_name, "GetBrightness") == 0) {
+ ret = gpm_kbd_backlight_get_brightness (backlight, &value, &error);
+ if (!ret) {
+ g_dbus_method_invocation_return_gerror (invocation, error);
+ g_error_free (error);
+ } else {
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(u)", value));
+ }
+ return;
+ }
+
+ if (g_strcmp0 (method_name, "SetBrightness") == 0) {
+ g_variant_get (parameters, "(u)", &value);
+ ret = gpm_kbd_backlight_set_brightness (backlight, value, &error);
+ if (!ret) {
+ g_dbus_method_invocation_return_gerror (invocation, error);
+ g_error_free (error);
+ } else {
+ g_dbus_method_invocation_return_value (invocation, NULL);
+ }
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+
+/**
+ * gpm_kbd_backlight_dbus_property_get:
+ * @sender:
+ * @object_path:
+ * @interface_name:
+ * @property_name:
+ * @error:
+ * @user_data:
+ *
+ * Return value:
+ **/
+static GVariant *
+gpm_kbd_backlight_dbus_property_get (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ /* Do nothing, we have no props */
+ return NULL;
+}
+
+/**
+ * gpm_kbd_backlight_dbus_property_set:
+ * @connection:
+ * @sender:
+ * @object_path:
+ * @interface_name:
+ * @property_name:
+ *
+ * Return value:
+ **/
+static gboolean
+gpm_kbd_backlight_dbus_property_set (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GVariant *value,
+ GError **error,
+ gpointer user_data)
+{
+ /* do nothing, no properties defined */
+ return FALSE;
+}
+
+/**
+ * gpm_kbd_backlight_register_dbus:
+ * @backlight:
+ * @connection:
+ * @error:
+ **/
+void
+gpm_kbd_backlight_register_dbus (GpmKbdBacklight *backlight,
+ GDBusConnection *connection,
+ GError **error)
+{
+ GDBusNodeInfo *node_info;
+ GDBusInterfaceInfo *interface_info;
+ GDBusInterfaceVTable interface_vtable = {
+ gpm_kbd_backlight_dbus_method_call,
+ gpm_kbd_backlight_dbus_property_get,
+ gpm_kbd_backlight_dbus_property_set
+ };
+
+ node_info = g_dbus_node_info_new_for_xml (kbd_backlight_introspection, NULL);
+ interface_info = g_dbus_node_info_lookup_interface (node_info, GPM_DBUS_INTERFACE_BACKLIGHT);
+
+ backlight->priv->bus_connection = g_object_ref (connection);
+ backlight->priv->bus_object_id =
+ g_dbus_connection_register_object (connection,
+ GPM_DBUS_PATH_KBD_BACKLIGHT,
+ interface_info,
+ &interface_vtable,
+ backlight,
+ NULL,
+ error);
+ g_dbus_node_info_unref (node_info);
+}
+
+static gboolean
+gpm_kbd_backlight_evaluate_power_source_and_set (GpmKbdBacklight *backlight)
+{
+ gfloat brightness;
+ gfloat scale;
+ gboolean on_battery;
+ gboolean battery_reduce;
+ guint value;
+ gboolean ret;
+
+ brightness = backlight->priv->master_percentage;
+
+ g_object_get (backlight->priv->client,
+ "on-battery",
+ &on_battery,
+ NULL);
+
+ battery_reduce = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_KBD_BACKLIGHT_BATT_REDUCE);
+
+ if (on_battery && battery_reduce) {
+ value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_KBD_BRIGHTNESS_DIM_BY_ON_BATT);
+
+ if (value > 100) {
+ g_warning ("Cannot scale brightness down by more than 100%%. Scaling by 50%%");
+ value = 50;
+ }
+
+ scale = (100 - value) / 100.0f;
+ brightness *= scale;
+
+ value = (guint) brightness;
+
+ } else {
+ value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_KBD_BRIGHTNESS_ON_AC);
+ }
+
+ ret = gpm_kbd_backlight_set (backlight, value);
+ return ret;
+}
+
+/**
+ * gpm_kbd_backlight_control_resume_cb:
+ * @control: The control class instance
+ * @backlight: This backlight class instance
+ *
+ * Just make sure that the backlight is back on
+ **/
+static void
+gpm_kbd_backlight_control_resume_cb (GpmControl *control,
+ GpmControlAction action,
+ GpmKbdBacklight *backlight)
+{
+ gboolean ret;
+
+ ret = gpm_kbd_backlight_evaluate_power_source_and_set (backlight);
+ if (!ret)
+ g_warning ("Failed to turn kbd brightness back on after resuming");
+}
+
+/**
+ * gpm_kbd_backlight_client_changed_cb:
+ * @client: The up_client class instance
+ * @backlight: This class instance
+ *
+ * Does the actions when the ac power source is inserted/removed.
+ **/
+static void
+gpm_kbd_backlight_client_changed_cb (UpClient *client,
+ GpmKbdBacklight *backlight)
+{
+ gpm_kbd_backlight_evaluate_power_source_and_set (backlight);
+}
+
+/**
+ * gpm_kbd_backlight_button_pressed_cb:
+ * @power: The power class instance
+ * @type: The button type, but here we only care about keyboard brightness buttons
+ * @backlight: This class instance
+ **/
+static void
+gpm_kbd_backlight_button_pressed_cb (GpmButton *button,
+ const gchar *type,
+ GpmKbdBacklight *backlight)
+{
+ static guint saved_brightness;
+
+ saved_brightness = backlight->priv->master_percentage;
+
+ if (g_strcmp0 (type, GPM_BUTTON_KBD_BRIGHT_UP) == 0) {
+ gpm_kbd_backlight_brightness_up (backlight);
+
+ } else if (g_strcmp0 (type, GPM_BUTTON_KBD_BRIGHT_DOWN) == 0) {
+ gpm_kbd_backlight_brightness_down (backlight);
+
+ } else if (g_strcmp0 (type, GPM_BUTTON_KBD_BRIGHT_TOGGLE) == 0) {
+ if (backlight->priv->master_percentage == 0) {
+ /* backlight is off turn it back on */
+ gpm_kbd_backlight_set (backlight, saved_brightness);
+ } else {
+ /* backlight is on, turn it off and save current value */
+ saved_brightness = backlight->priv->master_percentage;
+ gpm_kbd_backlight_set (backlight, 0);
+ }
+ }
+}
+
+/**
+ * gpm_kbd_backlight_idle_changed_cb:
+ * @idle: The idle class instance
+ * @mode: The idle mode, e.g. GPM_IDLE_MODE_BLANK
+ * @backlight: This class instance
+ *
+ * This callback is called when mate-screensaver detects that the idle state
+ * has changed. GPM_IDLE_MODE_BLANK is when the session has become inactive,
+ * and GPM_IDLE_MODE_SLEEP is where the session has become inactive, AND the
+ * session timeout has elapsed for the idle action.
+ **/
+static void
+gpm_kbd_backlight_idle_changed_cb (GpmIdle *idle,
+ GpmIdleMode mode,
+ GpmKbdBacklight *backlight)
+{
+ gfloat brightness;
+ gfloat scale;
+ guint value;
+ gboolean lid_closed;
+ gboolean on_battery;
+ gboolean enable_action;
+
+ lid_closed = gpm_button_is_lid_closed (backlight->priv->button);
+
+ if (lid_closed)
+ return;
+
+ g_object_get (backlight->priv->client,
+ "on-battery",
+ &on_battery,
+ NULL);
+
+ enable_action = on_battery
+ ? g_settings_get_boolean (backlight->priv->settings_gsd, GPM_SETTINGS_IDLE_DIM_BATT)
+ : g_settings_get_boolean (backlight->priv->settings_gsd, GPM_SETTINGS_IDLE_DIM_AC);
+
+ if (!enable_action)
+ return;
+
+ if (mode == GPM_IDLE_MODE_NORMAL) {
+ backlight->priv->master_percentage = 100;
+ gpm_kbd_backlight_evaluate_power_source_and_set (backlight);
+ } else if (mode == GPM_IDLE_MODE_DIM) {
+ brightness = backlight->priv->master_percentage;
+ value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_KBD_BRIGHTNESS_DIM_BY_ON_IDLE);
+
+ if (value > 100) {
+ g_warning ("Cannot scale brightness down by more than 100%%. Scaling by 50%%");
+ value = 50;
+ }
+
+ scale = (100 - value) / 100.0f;
+ brightness *= scale;
+
+ value = (guint) brightness;
+ gpm_kbd_backlight_set (backlight, value);
+ } else if (mode == GPM_IDLE_MODE_BLANK) {
+ gpm_kbd_backlight_set (backlight, 0u);
+ }
+}
+
+/**
+ * gpm_kbd_backlight_finalize:
+ * @object:
+ **/
+static void
+gpm_kbd_backlight_finalize (GObject *object)
+{
+ GpmKbdBacklight *backlight;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GPM_IS_KBD_BACKLIGHT (object));
+
+ backlight = GPM_KBD_BACKLIGHT (object);
+
+ if (backlight->priv->upower_proxy != NULL) {
+ g_object_unref (backlight->priv->upower_proxy);
+ }
+ if (backlight->priv->bus_connection != NULL) {
+ g_dbus_connection_unregister_object (backlight->priv->bus_connection,
+ backlight->priv->bus_object_id);
+ g_object_unref (backlight->priv->bus_connection);
+ }
+
+ g_timer_destroy (backlight->priv->idle_timer);
+
+ g_object_unref (backlight->priv->control);
+ g_object_unref (backlight->priv->settings);
+ g_object_unref (backlight->priv->settings_gsd);
+ g_object_unref (backlight->priv->client);
+ g_object_unref (backlight->priv->button);
+ g_object_unref (backlight->priv->idle);
+
+ g_return_if_fail (backlight->priv != NULL);
+ G_OBJECT_CLASS (gpm_kbd_backlight_parent_class)->finalize (object);
+}
+
+/**
+ * gpm_kbd_backlight_class_init:
+ * @klass:
+ **/
+static void
+gpm_kbd_backlight_class_init (GpmKbdBacklightClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = gpm_kbd_backlight_finalize;
+
+ signals [BRIGHTNESS_CHANGED] =
+ g_signal_new ("brightness-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GpmKbdBacklightClass, brightness_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_UINT);
+
+ g_type_class_add_private (klass, sizeof (GpmKbdBacklightPrivate));
+}
+
+/**
+ * gpm_kbd_backlight_init:
+ * @backlight: This KbdBacklight class instance
+ *
+ * Initializes the KbdBacklight class.
+ **/
+static void
+gpm_kbd_backlight_init (GpmKbdBacklight *backlight)
+{
+ GVariant *u_brightness;
+ GVariant *u_max_brightness;
+ GError *error = NULL;
+
+ backlight->priv = GPM_KBD_BACKLIGHT_GET_PRIVATE (backlight);
+
+ backlight->priv->upower_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+ NULL,
+ "org.freedesktop.UPower",
+ "/org/freedesktop/UPower/KbdBacklight",
+ "org.freedesktop.UPower.KbdBacklight",
+ NULL,
+ &error);
+ if (backlight->priv->upower_proxy == NULL) {
+ g_printerr ("Could not connect to UPower system bus: %s", error->message);
+ g_error_free (error);
+ goto err;
+ }
+
+ g_signal_connect (backlight->priv->upower_proxy,
+ "g-signal",
+ G_CALLBACK (gpm_kbd_backlight_on_dbus_signal),
+ backlight);
+
+ u_brightness = g_dbus_proxy_call_sync (backlight->priv->upower_proxy,
+ "GetBrightness",
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ &error);
+ if (u_brightness == NULL) {
+ g_warning ("Failed to get brightness: %s", error->message);
+ g_error_free (error);
+ goto err;
+ }
+
+ error = NULL;
+ u_max_brightness = g_dbus_proxy_call_sync (backlight->priv->upower_proxy,
+ "GetMaxBrightness",
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ &error);
+ if (u_max_brightness == NULL) {
+ g_warning ("Failed to get max brightness: %s", error->message);
+ g_error_free (error);
+ g_variant_unref (u_brightness);
+ goto err;
+ }
+
+ g_variant_get (u_brightness, "(i)", &backlight->priv->brightness);
+ g_variant_get (u_max_brightness, "(i)", &backlight->priv->max_brightness);
+
+ backlight->priv->brightness_percent = gpm_discrete_to_percent (backlight->priv->brightness,
+ backlight->priv->max_brightness);
+
+ g_variant_unref (u_brightness);
+ g_variant_unref (u_max_brightness);
+ goto noerr;
+
+err:
+ backlight->priv->brightness = 0;
+ backlight->priv->brightness_percent = 100;
+ backlight->priv->max_brightness = 0;
+
+noerr:
+ /* Initialize the master to full power. It will get scaled if needed */
+ backlight->priv->master_percentage = 100u;
+
+ backlight->priv->idle_timer = g_timer_new ();
+ backlight->priv->can_dim = backlight->priv->max_brightness > 1;
+
+ /* Use upower for ac changed signal */
+ backlight->priv->client = up_client_new ();
+ g_signal_connect (backlight->priv->client, "changed",
+ G_CALLBACK (gpm_kbd_backlight_client_changed_cb), backlight);
+
+ backlight->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+ //backlight->priv->settings_gsd = g_settings_new (GSD_SETTINGS_SCHEMA);
+
+ /* watch for kbd brightness up and down button presses */
+ backlight->priv->button = gpm_button_new ();
+ g_signal_connect (backlight->priv->button, "button-pressed",
+ G_CALLBACK (gpm_kbd_backlight_button_pressed_cb), backlight);
+
+ backlight->priv->idle = gpm_idle_new ();
+ g_signal_connect (backlight->priv->idle, "idle-changed",
+ G_CALLBACK (gpm_kbd_backlight_idle_changed_cb), backlight);
+
+ /* since gpm is just starting we can pretty safely assume that we're not idle */
+ backlight->priv->system_is_idle = FALSE;
+ backlight->priv->idle_dim_timeout = g_settings_get_int (backlight->priv->settings_gsd, GPM_SETTINGS_IDLE_DIM_TIME);
+ gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
+
+ /* make sure we turn the keyboard backlight back on after resuming */
+ backlight->priv->control = gpm_control_new ();
+ g_signal_connect (backlight->priv->control, "resume",
+ G_CALLBACK (gpm_kbd_backlight_control_resume_cb), backlight);
+
+ /* set initial values for whether we're on AC or battery*/
+ gpm_kbd_backlight_evaluate_power_source_and_set (backlight);
+}
+
+/**
+ * gpm_kbd_backlight_new:
+ * Return value: A new GpmKbdBacklight class instance.
+ **/
+GpmKbdBacklight *
+gpm_kbd_backlight_new (void)
+{
+ GpmKbdBacklight *backlight = g_object_new (GPM_TYPE_KBD_BACKLIGHT, NULL);
+ return backlight;
+}
+
diff --git a/src/gpm-kbd-backlight.h b/src/gpm-kbd-backlight.h
new file mode 100644
index 0000000..78975b5
--- /dev/null
+++ b/src/gpm-kbd-backlight.h
@@ -0,0 +1,79 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2010 Alex Launi <alex launi canonical com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __GPM_KBD_BACKLIGHT_H
+#define __GPM_KBD_BACKLIGHT_H
+
+#include <gio/gio.h>
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define GPM_TYPE_KBD_BACKLIGHT (gpm_kbd_backlight_get_type ())
+#define GPM_KBD_BACKLIGHT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GPM_TYPE_KBD_BACKLIGHT, GpmKbdBacklight))
+#define GPM_KBD_BACKLIGHT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GPM_TYPE_KBD_BACKLIGHT, GpmKbdBacklightClass))
+#define GPM_IS_KBD_BACKLIGHT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPM_TYPE_KBD_BACKLIGHT))
+#define GPM_IS_KBD_BACKLIGHT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GPM_TYPE_KBD_BACKLIGHT))
+#define GPM_KBD_BACKLIGHT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GPM_TYPE_KBD_BACKLIGHT, GpmKbdBacklightClass))
+
+#define GPM_KBD_BACKLIGHT_DIM_INTERVAL 5 /* ms */
+#define GPM_KBD_BACKLIGHT_STEP 10 /* change by 10% each step */
+
+typedef struct GpmKbdBacklightPrivate GpmKbdBacklightPrivate;
+
+typedef struct
+{
+ GObject parent;
+ GpmKbdBacklightPrivate *priv;
+} GpmKbdBacklight;
+
+typedef struct
+{
+ GObjectClass parent_class;
+ void (* brightness_changed) (GpmKbdBacklight *backlight,
+ gint brightness);
+} GpmKbdBacklightClass;
+
+typedef enum
+{
+ GPM_KBD_BACKLIGHT_ERROR_GENERAL,
+ GPM_KBD_BACKLIGHT_ERROR_DATA_NOT_AVAILABLE,
+ GPM_KBD_BACKLIGHT_ERROR_HARDWARE_NOT_PRESENT
+} GpmKbdBacklightError;
+
+GType gpm_kbd_backlight_get_type (void);
+GQuark gpm_kbd_backlight_error_quark (void);
+GpmKbdBacklight *gpm_kbd_backlight_new (void);
+gboolean gpm_kbd_backlight_get_brightness (GpmKbdBacklight *backlight,
+ guint *brightness,
+ GError **error);
+gboolean gpm_kbd_backlight_set_brightness (GpmKbdBacklight *backlight,
+ guint brightness,
+ GError **error);
+void gpm_kbd_backlight_register_dbus (GpmKbdBacklight *backlight,
+ GDBusConnection *connection,
+ GError **error);
+
+G_END_DECLS
+
+#endif /* __GPM_KBD_BACKLIGHT_H */
+
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index ec787be..9ee8781 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -38,7 +38,6 @@
#include <gtk/gtk.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <mateconf/mateconf-client.h>
#include <canberra-gtk.h>
#include <libupower-glib/upower.h>
#include <libmatenotify/notify.h>
@@ -54,9 +53,9 @@
#include "gpm-manager.h"
#include "gpm-screensaver.h"
#include "gpm-backlight.h"
+#include "gpm-kbd-backlight.h"
#include "gpm-session.h"
#include "gpm-stock-icons.h"
-#include "gpm-prefs-server.h"
#include "gpm-tray-icon.h"
#include "gpm-engine.h"
#include "gpm-upower.h"
@@ -77,16 +76,16 @@ static void gpm_manager_finalize (GObject *object);
struct GpmManagerPrivate
{
GpmButton *button;
- MateConfClient *conf;
+ GSettings *settings;
GpmDisks *disks;
GpmDpms *dpms;
GpmIdle *idle;
- GpmPrefsServer *prefs_server;
GpmControl *control;
GpmScreensaver *screensaver;
GpmTrayIcon *tray_icon;
GpmEngine *engine;
GpmBacklight *backlight;
+ GpmKbdBacklight *kbd_backlight;
EggConsoleKit *console;
guint32 screensaver_ac_throttle_id;
guint32 screensaver_dpms_throttle_id;
@@ -200,7 +199,7 @@ gpm_manager_play_loop_start (GpmManager *manager, GpmManagerSound action, gboole
gint retval;
ca_context *context;
- ret = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_UI_ENABLE_SOUND, NULL);
+ ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_ENABLE_SOUND);
if (!ret && !force) {
egg_debug ("ignoring sound due to policy");
return FALSE;
@@ -261,7 +260,7 @@ gpm_manager_play (GpmManager *manager, GpmManagerSound action, gboolean force)
gint retval;
ca_context *context;
- ret = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_UI_ENABLE_SOUND, NULL);
+ ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_ENABLE_SOUND);
if (!ret && !force) {
egg_debug ("ignoring sound due to policy");
return FALSE;
@@ -356,11 +355,11 @@ gpm_manager_sync_policy_sleep (GpmManager *manager)
guint sleep_computer;
if (!manager->priv->on_battery) {
- sleep_computer = mateconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC, NULL);
- sleep_display = mateconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC, NULL);
+ sleep_computer = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_COMPUTER_AC);
+ sleep_display = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_DISPLAY_AC);
} else {
- sleep_computer = mateconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT, NULL);
- sleep_display = mateconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT, NULL);
+ sleep_computer = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_COMPUTER_BATT);
+ sleep_display = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_DISPLAY_BATT);
}
/* set the new sleep (inactivity) value */
@@ -375,7 +374,7 @@ gpm_manager_sync_policy_sleep (GpmManager *manager)
* Turn off the backlight of the LCD when we shut the lid, and lock
* if required. This is required because some laptops do not turn off the
* LCD backlight when the lid is closed.
- * See http://bugzilla.mate.org/show_bug.cgi?id=321313
+ * See http://bugzilla.gnome.org/show_bug.cgi?id=321313
*
* Return value: Success.
**/
@@ -387,7 +386,7 @@ gpm_manager_blank_screen (GpmManager *manager, GError **noerror)
GError *error = NULL;
do_lock = gpm_control_get_lock_policy (manager->priv->control,
- GPM_CONF_LOCK_ON_BLANK_SCREEN);
+ GPM_SETTINGS_LOCK_ON_BLANK_SCREEN);
if (do_lock) {
if (!gpm_screensaver_lock (manager->priv->screensaver))
egg_debug ("Could not lock screen via mate-screensaver");
@@ -423,7 +422,7 @@ gpm_manager_unblank_screen (GpmManager *manager, GError **noerror)
ret = FALSE;
}
- do_lock = gpm_control_get_lock_policy (manager->priv->control, GPM_CONF_LOCK_ON_BLANK_SCREEN);
+ do_lock = gpm_control_get_lock_policy (manager->priv->control, GPM_SETTINGS_LOCK_ON_BLANK_SCREEN);
if (do_lock)
gpm_screensaver_poke (manager->priv->screensaver);
return ret;
@@ -534,7 +533,7 @@ gpm_manager_sleep_failure_response_cb (GtkDialog *dialog, gint response_id, GpmM
/* user clicked the help button */
if (response_id == GTK_RESPONSE_HELP) {
- uri = mateconf_client_get_string (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED_URI, NULL);
+ uri = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI);
screen = gdk_screen_get_default();
ret = gtk_show_uri (screen, uri, gtk_get_current_event_time (), &error);
if (!ret) {
@@ -562,13 +561,13 @@ gpm_manager_sleep_failure (GpmManager *manager, gboolean is_suspend, const gchar
const gchar *icon;
GtkWidget *dialog;
- /* only show this if specified in mateconf */
- show_sleep_failed = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED, NULL);
+ /* only show this if specified in settings */
+ show_sleep_failed = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED);
egg_debug ("sleep failed");
gpm_manager_play (manager, GPM_MANAGER_SOUND_SUSPEND_ERROR, TRUE);
- /* only emit if in MateConf */
+ /* only emit if specified in settings */
if (!show_sleep_failed)
goto out;
@@ -599,7 +598,7 @@ gpm_manager_sleep_failure (GpmManager *manager, gboolean is_suspend, const gchar
gtk_window_set_icon_name (GTK_WINDOW(dialog), icon);
/* show a button? */
- uri = mateconf_client_get_string (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED_URI, NULL);
+ uri = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI);
if (uri != NULL && uri[0] != '\0') {
/* TRANSLATORS: button text, visit the suspend help website */
gtk_dialog_add_button (GTK_DIALOG (dialog), _("Visit help page"), GTK_RESPONSE_HELP);
@@ -665,21 +664,19 @@ gpm_manager_action_hibernate (GpmManager *manager, const gchar *reason)
* @policy: The policy that we should do, e.g. "suspend"
* @reason: The reason we are performing the policy action, e.g. "battery critical"
*
- * Does one of the policy actions specified in mateconf.
+ * Does one of the policy actions specified in the settings.
**/
static gboolean
gpm_manager_perform_policy (GpmManager *manager, const gchar *policy_key, const gchar *reason)
{
- gchar *action = NULL;
GpmActionPolicy policy;
/* are we inhibited? */
if (gpm_manager_is_inhibit_valid (manager, FALSE, "policy action") == FALSE)
return FALSE;
- action = mateconf_client_get_string (manager->priv->conf, policy_key, NULL);
- egg_debug ("action: %s set to %s (%s)", policy_key, action, reason);
- policy = gpm_action_policy_from_string (action);
+ policy = g_settings_get_enum (manager->priv->settings, policy_key);
+ egg_debug ("action: %s set to %i (%s)", policy_key, policy, reason);
if (policy == GPM_ACTION_POLICY_NOTHING) {
egg_debug ("doing nothing, reason: %s", reason);
@@ -703,44 +700,30 @@ gpm_manager_perform_policy (GpmManager *manager, const gchar *policy_key, const
gpm_session_logout (session);
g_object_unref (session);
} else {
- egg_warning ("unknown action %s", action);
+ egg_warning ("unknown action %i", policy);
}
- g_free (action);
return TRUE;
}
/**
- * gpm_manager_get_preferences_options:
- **/
-gboolean
-gpm_manager_get_preferences_options (GpmManager *manager, gint *capability, GError **error)
-{
- g_return_val_if_fail (manager != NULL, FALSE);
- g_return_val_if_fail (GPM_IS_MANAGER (manager), FALSE);
- return gpm_prefs_server_get_capability (manager->priv->prefs_server, capability);
-}
-
-/**
* gpm_manager_idle_do_sleep:
* @manager: This class instance
*
* This callback is called when we want to sleep. Use the users
- * preference from mateconf, but change it if we can't do the action.
+ * preference from the settings, but change it if we can't do the action.
**/
static void
gpm_manager_idle_do_sleep (GpmManager *manager)
{
- gchar *action = NULL;
gboolean ret;
GError *error = NULL;
GpmActionPolicy policy;
if (!manager->priv->on_battery)
- action = mateconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_AC, NULL);
+ policy = g_settings_get_enum (manager->priv->settings, GPM_SETTINGS_ACTION_SLEEP_TYPE_AC);
else
- action = mateconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_BATT, NULL);
- policy = gpm_action_policy_from_string (action);
+ policy = g_settings_get_enum (manager->priv->settings, GPM_SETTINGS_ACTION_SLEEP_TYPE_BATT);
if (policy == GPM_ACTION_POLICY_NOTHING) {
egg_debug ("doing nothing as system idle action");
@@ -773,7 +756,6 @@ gpm_manager_idle_do_sleep (GpmManager *manager)
}
}
}
- g_free (action);
}
/**
@@ -837,13 +819,13 @@ gpm_manager_lid_button_pressed (GpmManager *manager, gboolean pressed)
if (!manager->priv->on_battery) {
egg_debug ("Performing AC policy");
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_AC,
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_AC,
"The lid has been closed on ac power.");
return;
}
egg_debug ("Performing battery policy");
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_BATT,
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_BATT,
"The lid has been closed on battery power.");
}
@@ -926,13 +908,13 @@ gpm_manager_button_pressed_cb (GpmButton *button, const gchar *type, GpmManager
}
if (g_strcmp0 (type, GPM_BUTTON_POWER) == 0) {
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_POWER, "The power button has been pressed.");
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_POWER, "The power button has been pressed.");
} else if (g_strcmp0 (type, GPM_BUTTON_SLEEP) == 0) {
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_SUSPEND, "The suspend button has been pressed.");
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_SUSPEND, "The suspend button has been pressed.");
} else if (g_strcmp0 (type, GPM_BUTTON_SUSPEND) == 0) {
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_SUSPEND, "The suspend button has been pressed.");
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_SUSPEND, "The suspend button has been pressed.");
} else if (g_strcmp0 (type, GPM_BUTTON_HIBERNATE) == 0) {
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_HIBERNATE, "The hibernate button has been pressed.");
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_HIBERNATE, "The hibernate button has been pressed.");
} else if (g_strcmp0 (type, GPM_BUTTON_LID_OPEN) == 0) {
gpm_manager_lid_button_pressed (manager, FALSE);
} else if (g_strcmp0 (type, GPM_BUTTON_LID_CLOSED) == 0) {
@@ -971,11 +953,11 @@ gpm_manager_get_spindown_timeout (GpmManager *manager)
/* get policy */
if (!manager->priv->on_battery) {
- enabled = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_ENABLE_AC, NULL);
- timeout = mateconf_client_get_int (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_TIMEOUT_AC, NULL);
+ enabled = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_AC);
+ timeout = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SPINDOWN_TIMEOUT_AC);
} else {
- enabled = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT, NULL);
- timeout = mateconf_client_get_int (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_TIMEOUT_BATT, NULL);
+ enabled = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_BATT);
+ timeout = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SPINDOWN_TIMEOUT_BATT);
}
if (!enabled)
timeout = 0;
@@ -1046,15 +1028,15 @@ gpm_manager_client_changed_cb (UpClient *client, GpmManager *manager)
/* We do the lid close on battery action if the ac adapter is removed
when the laptop is closed and on battery. Fixes #331655 */
- event_when_closed = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_WHEN_CLOSED, NULL);
+ event_when_closed = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SLEEP_WHEN_CLOSED);
/* We keep track of the lid state so we can do the
lid close on battery action if the ac adapter is removed when the laptop
is closed. Fixes #331655 */
if (event_when_closed && on_battery && lid_is_closed) {
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_BATT,
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_BATT,
"The lid has been closed, and the ac adapter "
- "removed (and mateconf is okay).");
+ "removed (and GSettings is okay).");
}
}
@@ -1074,7 +1056,7 @@ manager_critical_action_do (GpmManager *manager)
if (manager->priv->critical_alert_timeout_id)
gpm_manager_play_loop_stop (manager);
- gpm_manager_perform_policy (manager, GPM_CONF_ACTIONS_CRITICAL_BATT, "Battery is critically low.");
+ gpm_manager_perform_policy (manager, GPM_SETTINGS_ACTION_CRITICAL_BATT, "Battery is critically low.");
return FALSE;
}
@@ -1091,53 +1073,20 @@ gpm_manager_class_init (GpmManagerClass *klass)
}
/**
- * gpm_conf_mateconf_key_changed_cb:
+ * gpm_manager_settings_changed_cb:
*
- * We might have to do things when the mateconf keys change; do them here.
+ * We might have to do things when the keys change; do them here.
**/
static void
-gpm_conf_mateconf_key_changed_cb (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GpmManager *manager)
+gpm_manager_settings_changed_cb (GSettings *settings, const gchar *key, GpmManager *manager)
{
- MateConfValue *value;
-
- value = mateconf_entry_get_value (entry);
- if (value == NULL)
- return;
-
- if (g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT) == 0 ||
- g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC) == 0 ||
- g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT) == 0 ||
- g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC) == 0)
+ if (g_strcmp0 (key, GPM_SETTINGS_SLEEP_COMPUTER_BATT) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_SLEEP_COMPUTER_AC) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_BATT) == 0 ||
+ g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_AC) == 0)
gpm_manager_sync_policy_sleep (manager);
}
-#if 0
-/**
- * gpm_manager_screensaver_auth_request_cb:
- * @manager: This manager class instance
- * @auth: If we are trying to authenticate
- *
- * Called when the user is trying or has authenticated
- **/
-static void
-gpm_manager_screensaver_auth_request_cb (GpmScreensaver *screensaver, gboolean auth_begin, GpmManager *manager)
-{
- GError *error = NULL;
-
- if (auth_begin) {
- /* We turn on the monitor unconditionally, as we may be using
- * a smartcard to authenticate and DPMS might still be on.
- * See #350291 for more details */
- gpm_dpms_set_mode (manager->priv->dpms, GPM_DPMS_MODE_ON, &error);
- if (error != NULL) {
- egg_warning ("Failed to turn on DPMS: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- }
-}
-#endif
-
/**
* gpm_manager_perhaps_recall_response_cb:
*/
@@ -1152,7 +1101,7 @@ gpm_manager_perhaps_recall_response_cb (GtkDialog *dialog, gint response_id, Gpm
/* don't show this again */
if (response_id == GTK_RESPONSE_CANCEL) {
- mateconf_client_set_bool (manager->priv->conf, GPM_CONF_NOTIFY_PERHAPS_RECALL, FALSE, NULL);
+ g_settings_set_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_PERHAPS_RECALL, FALSE);
goto out;
}
@@ -1230,9 +1179,9 @@ gpm_manager_engine_perhaps_recall_cb (GpmEngine *engine, UpDevice *device, gchar
}
/* already shown, and dismissed */
- ret = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_PERHAPS_RECALL, NULL);
+ ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
if (!ret) {
- egg_debug ("MateConf prevents notification: %s", GPM_CONF_NOTIFY_PERHAPS_RECALL);
+ egg_debug ("Gsettings prevents notification: %s", GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
return;
}
@@ -1310,8 +1259,8 @@ gpm_manager_engine_fully_charged_cb (GpmEngine *engine, UpDevice *device, GpmMan
guint plural = 1;
const gchar *title;
- /* only action this if specified in mateconf */
- ret = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_FULLY_CHARGED, NULL);
+ /* only action this if specified in the setings */
+ ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_FULLY_CHARGED);
if (!ret) {
egg_debug ("no notification");
goto out;
@@ -1364,8 +1313,8 @@ gpm_manager_engine_discharging_cb (GpmEngine *engine, UpDevice *device, GpmManag
gchar *icon = NULL;
const gchar *kind_desc;
- /* only action this if specified in mateconf */
- ret = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_DISCHARGING, NULL);
+ /* only action this if specified in the settings */
+ ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_DISCHARGING);
if (!ret) {
egg_debug ("no notification");
goto out;
@@ -1573,7 +1522,6 @@ gpm_manager_engine_charge_critical_cb (GpmEngine *engine, UpDevice *device, GpmM
{
const gchar *title = NULL;
gchar *message = NULL;
- gchar *action;
gchar *icon = NULL;
UpDeviceKind kind;
gdouble percentage;
@@ -1609,8 +1557,7 @@ gpm_manager_engine_charge_critical_cb (GpmEngine *engine, UpDevice *device, GpmM
}
/* we have to do different warnings depending on the policy */
- action = mateconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_BATT, NULL);
- policy = gpm_action_policy_from_string (action);
+ policy = g_settings_get_enum (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_BATT);
/* use different text for different actions */
if (policy == GPM_ACTION_POLICY_NOTHING) {
@@ -1630,7 +1577,6 @@ gpm_manager_engine_charge_critical_cb (GpmEngine *engine, UpDevice *device, GpmM
message = g_strdup_printf (_("Computer will shutdown very soon unless it is plugged in."));
}
- g_free (action);
} else if (kind == UP_DEVICE_KIND_UPS) {
gchar *remaining_text;
@@ -1740,7 +1686,6 @@ static void
gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmManager *manager)
{
const gchar *title = NULL;
- gchar *action;
gchar *message = NULL;
gchar *icon = NULL;
UpDeviceKind kind;
@@ -1765,8 +1710,7 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
title = _("Laptop battery critically low");
/* we have to do different warnings depending on the policy */
- action = mateconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_BATT, NULL);
- policy = gpm_action_policy_from_string (action);
+ policy = g_settings_get_enum (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_BATT);
/* use different text for different actions */
if (policy == GPM_ACTION_POLICY_NOTHING) {
@@ -1793,8 +1737,6 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
"this computer is about to shutdown."));
}
- g_free (action);
-
/* wait 20 seconds for user-panic */
g_timeout_add_seconds (20, (GSourceFunc) manager_critical_action_do, manager);
@@ -1803,8 +1745,7 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
title = _("UPS critically low");
/* we have to do different warnings depending on the policy */
- action = mateconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_UPS, NULL);
- policy = gpm_action_policy_from_string (action);
+ policy = g_settings_get_enum (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_UPS);
/* use different text for different actions */
if (policy == GPM_ACTION_POLICY_NOTHING) {
@@ -1827,7 +1768,6 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
/* wait 20 seconds for user-panic */
g_timeout_add_seconds (20, (GSourceFunc) manager_critical_action_do, manager);
- g_free (action);
}
/* not all types have actions */
@@ -1910,11 +1850,12 @@ gpm_manager_init (GpmManager *manager)
gboolean check_type_cpu;
gint timeout;
DBusGConnection *connection;
+ GDBusConnection *g_connection;
GError *error = NULL;
- guint version;
manager->priv = GPM_MANAGER_GET_PRIVATE (manager);
connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ g_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
/* init to unthrottled */
manager->priv->screensaver_ac_throttle_id = 0;
@@ -1930,15 +1871,14 @@ gpm_manager_init (GpmManager *manager)
/* don't apply policy when not active, so listen to ConsoleKit */
manager->priv->console = egg_console_kit_new ();
- /* this is a singleton, so we keep a master copy open here */
- manager->priv->prefs_server = gpm_prefs_server_new ();
-
manager->priv->notification_general = NULL;
manager->priv->notification_warning_low = NULL;
manager->priv->notification_discharging = NULL;
manager->priv->notification_fully_charged = NULL;
manager->priv->disks = gpm_disks_new ();
- manager->priv->conf = mateconf_client_get_default ();
+ manager->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+ g_signal_connect (manager->priv->settings, "changed",
+ G_CALLBACK (gpm_manager_settings_changed_cb), manager);
manager->priv->client = up_client_new ();
g_signal_connect (manager->priv->client, "changed",
G_CALLBACK (gpm_manager_client_changed_cb), manager);
@@ -1946,28 +1886,6 @@ gpm_manager_init (GpmManager *manager)
/* use libmatenotify */
notify_init (GPM_NAME);
- /* watch mate-power-manager keys */
- mateconf_client_add_dir (manager->priv->conf, GPM_CONF_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
- mateconf_client_notify_add (manager->priv->conf, GPM_CONF_DIR,
- (MateConfClientNotifyFunc) gpm_conf_mateconf_key_changed_cb,
- manager, NULL, NULL);
-
- /* check to see if the user has installed the schema properly */
- version = mateconf_client_get_int (manager->priv->conf, GPM_CONF_SCHEMA_VERSION, NULL);
- if (version != GPM_CONF_SCHEMA_ID) {
- gpm_manager_notify (manager, &manager->priv->notification_general,
- /* TRANSLATORS: there was in install problem */
- _("Install problem!"),
- /* TRANSLATORS: the MateConf schema was not installed properly */
- _("The configuration defaults for MATE Power Manager have not been installed correctly.\n"
- "Please contact your computer administrator."),
- GPM_MANAGER_NOTIFY_TIMEOUT_LONG,
- GTK_STOCK_DIALOG_WARNING,
- NOTIFY_URGENCY_NORMAL);
- egg_error ("no mateconf schema installed!");
- }
-
/* coldplug so we are in the correct state at startup */
g_object_get (manager->priv->client,
"on-battery", &manager->priv->on_battery,
@@ -1979,10 +1897,6 @@ gpm_manager_init (GpmManager *manager)
/* try and start an interactive service */
manager->priv->screensaver = gpm_screensaver_new ();
-#if 0
- g_signal_connect (manager->priv->screensaver, "auth-request",
- G_CALLBACK (gpm_manager_screensaver_auth_request_cb), manager);
-#endif
/* try an start an interactive service */
manager->priv->backlight = gpm_backlight_new ();
@@ -1994,12 +1908,19 @@ gpm_manager_init (GpmManager *manager)
G_OBJECT (manager->priv->backlight));
}
+ manager->priv->kbd_backlight = gpm_kbd_backlight_new ();
+ if (manager->priv->kbd_backlight != NULL) {
+ gpm_kbd_backlight_register_dbus (manager->priv->kbd_backlight,
+ g_connection,
+ NULL);
+ }
+
manager->priv->idle = gpm_idle_new ();
g_signal_connect (manager->priv->idle, "idle-changed",
G_CALLBACK (gpm_manager_idle_changed_cb), manager);
/* set up the check_type_cpu, so we can disable the CPU load check */
- check_type_cpu = mateconf_client_get_bool (manager->priv->conf, GPM_CONF_IDLE_CHECK_CPU, NULL);
+ check_type_cpu = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_IDLE_CHECK_CPU);
gpm_idle_set_check_cpu (manager->priv->idle, check_type_cpu);
manager->priv->dpms = gpm_dpms_new ();
@@ -2078,17 +1999,17 @@ gpm_manager_finalize (GObject *object)
if (manager->priv->critical_alert_timeout_id != 0)
g_source_remove (manager->priv->critical_alert_timeout_id);
- g_object_unref (manager->priv->conf);
+ g_object_unref (manager->priv->settings);
g_object_unref (manager->priv->disks);
g_object_unref (manager->priv->dpms);
g_object_unref (manager->priv->idle);
g_object_unref (manager->priv->engine);
g_object_unref (manager->priv->tray_icon);
g_object_unref (manager->priv->screensaver);
- g_object_unref (manager->priv->prefs_server);
g_object_unref (manager->priv->control);
g_object_unref (manager->priv->button);
g_object_unref (manager->priv->backlight);
+ g_object_unref (manager->priv->kbd_backlight);
g_object_unref (manager->priv->console);
g_object_unref (manager->priv->client);
g_object_unref (manager->priv->status_icon);
diff --git a/src/gpm-manager.h b/src/gpm-manager.h
index 1d31b75..a78509a 100644
--- a/src/gpm-manager.h
+++ b/src/gpm-manager.h
@@ -73,9 +73,6 @@ gboolean gpm_manager_can_suspend (GpmManager *manager,
gboolean gpm_manager_can_hibernate (GpmManager *manager,
gboolean *can_hibernate,
GError **error);
-gboolean gpm_manager_get_preferences_options (GpmManager *manager,
- gint *capability,
- GError **error);
G_END_DECLS
diff --git a/src/gpm-phone.c b/src/gpm-phone.c
index e5455f7..0732c91 100644
--- a/src/gpm-phone.c
+++ b/src/gpm-phone.c
@@ -26,7 +26,6 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
-#include <mateconf/mateconf-client.h>
#include "gpm-phone.h"
#include "egg-debug.h"
#include "gpm-marshal.h"
diff --git a/src/gpm-prefs-core.c b/src/gpm-prefs-core.c
index a35b268..da985c1 100644
--- a/src/gpm-prefs-core.c
+++ b/src/gpm-prefs-core.c
@@ -30,7 +30,6 @@
#include <dbus/dbus-glib.h>
#include <math.h>
#include <string.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "egg-debug.h"
@@ -40,7 +39,7 @@
#include "gpm-common.h"
#include "gpm-prefs-core.h"
#include "gpm-stock-icons.h"
-#include "gpm-prefs-server.h"
+#include "gpm-brightness.h"
static void gpm_prefs_finalize (GObject *object);
@@ -58,8 +57,7 @@ struct GpmPrefsPrivate
gboolean can_shutdown;
gboolean can_suspend;
gboolean can_hibernate;
- guint idle_delay;
- MateConfClient *conf;
+ GSettings *settings;
EggConsoleKit *console;
};
@@ -119,46 +117,6 @@ gpm_prefs_activate_window (GpmPrefs *prefs)
}
/**
- * gpm_dbus_get_caps:
- * @method: The g-p-m DBUS method name, e.g. "AllowedSuspend"
- **/
-static gint
-gpm_dbus_get_caps (GpmPrefs *prefs)
-{
- DBusGConnection *connection;
- DBusGProxy *proxy = NULL;
- GError *error = NULL;
- gboolean ret;
- gint value = 0;
-
- connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
- if (connection == NULL) {
- egg_warning ("Couldn't connect to g-p-m %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- proxy = dbus_g_proxy_new_for_name (connection,
- GPM_DBUS_SERVICE,
- GPM_DBUS_PATH,
- GPM_DBUS_INTERFACE);
- ret = dbus_g_proxy_call (proxy, "GetPreferencesOptions", &error,
- G_TYPE_INVALID,
- G_TYPE_INT, &value,
- G_TYPE_INVALID);
- if (!ret) {
- /* abort as the DBUS method failed */
- egg_warning ("GetPreferencesOptions failed: %s", error->message);
- g_error_free (error);
- goto out;
- }
-out:
- if (proxy != NULL)
- g_object_unref (proxy);
- return value;
-}
-
-/**
* gpm_prefs_help_cb:
* @widget: The GtkWidget object
* @prefs: This prefs class instance
@@ -177,13 +135,10 @@ gpm_prefs_help_cb (GtkWidget *widget, GpmPrefs *prefs)
static void
gpm_prefs_icon_radio_cb (GtkWidget *widget, GpmPrefs *prefs)
{
- const gchar *str;
gint policy;
policy = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "policy"));
- str = gpm_icon_policy_to_string (policy);
- egg_debug ("Changing %s to %s", GPM_CONF_UI_ICON_POLICY, str);
- mateconf_client_set_string (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, str, NULL);
+ g_settings_set_enum (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY, policy);
}
/**
@@ -198,58 +153,6 @@ gpm_prefs_format_percentage_cb (GtkScale *scale, gdouble value)
}
/**
- * gpm_prefs_brightness_slider_changed_cb:
- * @range: The GtkRange object
- * @gpm_pref_key: The MateConf key for this preference setting.
- **/
-static void
-gpm_prefs_brightness_slider_changed_cb (GtkRange *range, GpmPrefs *prefs)
-{
- gdouble value;
- gchar *gpm_pref_key;
-
- value = gtk_range_get_value (range);
- gpm_pref_key = (char *) g_object_get_data (G_OBJECT (range), "conf_key");
-
- g_object_set_data (G_OBJECT (range), "conf_key", (gpointer) gpm_pref_key);
- egg_debug ("Changing %s to %i", gpm_pref_key, (int) value);
- mateconf_client_set_int (prefs->priv->conf, gpm_pref_key, (gint) value, NULL);
-}
-
-/**
- * gpm_prefs_setup_brightness_slider:
- * @prefs: This prefs class instance
- * @widget_name: The GtkWidget name
- * @gpm_pref_key: The MateConf key for this preference setting.
- **/
-static GtkWidget *
-gpm_prefs_setup_brightness_slider (GpmPrefs *prefs, const gchar *widget_name, const gchar *gpm_pref_key)
-{
- GtkWidget *widget;
- int value;
- gboolean is_writable;
-
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
-
- g_signal_connect (G_OBJECT (widget), "format-value",
- G_CALLBACK (gpm_prefs_format_percentage_cb), NULL);
-
- value = mateconf_client_get_int (prefs->priv->conf, gpm_pref_key, NULL);
- is_writable = mateconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
-
- gtk_widget_set_sensitive (widget, is_writable);
-
- gtk_range_set_value (GTK_RANGE (widget), value);
-
- g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
-
- g_signal_connect (G_OBJECT (widget), "value-changed",
- G_CALLBACK (gpm_prefs_brightness_slider_changed_cb),
- prefs);
- return widget;
-}
-
-/**
* gpm_prefs_action_combo_changed_cb:
**/
static void
@@ -258,17 +161,14 @@ gpm_prefs_action_combo_changed_cb (GtkWidget *widget, GpmPrefs *prefs)
GpmActionPolicy policy;
const GpmActionPolicy *actions;
const gchar *gpm_pref_key;
- const gchar *action;
guint active;
actions = (const GpmActionPolicy *) g_object_get_data (G_OBJECT (widget), "actions");
- gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "conf_key");
+ gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "settings_key");
active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
policy = actions[active];
- action = gpm_action_policy_to_string (policy);
- egg_debug ("Changing %s to %s", gpm_pref_key, action);
- mateconf_client_set_string (prefs->priv->conf, gpm_pref_key, action, NULL);
+ g_settings_set_enum (prefs->priv->settings, gpm_pref_key, policy);
}
/**
@@ -283,13 +183,13 @@ gpm_prefs_action_time_changed_cb (GtkWidget *widget, GpmPrefs *prefs)
guint active;
values = (const gint *) g_object_get_data (G_OBJECT (widget), "values");
- gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "conf_key");
+ gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "settings_key");
active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
value = values[active];
egg_debug ("Changing %s to %i", gpm_pref_key, value);
- mateconf_client_set_int (prefs->priv->conf, gpm_pref_key, value, NULL);
+ g_settings_set_int (prefs->priv->settings, gpm_pref_key, value);
}
/**
@@ -329,14 +229,13 @@ gpm_prefs_actions_destroy_cb (GpmActionPolicy *array)
* gpm_prefs_setup_action_combo:
* @prefs: This prefs class instance
* @widget_name: The GtkWidget name
- * @gpm_pref_key: The MateConf key for this preference setting.
+ * @gpm_pref_key: The settings key for this preference setting.
* @actions: The actions to associate in an array.
**/
static void
gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
const gchar *gpm_pref_key, const GpmActionPolicy *actions)
{
- gchar *value_txt;
gint i;
gboolean is_writable;
GtkWidget *widget;
@@ -348,14 +247,13 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
gpm_prefs_set_combo_simple_text (widget);
- value_txt = mateconf_client_get_string (prefs->priv->conf, gpm_pref_key, NULL);
- is_writable = mateconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
- value = gpm_action_policy_from_string (value_txt);
+ value = g_settings_get_enum (prefs->priv->settings, gpm_pref_key);
+ is_writable = g_settings_is_writable (prefs->priv->settings, gpm_pref_key);
gtk_widget_set_sensitive (widget, is_writable);
array = g_ptr_array_new ();
- g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
+ g_object_set_data (G_OBJECT (widget), "settings_key", (gpointer) gpm_pref_key);
g_signal_connect (G_OBJECT (widget), "changed",
G_CALLBACK (gpm_prefs_action_combo_changed_cb), prefs);
@@ -408,18 +306,15 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
g_ptr_array_add (array, GINT_TO_POINTER (policy));
#endif
} else if (policy == GPM_ACTION_POLICY_NOTHING) {
- /* we only add do nothing in the GUI if the user has explicitly specified this in MateConf */
- if (value == GPM_ACTION_POLICY_NOTHING) {
- #if GTK_CHECK_VERSION (2, 24, 0)
- gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT (widget), _("Do nothing"));
- g_ptr_array_add(array, GINT_TO_POINTER (policy));
- #else
- gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Do nothing"));
- g_ptr_array_add (array, GINT_TO_POINTER (policy));
- #endif
- }
+ #if GTK_CHECK_VERSION (2, 24, 0)
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT (widget), _("Do nothing"));
+ g_ptr_array_add(array, GINT_TO_POINTER (policy));
+ #else
+ gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Do nothing"));
+ g_ptr_array_add (array, GINT_TO_POINTER (policy));
+ #endif
} else {
- egg_warning ("Unknown action read from conf: %i", policy);
+ egg_warning ("Unknown action read from settings: %i", policy);
}
}
@@ -431,23 +326,21 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
g_object_set_data_full (G_OBJECT (widget), "actions", (gpointer) actions_added, (GDestroyNotify) gpm_prefs_actions_destroy_cb);
- /* set what we have in MateConf */
+ /* set what we have in the settings */
for (i=0; actions_added[i] != -1; i++) {
policy = actions_added[i];
- egg_debug ("added: %s", gpm_action_policy_to_string (policy));
if (value == policy)
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
}
g_ptr_array_unref (array);
- g_free (value_txt);
}
/**
* gpm_prefs_setup_time_combo:
* @prefs: This prefs class instance
* @widget_name: The GtkWidget name
- * @gpm_pref_key: The MateConf key for this preference setting.
+ * @gpm_pref_key: The settings key for this preference setting.
* @actions: The actions to associate in an array.
**/
static void
@@ -463,11 +356,11 @@ gpm_prefs_setup_time_combo (GpmPrefs *prefs, const gchar *widget_name,
widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
gpm_prefs_set_combo_simple_text (widget);
- value = mateconf_client_get_int (prefs->priv->conf, gpm_pref_key, NULL);
- is_writable = mateconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
+ value = g_settings_get_int (prefs->priv->settings, gpm_pref_key);
+ is_writable = g_settings_is_writable (prefs->priv->settings, gpm_pref_key);
gtk_widget_set_sensitive (widget, is_writable);
- g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
+ g_object_set_data (G_OBJECT (widget), "settings_key", (gpointer) gpm_pref_key);
g_object_set_data (G_OBJECT (widget), "values", (gpointer) values);
/* add each time */
@@ -501,55 +394,6 @@ gpm_prefs_setup_time_combo (GpmPrefs *prefs, const gchar *widget_name,
}
/**
- * gpm_prefs_checkbox_lock_cb:
- * @widget: The GtkWidget object
- * @gpm_pref_key: The MateConf key for this preference setting.
- **/
-static void
-gpm_prefs_checkbox_lock_cb (GtkWidget *widget, GpmPrefs *prefs)
-{
- gboolean checked;
- gchar *gpm_pref_key;
-
- checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
- gpm_pref_key = (char *) g_object_get_data (G_OBJECT (widget), "conf_key");
- egg_debug ("Changing %s to %i", gpm_pref_key, checked);
- mateconf_client_set_bool (prefs->priv->conf, gpm_pref_key, checked, NULL);
-}
-
-/**
- * gpm_prefs_setup_checkbox:
- * @prefs: This prefs class instance
- * @widget_name: The GtkWidget name
- * @gpm_pref_key: The MateConf key for this preference setting.
- **/
-static GtkWidget *
-gpm_prefs_setup_checkbox (GpmPrefs *prefs, const gchar *widget_name, const gchar *gpm_pref_key)
-{
- gboolean checked;
- GtkWidget *widget;
-
- egg_debug ("Setting up %s", gpm_pref_key);
-
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
-
- checked = mateconf_client_get_bool (prefs->priv->conf, gpm_pref_key, NULL);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
-
- g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
-
- /* manually do the callback in case we hide elements in the cb */
- gpm_prefs_checkbox_lock_cb (widget, prefs);
-
- /* setup after set */
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpm_prefs_checkbox_lock_cb), prefs);
-
- return widget;
-}
-
-/**
* gpm_prefs_close_cb:
* @widget: The GtkWidget object
* @prefs: This prefs class instance
@@ -574,46 +418,10 @@ gpm_prefs_delete_event_cb (GtkWidget *widget, GdkEvent *event, GpmPrefs *prefs)
return FALSE;
}
-/**
- * gpm_conf_mateconf_key_changed_cb:
- *
- * We might have to do things when the mateconf keys change; do them here.
- **/
-static void
-gpm_conf_mateconf_key_changed_cb (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GpmPrefs *prefs)
-{
- MateConfValue *value;
- gint brightness;
- GtkWidget *widget;
- gboolean enabled;
-
- value = mateconf_entry_get_value (entry);
- if (value == NULL)
- return;
-
- if (g_strcmp0 (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hscale_ac_brightness"));
- brightness = mateconf_value_get_int (value);
- gtk_range_set_value (GTK_RANGE (widget), brightness);
- }
-
- if (g_strcmp0 (entry->key, GPM_CONF_DISKS_SPINDOWN_ENABLE_AC) == 0) {
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_spindown"));
- enabled = mateconf_value_get_bool (value);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), enabled);
-
- } else if (g_strcmp0 (entry->key, GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT) == 0) {
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_spindown"));
- enabled = mateconf_value_get_bool (value);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), enabled);
- }
-}
-
/** setup the notification page */
static void
prefs_setup_notification (GpmPrefs *prefs)
{
- gchar *icon_policy_str;
gint icon_policy;
GtkWidget *radiobutton_icon_always;
GtkWidget *radiobutton_icon_present;
@@ -622,9 +430,7 @@ prefs_setup_notification (GpmPrefs *prefs)
GtkWidget *radiobutton_icon_never;
gboolean is_writable;
- icon_policy_str = mateconf_client_get_string (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
- icon_policy = gpm_icon_policy_from_string (icon_policy_str);
- g_free (icon_policy_str);
+ icon_policy = g_settings_get_enum (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY);
radiobutton_icon_always = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
"radiobutton_notification_always"));
@@ -637,7 +443,7 @@ prefs_setup_notification (GpmPrefs *prefs)
radiobutton_icon_never = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
"radiobutton_notification_never"));
- is_writable = mateconf_client_key_is_writable (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
+ is_writable = g_settings_is_writable (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY);
gtk_widget_set_sensitive (radiobutton_icon_always, is_writable);
gtk_widget_set_sensitive (radiobutton_icon_present, is_writable);
gtk_widget_set_sensitive (radiobutton_icon_charge, is_writable);
@@ -666,7 +472,7 @@ prefs_setup_notification (GpmPrefs *prefs)
g_object_set_data (G_OBJECT (radiobutton_icon_never), "policy",
GINT_TO_POINTER (GPM_ICON_POLICY_NEVER));
- /* only connect the callbacks after we set the value, else the conf
+ /* only connect the callbacks after we set the value, else the settings
* keys gets written to (for a split second), and the icon flickers. */
g_signal_connect (radiobutton_icon_always, "clicked",
G_CALLBACK (gpm_prefs_icon_radio_cb), prefs);
@@ -709,23 +515,33 @@ prefs_setup_ac (GpmPrefs *prefs)
-1};
gpm_prefs_setup_time_combo (prefs, "combobox_ac_computer",
- GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC,
+ GPM_SETTINGS_SLEEP_COMPUTER_AC,
computer_times);
gpm_prefs_setup_time_combo (prefs, "combobox_ac_display",
- GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC,
+ GPM_SETTINGS_SLEEP_DISPLAY_AC,
display_times);
gpm_prefs_setup_action_combo (prefs, "combobox_ac_lid",
- GPM_CONF_BUTTON_LID_AC,
+ GPM_SETTINGS_BUTTON_LID_AC,
button_lid_actions);
- gpm_prefs_setup_brightness_slider (prefs, "hscale_ac_brightness",
- GPM_CONF_BACKLIGHT_BRIGHTNESS_AC);
+ /* setup brightness slider */
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hscale_ac_brightness"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_BRIGHTNESS_AC,
+ gtk_range_get_adjustment (GTK_RANGE (widget)), "value",
+ G_SETTINGS_BIND_DEFAULT);
+ g_signal_connect (G_OBJECT (widget), "format-value",
+ G_CALLBACK (gpm_prefs_format_percentage_cb), NULL);
- gpm_prefs_setup_checkbox (prefs, "checkbutton_ac_display_dim",
- GPM_CONF_BACKLIGHT_IDLE_DIM_AC);
- gpm_prefs_setup_checkbox (prefs, "checkbutton_ac_spindown",
- GPM_CONF_DISKS_SPINDOWN_ENABLE_AC);
+ /* set up the checkboxes */
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_display_dim"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_IDLE_DIM_AC,
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_spindown"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_AC,
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
if (prefs->priv->has_button_lid == FALSE) {
widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_ac_lid"));
@@ -792,10 +608,10 @@ prefs_setup_battery (GpmPrefs *prefs)
-1};
gpm_prefs_setup_time_combo (prefs, "combobox_battery_computer",
- GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT,
+ GPM_SETTINGS_SLEEP_COMPUTER_BATT,
computer_times);
gpm_prefs_setup_time_combo (prefs, "combobox_battery_display",
- GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT,
+ GPM_SETTINGS_SLEEP_DISPLAY_BATT,
display_times);
if (prefs->priv->has_batteries == FALSE) {
@@ -807,19 +623,25 @@ prefs_setup_battery (GpmPrefs *prefs)
}
gpm_prefs_setup_action_combo (prefs, "combobox_battery_lid",
- GPM_CONF_BUTTON_LID_BATT,
+ GPM_SETTINGS_BUTTON_LID_BATT,
button_lid_actions);
gpm_prefs_setup_action_combo (prefs, "combobox_battery_critical",
- GPM_CONF_ACTIONS_CRITICAL_BATT,
+ GPM_SETTINGS_ACTION_CRITICAL_BATT,
battery_critical_actions);
- /* set up the battery reduce checkbox */
- gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_display_reduce",
- GPM_CONF_BACKLIGHT_BATTERY_REDUCE);
- gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_display_dim",
- GPM_CONF_BACKLIGHT_IDLE_DIM_BATT);
- gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_spindown",
- GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT);
+ /* set up the checkboxes */
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_display_reduce"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE,
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_display_dim"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_IDLE_DIM_BATT,
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
+ widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_spindown"));
+ g_settings_bind (prefs->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_BATT,
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
if (prefs->priv->has_button_lid == FALSE) {
widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_battery_lid"));
@@ -870,10 +692,10 @@ prefs_setup_ups (GpmPrefs *prefs)
-1};
gpm_prefs_setup_time_combo (prefs, "combobox_ups_computer",
- GPM_CONF_TIMEOUT_SLEEP_COMPUTER_UPS,
+ GPM_SETTINGS_SLEEP_COMPUTER_UPS,
computer_times);
gpm_prefs_setup_time_combo (prefs, "combobox_ups_display",
- GPM_CONF_TIMEOUT_SLEEP_DISPLAY_UPS,
+ GPM_SETTINGS_SLEEP_DISPLAY_UPS,
display_times);
if (prefs->priv->has_ups == FALSE) {
@@ -885,10 +707,10 @@ prefs_setup_ups (GpmPrefs *prefs)
}
gpm_prefs_setup_action_combo (prefs, "combobox_ups_low",
- GPM_CONF_ACTIONS_LOW_UPS,
+ GPM_SETTINGS_ACTION_LOW_UPS,
ups_low_actions);
gpm_prefs_setup_action_combo (prefs, "combobox_ups_critical",
- GPM_CONF_ACTIONS_CRITICAL_UPS,
+ GPM_SETTINGS_ACTION_CRITICAL_UPS,
ups_low_actions);
}
@@ -909,10 +731,10 @@ prefs_setup_general (GpmPrefs *prefs)
-1};
gpm_prefs_setup_action_combo (prefs, "combobox_general_power",
- GPM_CONF_BUTTON_POWER,
+ GPM_SETTINGS_BUTTON_POWER,
power_button_actions);
gpm_prefs_setup_action_combo (prefs, "combobox_general_suspend",
- GPM_CONF_BUTTON_SUSPEND,
+ GPM_SETTINGS_BUTTON_SUSPEND,
suspend_button_actions);
if (prefs->priv->has_button_suspend == FALSE) {
@@ -926,6 +748,7 @@ prefs_setup_general (GpmPrefs *prefs)
}
}
+#ifdef HAVE_MATECONF_DEFAULTS
/**
* gpm_prefs_set_defaults_cb:
**/
@@ -970,6 +793,7 @@ gpm_prefs_set_defaults_cb (GtkWidget *widget, GpmPrefs *prefs)
g_object_unref (proxy);
}
+#endif
/**
* gpm_prefs_init:
@@ -980,44 +804,62 @@ gpm_prefs_init (GpmPrefs *prefs)
{
GtkWidget *main_window;
GtkWidget *widget;
- gint caps;
guint retval;
GError *error = NULL;
+ GPtrArray *devices = NULL;
+ UpDevice *device;
+ UpDeviceKind kind;
+ GpmBrightness *brightness;
+ gboolean ret;
+ guint i;
prefs->priv = GPM_PREFS_GET_PRIVATE (prefs);
prefs->priv->client = up_client_new ();
prefs->priv->console = egg_console_kit_new ();
- prefs->priv->conf = mateconf_client_get_default ();
- /* watch mate-power-manager keys */
- mateconf_client_add_dir (prefs->priv->conf, GPM_CONF_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
- mateconf_client_notify_add (prefs->priv->conf, GPM_CONF_DIR,
- (MateConfClientNotifyFunc) gpm_conf_mateconf_key_changed_cb,
- prefs, NULL, NULL);
-
- /* get value of delay in mate-session */
- prefs->priv->idle_delay = mateconf_client_get_int (prefs->priv->conf, GPM_CONF_IDLE_DELAY, NULL);
-
- caps = gpm_dbus_get_caps (prefs);
- egg_debug ("caps=%i", caps);
-
- /* get properties from mate-power-manager */
- prefs->priv->has_batteries = ((caps & GPM_PREFS_SERVER_BATTERY) > 0);
- prefs->priv->has_ups = ((caps & GPM_PREFS_SERVER_UPS) > 0);
- prefs->priv->has_lcd = ((caps & GPM_PREFS_SERVER_BACKLIGHT) > 0);
- prefs->priv->has_button_lid = ((caps & GPM_PREFS_SERVER_LID) > 0);
- prefs->priv->has_button_suspend = TRUE;
+ prefs->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
/* are we allowed to shutdown? */
prefs->priv->can_shutdown = TRUE;
egg_console_kit_can_stop (prefs->priv->console, &prefs->priv->can_shutdown, NULL);
/* get values from UpClient */
+ prefs->priv->can_suspend = up_client_get_can_suspend (prefs->priv->client);
+ prefs->priv->can_hibernate = up_client_get_can_hibernate (prefs->priv->client);
+
+#if UP_CHECK_VERSION(0,9,2)
+ prefs->priv->has_button_lid = up_client_get_lid_is_present (prefs->priv->client);
+#else
g_object_get (prefs->priv->client,
- "can-suspend", &prefs->priv->can_suspend,
- "can-hibernate", &prefs->priv->can_hibernate,
- NULL);
+ "lid-is-present", &prefs->priv->has_button_lid,
+ NULL);
+#endif
+ prefs->priv->has_button_suspend = TRUE;
+
+ /* find if we have brightness hardware */
+ brightness = gpm_brightness_new ();
+ prefs->priv->has_lcd = gpm_brightness_has_hw (brightness);
+ g_object_unref (brightness);
+
+ /* get device list */
+ ret = up_client_enumerate_devices_sync (prefs->priv->client, NULL, &error);
+ if (!ret) {
+ egg_warning ("failed to get device list: %s", error->message);
+ g_error_free (error);
+ }
+
+ devices = up_client_get_devices (prefs->priv->client);
+ for (i=0; i<devices->len; i++) {
+ device = g_ptr_array_index (devices, i);
+ g_object_get (device,
+ "kind", &kind,
+ NULL);
+ if (kind == UP_DEVICE_KIND_BATTERY)
+ prefs->priv->has_batteries = TRUE;
+ if (kind == UP_DEVICE_KIND_UPS)
+ prefs->priv->has_ups = TRUE;
+ }
+ g_ptr_array_unref (devices);
prefs->priv->builder = gtk_builder_new ();
@@ -1083,7 +925,7 @@ gpm_prefs_finalize (GObject *object)
prefs = GPM_PREFS (object);
prefs->priv = GPM_PREFS_GET_PRIVATE (prefs);
- g_object_unref (prefs->priv->conf);
+ g_object_unref (prefs->priv->settings);
g_object_unref (prefs->priv->client);
g_object_unref (prefs->priv->console);
diff --git a/src/gpm-prefs-server.c b/src/gpm-prefs-server.c
deleted file mode 100644
index 2ced9ff..0000000
--- a/src/gpm-prefs-server.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2007 Richard Hughes <[email protected]>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
-
-#include "gpm-prefs-server.h"
-#include "egg-debug.h"
-
-#define GPM_PREFS_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GPM_TYPE_PREFS_SERVER, GpmPrefsServerPrivate))
-
-struct GpmPrefsServerPrivate
-{
- guint capability;
-};
-
-enum {
- CAPABILITY_CHANGED,
- LAST_SIGNAL
-};
-
-static guint signals [LAST_SIGNAL] = { 0 };
-static gpointer gpm_prefs_server_object = NULL;
-
-G_DEFINE_TYPE (GpmPrefsServer, gpm_prefs_server, G_TYPE_OBJECT)
-
-/**
- * gpm_prefs_server_get_capability:
- **/
-gboolean
-gpm_prefs_server_get_capability (GpmPrefsServer *server,
- gint *capability)
-{
- g_return_val_if_fail (server != NULL, FALSE);
- g_return_val_if_fail (GPM_IS_PREFS_SERVER (server), FALSE);
- *capability = server->priv->capability;
- return TRUE;
-}
-
-/**
- * gpm_prefs_server_set_capability:
- **/
-gboolean
-gpm_prefs_server_set_capability (GpmPrefsServer *server,
- gint capability)
-{
- g_return_val_if_fail (server != NULL, FALSE);
- g_return_val_if_fail (GPM_IS_PREFS_SERVER (server), FALSE);
- server->priv->capability = server->priv->capability + capability;
- egg_debug ("capability now %i", server->priv->capability);
- return TRUE;
-}
-
-/**
- * gpm_prefs_server_class_init:
- * @klass: This prefs class instance
- **/
-static void
-gpm_prefs_server_class_init (GpmPrefsServerClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (GpmPrefsServerPrivate));
- signals [CAPABILITY_CHANGED] =
- g_signal_new ("capability-changed",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GpmPrefsServerClass, capability_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-}
-
-/**
- * gpm_prefs_server_init:
- * @server: This server class instance
- *
- * initialises the server class. NOTE: We expect prefs_server objects
- * to *NOT* be removed or added during the session.
- * We only control the first prefs_server object if there are more than one.
- **/
-static void
-gpm_prefs_server_init (GpmPrefsServer *server)
-{
- server->priv = GPM_PREFS_SERVER_GET_PRIVATE (server);
- server->priv->capability = 0;
-}
-
-/**
- * gpm_prefs_server_new:
- * Return value: A new server class instance.
- * Can return NULL if no suitable hardware is found.
- **/
-GpmPrefsServer *
-gpm_prefs_server_new (void)
-{
- if (gpm_prefs_server_object != NULL) {
- g_object_ref (gpm_prefs_server_object);
- } else {
- gpm_prefs_server_object = g_object_new (GPM_TYPE_PREFS_SERVER, NULL);
- g_object_add_weak_pointer (gpm_prefs_server_object, &gpm_prefs_server_object);
- }
- return GPM_PREFS_SERVER (gpm_prefs_server_object);
-}
diff --git a/src/gpm-prefs-server.h b/src/gpm-prefs-server.h
deleted file mode 100644
index 62cadb6..0000000
--- a/src/gpm-prefs-server.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2007 Richard Hughes <[email protected]>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __GPM_PREFS_SERVER_H
-#define __GPM_PREFS_SERVER_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GPM_TYPE_PREFS_SERVER (gpm_prefs_server_get_type ())
-#define GPM_PREFS_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GPM_TYPE_PREFS_SERVER, GpmPrefsServer))
-#define GPM_PREFS_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GPM_TYPE_PREFS_SERVER, GpmPrefsServerClass))
-#define GPM_IS_PREFS_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPM_TYPE_PREFS_SERVER))
-#define GPM_IS_PREFS_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GPM_TYPE_PREFS_SERVER))
-#define GPM_PREFS_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GPM_TYPE_PREFS_SERVER, GpmPrefsServerClass))
-
-#define GPM_PREFS_SERVER_BACKLIGHT 1
-#define GPM_PREFS_SERVER_LID 4
-#define GPM_PREFS_SERVER_BATTERY 8
-#define GPM_PREFS_SERVER_UPS 16
-#define GPM_PREFS_SERVER_KEYLIGHT 32
-
-typedef struct GpmPrefsServerPrivate GpmPrefsServerPrivate;
-
-typedef struct
-{
- GObject parent;
- GpmPrefsServerPrivate *priv;
-} GpmPrefsServer;
-
-typedef struct
-{
- GObjectClass parent_class;
- void (* capability_changed) (GpmPrefsServer *server,
- gint capability);
-} GpmPrefsServerClass;
-
-GType gpm_prefs_server_get_type (void);
-GpmPrefsServer *gpm_prefs_server_new (void);
-
-gboolean gpm_prefs_server_get_capability (GpmPrefsServer *server,
- gint *capability);
-gboolean gpm_prefs_server_set_capability (GpmPrefsServer *server,
- gint capability);
-
-G_END_DECLS
-
-#endif /* __GPM_PREFS_SERVER_H */
diff --git a/src/gpm-screensaver.c b/src/gpm-screensaver.c
index b4f9ad7..26e72e7 100644
--- a/src/gpm-screensaver.c
+++ b/src/gpm-screensaver.c
@@ -25,7 +25,6 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
-#include <mateconf/mateconf-client.h>
#include "gpm-screensaver.h"
#include "gpm-common.h"
@@ -42,105 +41,13 @@ static void gpm_screensaver_finalize (GObject *object);
struct GpmScreensaverPrivate
{
DBusGProxy *proxy;
- MateConfClient *conf;
};
-enum {
- AUTH_REQUEST,
- LAST_SIGNAL
-};
-#if 0
-static guint signals [LAST_SIGNAL] = { 0 };
-#endif
static gpointer gpm_screensaver_object = NULL;
G_DEFINE_TYPE (GpmScreensaver, gpm_screensaver, G_TYPE_OBJECT)
-#if 0
-
-/** Invoked when we get the AuthenticationRequestBegin from g-s when the user
- * has moved their mouse and we are showing the authentication box.
- */
-static void
-gpm_screensaver_auth_begin (DBusGProxy *proxy,
- GpmScreensaver *screensaver)
-{
- egg_debug ("emitting auth-request : (%i)", TRUE);
- g_signal_emit (screensaver, signals [AUTH_REQUEST], 0, TRUE);
-}
-
-/** Invoked when we get the AuthenticationRequestEnd from g-s when the user
- * has entered a valid password or re-authenticated.
- */
-static void
-gpm_screensaver_auth_end (DBusGProxy *proxy,
- GpmScreensaver *screensaver)
-{
- egg_debug ("emitting auth-request : (%i)", FALSE);
- g_signal_emit (screensaver, signals [AUTH_REQUEST], 0, FALSE);
-}
-
-/**
- * gpm_screensaver_proxy_connect_more:
- * @screensaver: This class instance
- **/
-static gboolean
-gpm_screensaver_proxy_connect_more (GpmScreensaver *screensaver)
-{
- g_return_val_if_fail (GPM_IS_SCREENSAVER (screensaver), FALSE);
-
- if (screensaver->priv->proxy == NULL) {
- egg_warning ("not connected");
- return FALSE;
- }
-
- /* get AuthenticationRequestBegin */
- dbus_g_proxy_add_signal (screensaver->priv->proxy,
- "AuthenticationRequestBegin", G_TYPE_INVALID);
- dbus_g_proxy_connect_signal (screensaver->priv->proxy,
- "AuthenticationRequestBegin",
- G_CALLBACK (gpm_screensaver_auth_begin),
- screensaver, NULL);
-
- /* get AuthenticationRequestEnd */
- dbus_g_proxy_add_signal (screensaver->priv->proxy,
- "AuthenticationRequestEnd", G_TYPE_INVALID);
- dbus_g_proxy_connect_signal (screensaver->priv->proxy,
- "AuthenticationRequestEnd",
- G_CALLBACK (gpm_screensaver_auth_end),
- screensaver, NULL);
-
- return TRUE;
-}
-
-/**
- * gpm_screensaver_proxy_disconnect_more:
- * @screensaver: This class instance
- **/
-static gboolean
-gpm_screensaver_proxy_disconnect_more (GpmScreensaver *screensaver)
-{
- g_return_val_if_fail (GPM_IS_SCREENSAVER (screensaver), FALSE);
- egg_debug ("mate-screensaver disconnected from the session DBUS");
- return TRUE;
-}
-#endif
-
-/**
- * gpm_screensaver_lock_enabled:
- * @screensaver: This class instance
- * Return value: If mate-screensaver is set to lock the screen on screensave
- **/
-gboolean
-gpm_screensaver_lock_enabled (GpmScreensaver *screensaver)
-{
- gboolean enabled;
- g_return_val_if_fail (GPM_IS_SCREENSAVER (screensaver), FALSE);
- enabled = mateconf_client_get_bool (screensaver->priv->conf, GS_PREF_LOCK_ENABLED, NULL);
- return enabled;
-}
-
/**
* gpm_screensaver_lock
* @screensaver: This class instance
@@ -328,17 +235,6 @@ gpm_screensaver_class_init (GpmScreensaverClass *klass)
object_class->finalize = gpm_screensaver_finalize;
g_type_class_add_private (klass, sizeof (GpmScreensaverPrivate));
-#if 0
- signals [AUTH_REQUEST] =
- g_signal_new ("auth-request",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GpmScreensaverClass, auth_request),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-#endif
}
/**
@@ -357,7 +253,6 @@ gpm_screensaver_init (GpmScreensaver *screensaver)
GS_LISTENER_SERVICE,
GS_LISTENER_PATH,
GS_LISTENER_INTERFACE);
- screensaver->priv->conf = mateconf_client_get_default ();
}
/**
@@ -374,7 +269,6 @@ gpm_screensaver_finalize (GObject *object)
screensaver = GPM_SCREENSAVER (object);
screensaver->priv = GPM_SCREENSAVER_GET_PRIVATE (screensaver);
- g_object_unref (screensaver->priv->conf);
g_object_unref (screensaver->priv->proxy);
G_OBJECT_CLASS (gpm_screensaver_parent_class)->finalize (object);
@@ -401,18 +295,6 @@ gpm_screensaver_new (void)
#ifdef EGG_TEST
#include "egg-test.h"
-#if 0
-static gboolean test_got_request = FALSE;
-static void
-gpm_screensaver_test_auth_request_cb (GpmScreensaver *screensaver, gboolean auth, EggTest *test)
-{
- egg_debug ("auth request = %i", auth);
- test_got_request = auth;
-
- egg_test_loop_quit (test);
-}
-#endif
-
void
gpm_screensaver_test (gpointer data)
{
@@ -429,11 +311,6 @@ gpm_screensaver_test (gpointer data)
screensaver = gpm_screensaver_new ();
egg_test_assert (test, (screensaver != NULL));
-#if 0
- /* connect signals */
- g_signal_connect (screensaver, "auth-request",
- G_CALLBACK (gpm_screensaver_test_auth_request_cb), test);
-#endif
/************************************************************/
egg_test_title (test, "lock screensaver");
ret = gpm_screensaver_lock (screensaver);
diff --git a/src/gpm-screensaver.h b/src/gpm-screensaver.h
index b4c5733..9f81aec 100644
--- a/src/gpm-screensaver.h
+++ b/src/gpm-screensaver.h
@@ -44,10 +44,6 @@ typedef struct
typedef struct
{
GObjectClass parent_class;
-#if 0
- void (* auth_request) (GpmScreensaver *screensaver,
- gboolean auth);
-#endif
} GpmScreensaverClass;
GType gpm_screensaver_get_type (void);
@@ -55,7 +51,6 @@ GpmScreensaver *gpm_screensaver_new (void);
void gpm_screensaver_test (gpointer data);
gboolean gpm_screensaver_lock (GpmScreensaver *screensaver);
-gboolean gpm_screensaver_lock_enabled (GpmScreensaver *screensaver);
guint32 gpm_screensaver_add_throttle (GpmScreensaver *screensaver,
const gchar *reason);
gboolean gpm_screensaver_remove_throttle (GpmScreensaver *screensaver,
diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
index 48ce69b..3284067 100644
--- a/src/gpm-statistics.c
+++ b/src/gpm-statistics.c
@@ -28,7 +28,6 @@
#include <gtk/gtk.h>
#include <dbus/dbus-glib.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "egg-debug.h"
@@ -49,7 +48,7 @@ gchar *current_device = NULL;
static const gchar *history_type;
static const gchar *stats_type;
static guint history_time;
-static MateConfClient *mateconf_client;
+static GSettings *settings;
static gfloat sigma_smoothing = 0.0f;
static UpWakeups *wakeups = NULL;
static GtkWidget *graph_history = NULL;
@@ -1107,8 +1106,8 @@ gpm_stats_notebook_changed_cb (GtkNotebook *notebook, gpointer page, gint page_n
widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_stats"));
gpm_stats_set_title (GTK_WINDOW (widget), page_num);
- /* save page in mateconf */
- mateconf_client_set_int (mateconf_client, GPM_CONF_INFO_PAGE_NUMBER, page_num, NULL);
+ /* save page in gsettings */
+ g_settings_set_int (settings, GPM_SETTINGS_INFO_PAGE_NUMBER, page_num);
if (current_device == NULL)
return;
@@ -1151,8 +1150,8 @@ gpm_stats_devices_treeview_clicked_cb (GtkTreeSelection *selection, gboolean dat
g_free (current_device);
gtk_tree_model_get (model, &iter, GPM_DEVICES_COLUMN_ID, &current_device, -1);
- /* save device in mateconf */
- mateconf_client_set_string (mateconf_client, GPM_CONF_INFO_LAST_DEVICE, current_device, NULL);
+ /* save device in gsettings */
+ g_settings_set_string (settings, GPM_SETTINGS_INFO_LAST_DEVICE, current_device);
/* show transaction_id */
egg_debug ("selected row is: %s", current_device);
@@ -1326,8 +1325,8 @@ gpm_stats_history_type_combo_changed_cb (GtkWidget *widget, gpointer data)
gpm_stats_button_update_ui ();
- /* save to mateconf */
- mateconf_client_set_string (mateconf_client, GPM_CONF_INFO_HISTORY_TYPE, history_type, NULL);
+ /* save to gsettings */
+ g_settings_set_string (settings, GPM_SETTINGS_INFO_HISTORY_TYPE, history_type);
}
/**
@@ -1378,8 +1377,8 @@ gpm_stats_type_combo_changed_cb (GtkWidget *widget, gpointer data)
gpm_stats_button_update_ui ();
- /* save to mateconf */
- mateconf_client_set_string (mateconf_client, GPM_CONF_INFO_STATS_TYPE, stats_type, NULL);
+ /* save to gsettings */
+ g_settings_set_string (settings, GPM_SETTINGS_INFO_STATS_TYPE, stats_type);
}
/**
@@ -1405,8 +1404,8 @@ gpm_stats_range_combo_changed (GtkWidget *widget, gpointer data)
else
g_assert (FALSE);
- /* save to mateconf */
- mateconf_client_set_int (mateconf_client, GPM_CONF_INFO_HISTORY_TIME, history_time, NULL);
+ /* save to gsettings */
+ g_settings_set_int (settings, GPM_SETTINGS_INFO_HISTORY_TIME, history_time);
gpm_stats_button_update_ui ();
}
@@ -1420,7 +1419,7 @@ gpm_stats_smooth_checkbox_history_cb (GtkWidget *widget, gpointer data)
{
gboolean checked;
checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- mateconf_client_set_bool (mateconf_client, GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH, checked, NULL);
+ g_settings_set_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH, checked);
gpm_stats_button_update_ui ();
}
@@ -1433,7 +1432,7 @@ gpm_stats_smooth_checkbox_stats_cb (GtkWidget *widget, gpointer data)
{
gboolean checked;
checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- mateconf_client_set_bool (mateconf_client, GPM_CONF_INFO_STATS_GRAPH_SMOOTH, checked, NULL);
+ g_settings_set_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH, checked);
gpm_stats_button_update_ui ();
}
@@ -1446,7 +1445,7 @@ gpm_stats_points_checkbox_history_cb (GtkWidget *widget, gpointer data)
{
gboolean checked;
checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- mateconf_client_set_bool (mateconf_client, GPM_CONF_INFO_HISTORY_GRAPH_POINTS, checked, NULL);
+ g_settings_set_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS, checked);
gpm_stats_button_update_ui ();
}
@@ -1459,7 +1458,7 @@ gpm_stats_points_checkbox_stats_cb (GtkWidget *widget, gpointer data)
{
gboolean checked;
checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- mateconf_client_set_bool (mateconf_client, GPM_CONF_INFO_STATS_GRAPH_POINTS, checked, NULL);
+ g_settings_set_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_POINTS, checked);
gpm_stats_button_update_ui ();
}
@@ -1592,8 +1591,8 @@ main (int argc, char *argv[])
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
GPM_DATA G_DIR_SEPARATOR_S "icons");
- /* get data from mateconf */
- mateconf_client = mateconf_client_get_default ();
+ /* get data from the settings */
+ settings = g_settings_new (GPM_SETTINGS_SCHEMA);
/* get UI */
builder = gtk_builder_new ();
@@ -1639,31 +1638,31 @@ main (int argc, char *argv[])
G_CALLBACK (gpm_stats_button_help_cb), NULL);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_history"));
- checked = mateconf_client_get_bool (mateconf_client, GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH, NULL);
+ checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
g_signal_connect (widget, "clicked",
G_CALLBACK (gpm_stats_smooth_checkbox_history_cb), NULL);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_stats"));
- checked = mateconf_client_get_bool (mateconf_client, GPM_CONF_INFO_STATS_GRAPH_SMOOTH, NULL);
+ checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
g_signal_connect (widget, "clicked",
G_CALLBACK (gpm_stats_smooth_checkbox_stats_cb), NULL);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_history"));
- checked = mateconf_client_get_bool (mateconf_client, GPM_CONF_INFO_HISTORY_GRAPH_POINTS, NULL);
+ checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
g_signal_connect (widget, "clicked",
G_CALLBACK (gpm_stats_points_checkbox_history_cb), NULL);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_stats"));
- checked = mateconf_client_get_bool (mateconf_client, GPM_CONF_INFO_STATS_GRAPH_POINTS, NULL);
+ checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_POINTS);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
g_signal_connect (widget, "clicked",
G_CALLBACK (gpm_stats_points_checkbox_stats_cb), NULL);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "notebook1"));
- page = mateconf_client_get_int (mateconf_client, GPM_CONF_INFO_PAGE_NUMBER, NULL);
+ page = g_settings_get_int (settings, GPM_SETTINGS_INFO_PAGE_NUMBER);
gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), page);
g_signal_connect (widget, "switch-page",
G_CALLBACK (gpm_stats_notebook_changed_cb), NULL);
@@ -1705,14 +1704,14 @@ main (int argc, char *argv[])
gpm_stats_add_wakeups_columns (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget)); /* show */
- history_type = mateconf_client_get_string (mateconf_client, GPM_CONF_INFO_HISTORY_TYPE, NULL);
- history_time = mateconf_client_get_int (mateconf_client, GPM_CONF_INFO_HISTORY_TIME, NULL);
+ history_type = g_settings_get_string (settings, GPM_SETTINGS_INFO_HISTORY_TYPE);
+ history_time = g_settings_get_int (settings, GPM_SETTINGS_INFO_HISTORY_TIME);
if (history_type == NULL)
history_type = GPM_HISTORY_CHARGE_VALUE;
if (history_time == 0)
history_time = GPM_HISTORY_HOUR_VALUE;
- stats_type = mateconf_client_get_string (mateconf_client, GPM_CONF_INFO_STATS_TYPE, NULL);
+ stats_type = g_settings_get_string (settings, GPM_SETTINGS_INFO_STATS_TYPE);
if (stats_type == NULL)
stats_type = GPM_STATS_CHARGE_DATA_VALUE;
@@ -1821,7 +1820,7 @@ main (int argc, char *argv[])
}
if (last_device == NULL)
- last_device = mateconf_client_get_string (mateconf_client, GPM_CONF_INFO_LAST_DEVICE, NULL);
+ last_device = g_settings_get_string (settings, GPM_SETTINGS_INFO_LAST_DEVICE);
/* has capability to measure wakeups */
ret = up_wakeups_get_has_capability (wakeups);
@@ -1853,7 +1852,7 @@ main (int argc, char *argv[])
gtk_main ();
out:
- g_object_unref (mateconf_client);
+ g_object_unref (settings);
g_object_unref (client);
g_object_unref (wakeups);
g_object_unref (builder);
diff --git a/src/gpm-tray-icon.c b/src/gpm-tray-icon.c
index 8edddce..f2c26f7 100644
--- a/src/gpm-tray-icon.c
+++ b/src/gpm-tray-icon.c
@@ -38,7 +38,6 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
-#include <mateconf/mateconf-client.h>
#include <libupower-glib/upower.h>
#include "egg-debug.h"
@@ -55,7 +54,7 @@ static void gpm_tray_icon_finalize (GObject *object);
struct GpmTrayIconPrivate
{
- MateConfClient *conf;
+ GSettings *settings;
GpmEngine *engine;
GtkStatusIcon *status_icon;
gboolean show_actions;
@@ -339,22 +338,17 @@ gpm_tray_icon_activate_cb (GtkStatusIcon *status_icon, GpmTrayIcon *icon)
}
/**
- * gpm_conf_mateconf_key_changed_cb:
+ * gpm_tray_icon_settings_changed_cb:
*
- * We might have to do things when the mateconf keys change; do them here.
+ * We might have to do things when the settings change; do them here.
**/
static void
-gpm_conf_mateconf_key_changed_cb (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GpmTrayIcon *icon)
+gpm_tray_icon_settings_changed_cb (GSettings *settings, const gchar *key, GpmTrayIcon *icon)
{
- MateConfValue *value;
gboolean allowed_in_menu;
- value = mateconf_entry_get_value (entry);
- if (value == NULL)
- return;
-
- if (strcmp (entry->key, GPM_CONF_UI_SHOW_ACTIONS) == 0) {
- allowed_in_menu = mateconf_value_get_bool (value);
+ if (g_strcmp0 (key, GPM_SETTINGS_SHOW_ACTIONS) == 0) {
+ allowed_in_menu = g_settings_get_boolean (settings, key);
gpm_tray_icon_enable_actions (icon, allowed_in_menu);
}
}
@@ -373,13 +367,9 @@ gpm_tray_icon_init (GpmTrayIcon *icon)
icon->priv->engine = gpm_engine_new ();
- icon->priv->conf = mateconf_client_get_default ();
- /* watch mate-power-manager keys */
- mateconf_client_add_dir (icon->priv->conf, GPM_CONF_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
- mateconf_client_notify_add (icon->priv->conf, GPM_CONF_DIR,
- (MateConfClientNotifyFunc) gpm_conf_mateconf_key_changed_cb,
- icon, NULL, NULL);
+ icon->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+ g_signal_connect (icon->priv->settings, "changed",
+ G_CALLBACK (gpm_tray_icon_settings_changed_cb), icon);
icon->priv->status_icon = gtk_status_icon_new ();
g_signal_connect_object (G_OBJECT (icon->priv->status_icon),
@@ -391,7 +381,7 @@ gpm_tray_icon_init (GpmTrayIcon *icon)
G_CALLBACK (gpm_tray_icon_activate_cb),
icon, 0);
- allowed_in_menu = mateconf_client_get_bool (icon->priv->conf, GPM_CONF_UI_SHOW_ACTIONS, NULL);
+ allowed_in_menu = g_settings_get_boolean (icon->priv->settings, GPM_SETTINGS_SHOW_ACTIONS);
gpm_tray_icon_enable_actions (icon, allowed_in_menu);
}
diff --git a/src/org.mate.PowerManager.xml b/src/org.mate.PowerManager.xml
index a5ca988..c4c73ff 100644
--- a/src/org.mate.PowerManager.xml
+++ b/src/org.mate.PowerManager.xml
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<node name="/">
<interface name="org.mate.PowerManager">
- <method name="GetPreferencesOptions">
- <arg type="i" name="capability" direction="out"/>
- </method>
</interface>
</node>