[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