[Goodies-commits] r5529 - in xfce4-power-manager/trunk: data/icons/scalable po src
Ali Abdallah
aliov at xfce.org
Tue Oct 7 09:47:23 CEST 2008
Author: aliov
Date: 2008-10-07 07:47:23 +0000 (Tue, 07 Oct 2008)
New Revision: 5529
Modified:
xfce4-power-manager/trunk/data/icons/scalable/Makefile.am
xfce4-power-manager/trunk/po/Makefile
xfce4-power-manager/trunk/src/xfpm-battery-icon.c
xfce4-power-manager/trunk/src/xfpm-battery-icon.h
xfce4-power-manager/trunk/src/xfpm-battery.c
xfce4-power-manager/trunk/src/xfpm-common.c
xfce4-power-manager/trunk/src/xfpm-common.h
Log:
Implement critical battery action
Modified: xfce4-power-manager/trunk/data/icons/scalable/Makefile.am
===================================================================
--- xfce4-power-manager/trunk/data/icons/scalable/Makefile.am 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/data/icons/scalable/Makefile.am 2008-10-07 07:47:23 UTC (rev 5529)
@@ -42,4 +42,4 @@
gpm-mouse-000.svg \
gpm-mouse-030.svg \
gpm-mouse-060.svg \
- gpm-mouse-100.svg
\ No newline at end of file
+ gpm-mouse-100.svg
\ No newline at end of file
Modified: xfce4-power-manager/trunk/po/Makefile
===================================================================
--- xfce4-power-manager/trunk/po/Makefile 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/po/Makefile 2008-10-07 07:47:23 UTC (rev 5529)
@@ -67,20 +67,6 @@
EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
POTFILES = \
-dist distdir: $(DISTFILES)
- dists="$(DISTFILES)"; \
- extra_dists="$(EXTRA_DISTFILES)"; \
- for file in $$extra_dists; do \
- test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
- done; \
- for file in $$dists; do \
- test -f $$file || file="$(srcdir)/$$file"; \
- ln $$file $(distdir) 2> /dev/null \
- || cp -p $$file $(distdir); \
- done
-
-update-po: Makefile
- $(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
Modified: xfce4-power-manager/trunk/src/xfpm-battery-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery-icon.c 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/src/xfpm-battery-icon.c 2008-10-07 07:47:23 UTC (rev 5529)
@@ -66,7 +66,6 @@
PROP_BATTERY_STATE,
PROP_LAST_FULL,
PROP_BATT_CRITICAL,
- PROP_AC_ADAPTER_PRESENT,
#ifdef HAVE_LIBNOTIFY
PROP_NOTIFY
#endif
@@ -118,14 +117,6 @@
8,
G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
- g_object_class_install_property(object_class,
- PROP_AC_ADAPTER_PRESENT,
- g_param_spec_boolean("ac-adapter-present",
- "Ac adapter present",
- "Presence of AC adapter",
- TRUE,
- G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
-
#ifdef HAVE_LIBNOTIFY
g_object_class_install_property(object_class,
PROP_NOTIFY,
@@ -152,6 +143,7 @@
#endif
battery_icon->icon = -1;
battery_icon->icon_loaded = FALSE;
+ battery_icon->ac_adapter_present = FALSE;
}
static void xfpm_battery_icon_set_property(GObject *object,
@@ -181,9 +173,6 @@
case PROP_BATT_CRITICAL:
icon->critical_level = g_value_get_uint(value);
break;
- case PROP_AC_ADAPTER_PRESENT:
- icon->ac_adapter_present = g_value_get_boolean(value);
- break;
#ifdef HAVE_LIBNOTIFY
case PROP_NOTIFY:
icon->notify = g_value_get_boolean(value);
@@ -217,9 +206,6 @@
case PROP_BATT_CRITICAL:
g_value_set_uint(value,icon->critical_level);
break;
- case PROP_AC_ADAPTER_PRESENT:
- g_value_set_boolean(value,icon->ac_adapter_present);
- break;
#ifdef HAVE_LIBNOTIFY
case PROP_NOTIFY:
g_value_set_boolean(value,icon->notify);
@@ -313,8 +299,8 @@
{
return g_strdup("gpm-mouse");
}
-
- return g_strdup("gpm-ac-adapter");
+ /* we are going to show a primary icon */
+ return g_strdup("gpm-primary");
}
static void
@@ -352,7 +338,10 @@
icon_name = g_strdup_printf("%s-%s",icon_prefix,
xfpm_battery_icon_get_index(battery_icon->type,level));
#ifdef HAVE_LIBNOTIFY
- message = _("You are running on Battery");
+ if ( !battery_icon->ac_adapter_present )
+ {
+ message = battery_icon->type == PRIMARY ? _("You are running on Battery"):_("Battery is discharging");
+ }
#endif
break;
case CHARGING:
@@ -393,13 +382,12 @@
#endif
g_object_set(G_OBJECT(battery_icon),"battery-state",state,NULL);
}
- /* no need to load the icon we have it already */
+
if ( icon_prefix && icon_name )
{
if ( battery_icon->icon == g_quark_from_string(icon_name ) &&
battery_icon->icon_loaded )
{
- XFPM_DEBUG("No need to load icon %s\n",icon_name);
g_free(icon_prefix);
g_free(icon_name);
return;
@@ -427,8 +415,7 @@
GtkStatusIcon *
xfpm_battery_icon_new(guint last_full,guint battery_type,
- guint critical_level,gboolean visible,
- gboolean ac_adapter_present)
+ guint critical_level,gboolean visible)
{
XfpmBatteryIcon *battery_icon = NULL;
battery_icon = g_object_new(XFPM_TYPE_BATTERY_ICON,
@@ -440,8 +427,6 @@
critical_level,
"visible",
visible,
- "ac-adapter-present",
- ac_adapter_present,
NULL);
return GTK_STATUS_ICON(battery_icon);
@@ -449,12 +434,13 @@
void
xfpm_battery_icon_set_state(XfpmBatteryIcon *battery_icon,guint charge,guint remaining_per,
- gboolean present,gboolean is_charging,gboolean is_discharging)
+ gboolean present,gboolean is_charging,gboolean is_discharging,
+ gboolean ac_adapter_present)
{
g_return_if_fail(XFPM_IS_BATTERY_ICON(battery_icon));
-
- battery_icon->battery_present = present;
-
+ battery_icon->ac_adapter_present = ac_adapter_present;
+ battery_icon->battery_present = present;
+
gchar tip[128];
if ( present == FALSE )
@@ -489,7 +475,7 @@
//battery is charging
if ( is_charging == TRUE && is_discharging == FALSE )
{
- strcat(tip,_(" Charging "));
+ strcat(tip,_(" Battery is charging "));
gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);
xfpm_battery_icon_update(battery_icon,CHARGING,remaining_per);
}
@@ -499,7 +485,11 @@
{
if ( remaining_per > battery_icon->critical_level + 18 )
{
- strcat(tip,_(" Running on battery"));
+ if ( !battery_icon->ac_adapter_present )
+ {
+ strcat(tip,
+ battery_icon->type == PRIMARY ? _(" Running on battery"): _(" Battery is discharging"));
+ }
gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);
xfpm_battery_icon_update(battery_icon,DISCHARGING,remaining_per);
}
Modified: xfce4-power-manager/trunk/src/xfpm-battery-icon.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery-icon.h 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/src/xfpm-battery-icon.h 2008-10-07 07:47:23 UTC (rev 5529)
@@ -72,15 +72,15 @@
GtkStatusIcon *xfpm_battery_icon_new (guint last_full,
guint battery_type,
guint critical_charge,
- gboolean visible,
- gboolean ac_adapter_present);
+ gboolean visible);
void xfpm_battery_icon_set_state (XfpmBatteryIcon *battery_icon,
guint charge,
guint remaining_per,
gboolean present,
gboolean is_charging,
- gboolean is_discharging);
+ gboolean is_discharging,
+ gboolean ac_adapter_present);
G_END_DECLS
#endif /* __XFPM_BATTERY_ICON_H */
Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-07 07:47:23 UTC (rev 5529)
@@ -105,7 +105,14 @@
static gboolean xfpm_battery_check(XfpmBattery *batt,
const gchar *udi);
-
+
+static gboolean xfpm_battery_do_hibernate(XfpmBattery *batt);
+static void xfpm_battery_hibernate_callback(GtkWidget *widget,
+ XfpmBattery *batt);
+static gboolean xfpm_battery_do_suspend(XfpmBattery *batt);
+
+static void xfpm_battery_suspend_callback(GtkWidget *widget,
+ XfpmBattery *batt);
static void xfpm_battery_popup_tray_icon_menu(GtkStatusIcon *tray_icon,
guint button,
guint activate_time,
@@ -352,6 +359,15 @@
G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
}
+#ifdef HAVE_LIBNOTIFY
+static gboolean
+_set_tray_visible_timeout(XfpmBatteryIcon *icon)
+{
+ g_object_set(G_OBJECT(icon),"visible",FALSE,NULL);
+ return FALSE;
+}
+#endif
+
static void
xfpm_battery_refresh_tray_icon(XfpmBattery *batt)
{
@@ -418,7 +434,11 @@
}
else
{
+#ifdef HAVE_LIBNOTIFY
+ g_timeout_add(6000,(GSourceFunc)_set_tray_visible_timeout,icon);
+#else
g_object_set(G_OBJECT(icon),"visible",FALSE,NULL);
+#endif
}
}
}
@@ -577,7 +597,6 @@
const gchar *key,gboolean is_removed,
gboolean is_added,XfpmBattery *batt)
{
- XFPM_DEBUG("start\n");
XfpmBatteryPrivate *priv;
priv = XFPM_BATTERY_GET_PRIVATE(batt);
@@ -681,7 +700,7 @@
}
xfpm_battery_icon_set_state(XFPM_BATTERY_ICON(icon),current,percentage,
- is_present,is_charging,is_discharging);
+ is_present,is_charging,is_discharging,batt->ac_adapter_present);
}
}
@@ -690,9 +709,13 @@
{
if ( !strcmp(arg1->name,"battery-state") )
{
+ XfpmBatteryState state;
XfpmBattery *batt = XFPM_BATTERY(data);
- XfpmBatteryState state;
g_object_get(object,"battery-state",&state,NULL);
+
+ /* refresh here for the tray icon hiding if option
+ * show icon is charging or discharging and battery is fully charged
+ */
xfpm_battery_refresh(batt);
#ifdef DEBUG
gchar *content;
@@ -703,51 +726,35 @@
XFPM_DEBUG("param:%s value:%s\n",arg1->name,content);
g_free(content);
#endif
- }
-}
-
-static void
-lock_screen()
-{
- XFPM_DEBUG("locking the screen \n");
- GError *error = NULL;
- gboolean ret = g_spawn_command_line_async("gnome-screensaver-command -l",&error);
-
- if ( error )
- {
- XFPM_DEBUG("error %s\n",error->message);
- g_error_free(error);
- }
-
- if ( !ret )
- {
- /* this should be the default*/
- ret = g_spawn_command_line_async("xdg-screensaver lock",&error);
- if ( error )
+ if ( batt->critical_action == NOTHING )
{
- XFPM_DEBUG("error %s\n",error->message);
- g_error_free(error);
+ return;
}
-
- }
-
- if ( !ret )
- {
- ret = g_spawn_command_line_async("xscreensaver-command -lock",&error);
- if ( error )
+
+ if ( state == CRITICAL )
{
- XFPM_DEBUG("error %s\n",error->message);
- g_error_free(error);
+ XfpmBatteryType battery_type;
+ g_object_get(object,"battery-type",&battery_type,NULL);
+ if ( battery_type != PRIMARY )
+ {
+ return;
+ }
+ if ( batt->critical_action == HIBERNATE )
+ {
+ XFPM_DEBUG("Hibernating the system\n");
+ g_timeout_add_seconds(4,(GSourceFunc)xfpm_battery_do_hibernate,batt);
+ return;
+ }
+ if ( batt->critical_action == SHUTDOWN )
+ {
+ XfpmBatteryPrivate *priv;
+ priv = XFPM_BATTERY_GET_PRIVATE(batt);
+ g_timeout_add_seconds(4,(GSourceFunc)xfpm_hal_shutdown,priv->hal);
+ }
}
}
-
- if ( !ret )
- {
- g_critical("Connot lock screen\n");
- }
}
-
#ifdef HAVE_LIBNOTIFY
static void
set_sleep_errors(NotifyNotification *n,gchar *action,XfpmBattery *batt)
@@ -781,7 +788,6 @@
}
#endif
-/* FIXME: we should also notify the user if libnotify is missing*/
static void
xfpm_battery_report_sleep_errors(XfpmBattery *batt,const gchar *error,
const gchar *icon_name, gboolean simple)
@@ -858,7 +864,7 @@
if ( ret )
{
- lock_screen();
+ xfpm_lock_screen();
g_timeout_add_seconds(4,(GSourceFunc)xfpm_battery_do_hibernate,batt);
}
}
@@ -893,23 +899,17 @@
if ( ret )
{
- lock_screen();
+ xfpm_lock_screen();
g_timeout_add_seconds(3,(GSourceFunc)xfpm_battery_do_suspend,batt);
}
}
-static void
-xfpm_battery_tray_preferences(GtkWidget *widget,gpointer data)
-{
- g_spawn_command_line_async("xfce4-power-manager -c",NULL);
-}
-
static void xfpm_battery_popup_tray_icon_menu(GtkStatusIcon *tray_icon,
guint button,
guint activate_time,
XfpmBattery *batt)
{
- GtkWidget *menu,*mi,*img;
+ GtkWidget *menu,*mi,*img;
menu = gtk_menu_new();
// Hibernate menu option
@@ -949,7 +949,7 @@
mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES,NULL);
gtk_widget_set_sensitive(mi,TRUE);
gtk_widget_show(mi);
- g_signal_connect(mi,"activate",G_CALLBACK(xfpm_battery_tray_preferences),NULL);
+ g_signal_connect(mi,"activate",G_CALLBACK(xfpm_preferences),NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
@@ -1091,8 +1091,7 @@
batt_icon = xfpm_battery_icon_new(last_full,
type,
batt->critical_level,
- TRUE,
- batt->ac_adapter_present);
+ TRUE);
#ifdef HAVE_LIBNOTIFY
g_object_set(batt_icon,"systray-notify",batt->notify_enabled,NULL);
#endif
@@ -1101,7 +1100,8 @@
percentage,
is_present,
is_charging,
- is_discharging);
+ is_discharging,
+ batt->ac_adapter_present);
g_signal_connect(batt_icon,"notify",G_CALLBACK(xfpm_battery_state_change_cb),batt);
g_signal_connect(batt_icon,"popup-menu",G_CALLBACK(xfpm_battery_popup_tray_icon_menu),batt);
Modified: xfce4-power-manager/trunk/src/xfpm-common.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-07 07:47:23 UTC (rev 5529)
@@ -40,3 +40,32 @@
}
return icon;
}
+
+void
+xfpm_lock_screen(void)
+{
+ gboolean ret = g_spawn_command_line_async("gnome-screensaver-command -l",NULL);
+
+ if ( !ret )
+ {
+ /* this should be the default*/
+ ret = g_spawn_command_line_async("xdg-screensaver lock",NULL);
+ }
+
+ if ( !ret )
+ {
+ ret = g_spawn_command_line_async("xscreensaver-command -lock",NULL);
+ }
+
+ if ( !ret )
+ {
+ g_critical("Connot lock screen\n");
+ }
+
+}
+
+void
+xfpm_preferences(void)
+{
+ g_spawn_command_line_async("xfce4-power-manager -c",NULL);
+}
Modified: xfce4-power-manager/trunk/src/xfpm-common.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-06 22:29:46 UTC (rev 5528)
+++ xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-07 07:47:23 UTC (rev 5529)
@@ -52,7 +52,8 @@
#define ON_AC_DPMS_TIMEOUTS_CFG "/xfce4-power-manager/on-ac-monitor-dpms-timeouts"
#endif
-
GdkPixbuf* xfpm_load_icon(const char *icon_name,gint size);
+void xfpm_lock_screen(void);
+void xfpm_preferences(void);
#endif /* XFPM_COMMON_H */
More information about the Goodies-commits
mailing list