diff --git battery-status battery-status index 06c7762..0a5cadf 100755 --- battery-status +++ battery-status @@ -1507,28 +1507,32 @@ class BatteryApplet(gnomeapplet.Applet): # Icon Only item for Show submenu submenu_show_ritem_icon = gtk.RadioMenuItem(None, "_Icon Only") submenu_show_ritem_icon.connect("activate", self.main_menu_action) + submenu_show_ritem_icon.set_property("active", False) submenu_show_ritem_icon.show() # Time item for Show submenu submenu_show_ritem_time = gtk.RadioMenuItem(None, "_Time") submenu_show_ritem_time.connect("activate", self.main_menu_action) + submenu_show_ritem_time.set_property("active", False) submenu_show_ritem_time.show() # Percentage item for Show submenu submenu_show_ritem_percent = gtk.RadioMenuItem(None, "_Percentage") submenu_show_ritem_percent.connect("activate", self.main_menu_action) + submenu_show_ritem_percent.set_property("active", False) submenu_show_ritem_percent.show() + # Charge item for Show submenu + submenu_show_ritem_charge = gtk.RadioMenuItem(None, "_Charge") + submenu_show_ritem_charge.connect("activate", self.main_menu_action) + submenu_show_ritem_charge.set_property("active", False) + submenu_show_ritem_charge.show() # detect current option for Show submenu if self.option_show == "time": - submenu_show_ritem_icon.set_property("active", False) submenu_show_ritem_time.set_property("active", True) - submenu_show_ritem_percent.set_property("active", False) elif self.option_show == "percent": - submenu_show_ritem_icon.set_property("active", False) - submenu_show_ritem_time.set_property("active", False) submenu_show_ritem_percent.set_property("active", True) + elif self.option_show == "charge": + submenu_show_ritem_charge.set_property("active", True) else: submenu_show_ritem_icon.set_property("active", True) - submenu_show_ritem_time.set_property("active", False) - submenu_show_ritem_percent.set_property("active", False) if self.option_icon != "always": submenu_show_ritem_icon.set_sensitive(False) else: @@ -1565,6 +1569,7 @@ class BatteryApplet(gnomeapplet.Applet): submenu_show.add(submenu_show_ritem_icon) submenu_show.add(submenu_show_ritem_time) submenu_show.add(submenu_show_ritem_percent) + submenu_show.add(submenu_show_ritem_charge) submenu_show.add(submenu_show_separator) submenu_show.add(submenu_show_citem_sleep) submenu_show.add(submenu_show_citem_session) @@ -1916,7 +1921,7 @@ class BatteryApplet(gnomeapplet.Applet): ### update GConf settings on the fly, if it's changing within applet works # update Show submenu setting if option == "show" and entry.get_value().type == gconf.VALUE_STRING: - if entry.get_value().get_string() == "time" or entry.get_value().get_string() == "percent": + if entry.get_value().get_string() in ("time", "percent", "charge"): self.option_show = entry.get_value().get_string() else: self.option_show = "icon" @@ -2282,6 +2287,8 @@ class BatteryApplet(gnomeapplet.Applet): # show shutdown dialog os.system("gnome-session-save --shutdown-dialog &") ### Show submenu item action and update GConf setting on changing it + elif action == "_Charge": + self.g_conf.set_string("/apps/battery_status/show", "charge") elif action == "_Percentage": self.g_conf.set_string("/apps/battery_status/show", "percent") elif action == "_Time": @@ -2496,6 +2503,11 @@ class BatteryApplet(gnomeapplet.Applet): label_text += "missing" else: label_text += "--" + '%' + elif self.option_show == "charge": + if self.option_status: + label_text += "missing" + else: + label_text += "--" + ' Wh' label_text += ')' + '' self.label.set_markup(label_text) # set up icons @@ -2608,6 +2620,8 @@ class BatteryApplet(gnomeapplet.Applet): self.battery_state = self.power_battery_state[power_battery['State']] # get battery percentage self.battery_percent = int(round(power_battery['Percentage'], 1)) + # get battery charge + self.battery_charge = round(power_battery['Energy'], 1) # detect power source self.power_on_battery = power_properties['OnBattery'] # detect critical charge @@ -2703,6 +2717,8 @@ class BatteryApplet(gnomeapplet.Applet): label_text += self.battery_chargetime elif self.option_show == "percent": label_text += self.battery_percent + '%' + elif self.option_show == "charge": + label_text += str(round(self.battery_charge, 1)) + ' Wh' label_text += color_end + ')' + '' # update label text self.label.set_markup(label_text)