[Goodies-commits] r5608 - xfce4-power-manager/trunk/src
Ali Abdallah
aliov at xfce.org
Tue Oct 14 08:56:52 CEST 2008
Author: aliov
Date: 2008-10-14 06:56:52 +0000 (Tue, 14 Oct 2008)
New Revision: 5608
Modified:
xfce4-power-manager/trunk/src/xfpm-battery-icon.c
xfce4-power-manager/trunk/src/xfpm-battery.c
xfce4-power-manager/trunk/src/xfpm-battery.h
xfce4-power-manager/trunk/src/xfpm-common.h
xfce4-power-manager/trunk/src/xfpm-driver.c
xfce4-power-manager/trunk/src/xfpm-hal.c
xfce4-power-manager/trunk/src/xfpm-settings.c
Log:
Implement HAL power save method
Modified: xfce4-power-manager/trunk/src/xfpm-battery-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery-icon.c 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery-icon.c 2008-10-14 06:56:52 UTC (rev 5608)
@@ -483,7 +483,7 @@
// battery is discharging
if ( is_charging == FALSE && is_discharging == TRUE )
{
- if ( remaining_per > battery_icon->critical_level + 18 )
+ if ( remaining_per > ( battery_icon->critical_level + 10 ) )
{
if ( !battery_icon->ac_adapter_present )
{
@@ -493,7 +493,7 @@
gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);
xfpm_battery_icon_update(battery_icon,DISCHARGING,remaining_per);
}
- else if ( remaining_per <= battery_icon->critical_level+18 && remaining_per > battery_icon->critical_level + 18 )
+ else if ( remaining_per <= ( battery_icon->critical_level+10 ) && remaining_per > battery_icon->critical_level )
{
strcat(tip,_(" Battery charge level is low"));
gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);
Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-14 06:56:52 UTC (rev 5608)
@@ -78,6 +78,8 @@
#endif
static void xfpm_battery_refresh_critical_charge(XfpmBattery *batt);
static void xfpm_battery_refresh(XfpmBattery *batt);
+
+static void xfpm_battery_set_power_save(XfpmBattery *batt);
static void xfpm_battery_notify_cb (GObject *object,
GParamSpec *arg1,
@@ -144,6 +146,7 @@
PROP_AC_ADAPTER,
PROP_CRITICAL_CHARGE,
PROP_CRITICAL_ACTION,
+ PROP_POWER_SAVE,
#ifdef HAVE_LIBNOTIFY
PROP_ENABLE_NOTIFICATION,
#endif
@@ -213,7 +216,14 @@
XFPM_TYPE_SHOW_ICON,
0,
G_PARAM_READWRITE));
-
+ g_object_class_install_property(gobject_class,
+ PROP_POWER_SAVE,
+ g_param_spec_boolean("enable-powersave",
+ "Enable power save",
+ "power save",
+ TRUE,
+ G_PARAM_READWRITE));
+
g_type_class_add_private(klass,sizeof(XfpmBatteryPrivate));
}
@@ -299,6 +309,9 @@
case PROP_SHOW_TRAY_ICON:
battery->show_tray = g_value_get_enum(value);
break;
+ case PROP_POWER_SAVE:
+ battery->power_save = g_value_get_boolean(value);
+ break;
#ifdef HAVE_LIBNOTIFY
case PROP_ENABLE_NOTIFICATION:
battery->notify_enabled = g_value_get_boolean(value);
@@ -331,7 +344,10 @@
break;
case PROP_SHOW_TRAY_ICON:
g_value_set_enum(value, battery->show_tray);
- break;
+ break;
+ case PROP_POWER_SAVE:
+ g_value_set_boolean(value,battery->power_save);
+ break;
#ifdef HAVE_LIBNOTIFY
case PROP_ENABLE_NOTIFICATION:
g_value_set_boolean(value, battery->notify_enabled);
@@ -507,6 +523,23 @@
xfpm_battery_refresh_tray_icon(batt);
}
+static void
+xfpm_battery_set_power_save(XfpmBattery *batt)
+{
+ XfpmBatteryPrivate *priv;
+ priv = XFPM_BATTERY_GET_PRIVATE(batt);
+ GError *error = NULL;
+
+ xfpm_hal_set_power_save(priv->hal,batt->power_save,&error);
+
+ if ( error )
+ {
+ XFPM_DEBUG("%s : \n",error->message);
+ g_error_free(error);
+ }
+
+}
+
static void
xfpm_battery_notify_cb (GObject *object,
GParamSpec *arg1,
@@ -528,7 +561,15 @@
xfpm_battery_refresh_notification(XFPM_BATTERY(object));
}
#endif
-
+ else if ( !strcmp(arg1->name,"enable-powersave") )
+ {
+ xfpm_battery_set_power_save(XFPM_BATTERY(object));
+ }
+ else if ( !strcmp(arg1->name,"on-ac-adapter") )
+ {
+ if ( XFPM_BATTERY(object)->power_save )
+ xfpm_battery_set_power_save(XFPM_BATTERY(object));
+ }
}
static void
@@ -546,6 +587,7 @@
#ifdef HAVE_LIBNOTIFY
batt->notify_enabled = TRUE;
#endif
+ batt->power_save = TRUE;
batt->show_tray = ALWAYS;
return;
}
@@ -556,6 +598,7 @@
batt->critical_level = xfconf_channel_get_uint(channel,CRITICAL_BATT_CFG,10);
batt->critical_action = xfconf_channel_get_uint(channel,CRITICAL_BATT_ACTION_CFG,NOTHING);
batt->show_tray = xfconf_channel_get_uint(channel,SHOW_TRAY_ICON_CFG,ALWAYS);
+ batt->power_save = xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE);
#ifdef HAVE_LIBNOTIFY
batt->notify_enabled = xfconf_channel_get_bool(channel,BATT_STATE_NOTIFICATION_CFG,TRUE);
#endif
Modified: xfce4-power-manager/trunk/src/xfpm-battery.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.h 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery.h 2008-10-14 06:56:52 UTC (rev 5608)
@@ -50,6 +50,7 @@
gboolean can_hibernate;
gboolean can_suspend;
gboolean show_sleep_errors;
+ gboolean power_save;
#ifdef HAVE_LIBNOTIFY
gboolean notify_enabled;
Modified: xfce4-power-manager/trunk/src/xfpm-common.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-14 06:56:52 UTC (rev 5608)
@@ -39,10 +39,11 @@
#define ON_AC_CPU_GOV_CFG "/xfce4-power-manager/on-ac-cpu-gov"
#define ON_BATT_CPU_GOV_CFG "/xfce4-power-manager/on-batt-cpu-gov"
+#define POWER_SAVE_CFG "/xfce4-power-manager/power-save"
#define LCD_BRIGHTNESS_CFG "/xfce4-power-manager/lcd-brightness"
#define LID_SWITCH_CFG "/xfce4-power-manager/lid-switch-action"
-#define SLEEP_SWITCH_CFG "/xfce4-power-manager/sleep-switch-action"
-#define POWER_SWITCH_CFG "/xfce4-power-manager/power-switch-action"
+#define SLEEP_SWITCH_CFG "/xfce4-power-manager/sleep-switch-action"
+#define POWER_SWITCH_CFG "/xfce4-power-manager/power-switch-action"
#ifdef HAVE_LIBNOTIFY
#define BATT_STATE_NOTIFICATION_CFG "/xfce4-power-manager/battery-state-notification" /* default TRUE */
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-14 06:56:52 UTC (rev 5608)
@@ -402,6 +402,12 @@
return;
}
+ if ( !strcmp(property,POWER_SAVE_CFG) )
+ {
+ gboolean val = g_value_get_boolean(value);
+ g_object_set(G_OBJECT(priv->batt),"enable-powersave",val,NULL);
+ return;
+ }
}
static gboolean
Modified: xfce4-power-manager/trunk/src/xfpm-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-14 06:56:52 UTC (rev 5608)
@@ -999,7 +999,7 @@
if ( !reply )
{
- g_set_error(gerror,0,0,_("No reply from HAL daemon to set cpu governor message"));
+ g_set_error(gerror,0,0,_("No reply from HAL daemon to set power save profile"));
return;
}
dbus_message_unref(reply);
Modified: xfce4-power-manager/trunk/src/xfpm-settings.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-14 06:56:52 UTC (rev 5608)
@@ -166,6 +166,17 @@
}
}
+static void
+set_power_save_cb(GtkWidget *widget,XfconfChannel *channel)
+{
+ gboolean value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
+ if(!xfconf_channel_set_bool(channel,POWER_SAVE_CFG,value))
+ {
+ g_critical("Cannot set value %s\n",POWER_SAVE_CFG);
+ }
+}
+
#ifdef HAVE_DPMS
static void
set_dpms_cb(GtkWidget *widget,XfconfChannel *channel)
@@ -384,8 +395,9 @@
GtkWidget *label;
GtkWidget *critical_spin;
GtkWidget *action;
+ GtkWidget *check_powersave;
- table = gtk_table_new(3,2,TRUE);
+ table = gtk_table_new(4,2,TRUE);
gtk_widget_show(table);
frame = xfce_create_framebox(_("Battery configuration"), &align);
gtk_widget_show(frame);
@@ -422,18 +434,30 @@
gtk_widget_show(action);
g_signal_connect(action,"changed",G_CALLBACK(set_critical_action_cb),channel);
gtk_table_attach(GTK_TABLE(table),action,1,2,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
+
+ /// Enable power save
+ label = gtk_label_new(_("Enable power save on battery power"));
+ gtk_widget_show(label);
+ check_powersave = gtk_check_button_new();
+ gtk_widget_show(check_powersave);
+ gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,2,3);
+ gtk_table_attach(GTK_TABLE(table),check_powersave,1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
+ g_signal_connect(check_powersave,"toggled",G_CALLBACK(set_power_save_cb),channel);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_powersave),
+ xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE));
+
#ifdef HAVE_LIBNOTIFY
GtkWidget *notify_bt;
label = gtk_label_new(_("Enable battery state notification"));
gtk_widget_show(label);
- gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,2,3);
+ gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,3,4);
notify_bt = gtk_check_button_new();
gtk_widget_show(notify_bt);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(notify_bt),
xfconf_channel_get_bool(channel,BATT_STATE_NOTIFICATION_CFG,TRUE));
g_signal_connect(notify_bt,"toggled",G_CALLBACK(set_battery_state_notification_cb),channel);
- gtk_table_attach(GTK_TABLE(table),notify_bt,1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
+ gtk_table_attach(GTK_TABLE(table),notify_bt,1,2,3,4,GTK_SHRINK,GTK_SHRINK,0,0);
#endif
gtk_container_add(GTK_CONTAINER(align),table);
@@ -963,8 +987,9 @@
return frame;
}
+
static void
-_cursor_changed_cb(GtkTreeView *view,gpointer data)
+_cursor_changed_cb(GtkIconView *view,gpointer data)
{
GtkTreeSelection *sel;
GtkTreeModel *model;
@@ -989,7 +1014,6 @@
{
gtk_notebook_set_current_page(GTK_NOTEBOOK(nt),0);
}
-
}
static GtkWidget *
More information about the Goodies-commits
mailing list