use just the battery icon in systray
This commit is contained in:
parent
f938b29040
commit
39862034e1
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||||
|
|
||||||
from gi.repository import Gtk, GdkPixbuf
|
from gi.repository import Gtk
|
||||||
|
|
||||||
from solaar import NAME
|
from solaar import NAME
|
||||||
from . import action as _action, icons as _icons
|
from . import action as _action, icons as _icons
|
||||||
|
|
@ -61,9 +61,6 @@ try:
|
||||||
|
|
||||||
|
|
||||||
def _update_icon(ind, image, tooltip):
|
def _update_icon(ind, image, tooltip):
|
||||||
if isinstance(image, GdkPixbuf.Pixbuf):
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
ind.set_icon_full(image, tooltip)
|
ind.set_icon_full(image, tooltip)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -92,9 +89,6 @@ except ImportError:
|
||||||
|
|
||||||
|
|
||||||
def _update_icon(icon, image, tooltip):
|
def _update_icon(icon, image, tooltip):
|
||||||
if isinstance(image, GdkPixbuf.Pixbuf):
|
|
||||||
icon.set_from_pixbuf(image)
|
|
||||||
else:
|
|
||||||
icon.set_from_icon_name(image)
|
icon.set_from_icon_name(image)
|
||||||
icon.set_tooltip_markup(tooltip)
|
icon.set_tooltip_markup(tooltip)
|
||||||
|
|
||||||
|
|
@ -126,32 +120,6 @@ def _generate_tooltip_lines(devices_info):
|
||||||
yield ''
|
yield ''
|
||||||
|
|
||||||
|
|
||||||
_PIXMAPS = {}
|
|
||||||
def _icon_with_battery(level, active):
|
|
||||||
battery_icon = _icons.battery(level)
|
|
||||||
name = '%s-%s' % (battery_icon, active)
|
|
||||||
if name not in _PIXMAPS:
|
|
||||||
mask = _icons.icon_file(_icons.APP_ICON[2], 128)
|
|
||||||
if not mask:
|
|
||||||
return
|
|
||||||
mask = GdkPixbuf.Pixbuf.new_from_file(mask)
|
|
||||||
assert mask.get_width() == 128 and mask.get_height() == 128
|
|
||||||
mask.saturate_and_pixelate(mask, 0.7, False)
|
|
||||||
|
|
||||||
battery = _icons.icon_file(battery_icon, 128)
|
|
||||||
assert battery, "faild to find file for %s" % battery_icon
|
|
||||||
battery = GdkPixbuf.Pixbuf.new_from_file(battery)
|
|
||||||
assert battery.get_width() == 128 and battery.get_height() == 128
|
|
||||||
if not active:
|
|
||||||
battery.saturate_and_pixelate(battery, 0, True)
|
|
||||||
|
|
||||||
# TODO can the masking be done at runtime?
|
|
||||||
battery.composite(mask, 0, 7, 80, 121, -32, 7, 1, 1, GdkPixbuf.InterpType.NEAREST, 255)
|
|
||||||
_PIXMAPS[name] = mask
|
|
||||||
|
|
||||||
return _PIXMAPS[name]
|
|
||||||
|
|
||||||
|
|
||||||
def _generate_image(icon):
|
def _generate_image(icon):
|
||||||
if not icon._devices_info:
|
if not icon._devices_info:
|
||||||
return _icons.APP_ICON[-1]
|
return _icons.APP_ICON[-1]
|
||||||
|
|
@ -170,11 +138,8 @@ def _generate_image(icon):
|
||||||
if battery_status is None:
|
if battery_status is None:
|
||||||
return _icons.APP_ICON[1]
|
return _icons.APP_ICON[1]
|
||||||
else:
|
else:
|
||||||
pixbuf = _icon_with_battery(battery_level, bool(battery_status))
|
charging = battery_status.get(_status.BATTERY_CHARGING)
|
||||||
if pixbuf:
|
return _icons.battery(battery_level, charging) or _icons.APP_ICON[1]
|
||||||
return pixbuf
|
|
||||||
else:
|
|
||||||
return _icons.APP_ICON[1]
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue