Audio: use ElmLayout instead of pure Edje
This way I do not need to manually delete the swallowed images
This commit is contained in:
parent
421ee244a7
commit
8b36f1a429
|
@ -11,8 +11,8 @@ from efl import ecore
|
||||||
from efl import evas
|
from efl import evas
|
||||||
from efl import edje
|
from efl import edje
|
||||||
from efl.dbus_mainloop import DBusEcoreMainLoop
|
from efl.dbus_mainloop import DBusEcoreMainLoop
|
||||||
from efl.elementary.icon import Icon
|
|
||||||
from efl.elementary.label import Label
|
from efl.elementary.label import Label
|
||||||
|
from efl.elementary.layout import Layout
|
||||||
from efl.elementary.slider import Slider
|
from efl.elementary.slider import Slider
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,17 +104,11 @@ class Gadget(e.Gadget):
|
||||||
for player, objs in self.player_objs.items():
|
for player, objs in self.player_objs.items():
|
||||||
while obj in objs: objs.remove(obj)
|
while obj in objs: objs.remove(obj)
|
||||||
|
|
||||||
# delete the cover image
|
|
||||||
cover = obj.part_swallow_get('cover.swallow')
|
|
||||||
if cover: cover.delete()
|
|
||||||
|
|
||||||
# and finally delete the player edje obj
|
|
||||||
obj.delete()
|
|
||||||
|
|
||||||
def popup_player_add(self, popup, player):
|
def popup_player_add(self, popup, player):
|
||||||
# create the edje obj for this player from 'e/gadgets/audio/player'
|
# create the edje obj for this player from 'e/gadgets/audio/player'
|
||||||
o = edje.Edje(popup.evas, update_hints=True)
|
o = Layout(popup)
|
||||||
e.theme_object_set(o, 'audio', 'player')
|
e.theme_object_set(o, 'audio', 'player')
|
||||||
|
o.size_hint_min = o.edje.size_min
|
||||||
|
|
||||||
o.signal_callback_add('act,play', '', lambda o,sig,src: player.play())
|
o.signal_callback_add('act,play', '', lambda o,sig,src: player.play())
|
||||||
o.signal_callback_add('act,prev', '', lambda o,sig,src: player.prev())
|
o.signal_callback_add('act,prev', '', lambda o,sig,src: player.prev())
|
||||||
|
@ -145,10 +139,6 @@ class Gadget(e.Gadget):
|
||||||
def player_removed(self, player):
|
def player_removed(self, player):
|
||||||
if player in self.player_objs:
|
if player in self.player_objs:
|
||||||
for o in self.player_objs[player]:
|
for o in self.player_objs[player]:
|
||||||
# delete the cover image
|
|
||||||
cover = o.part_swallow_get('cover.swallow')
|
|
||||||
if cover: cover.delete()
|
|
||||||
# delete the edje object
|
|
||||||
o.delete()
|
o.delete()
|
||||||
# remove the player from our list
|
# remove the player from our list
|
||||||
del self.player_objs[player]
|
del self.player_objs[player]
|
||||||
|
@ -177,7 +167,7 @@ class Gadget(e.Gadget):
|
||||||
obj.part_text_set('metadata', txt)
|
obj.part_text_set('metadata', txt)
|
||||||
|
|
||||||
# cover image
|
# cover image
|
||||||
img = obj.part_swallow_get('cover.swallow')
|
img = obj.content_unset('cover.swallow')
|
||||||
if img: img.delete()
|
if img: img.delete()
|
||||||
|
|
||||||
if 'mpris:artUrl' in player.metadata:
|
if 'mpris:artUrl' in player.metadata:
|
||||||
|
@ -185,7 +175,7 @@ class Gadget(e.Gadget):
|
||||||
fname = fname.replace('file://', '')
|
fname = fname.replace('file://', '')
|
||||||
try:
|
try:
|
||||||
img = evas.FilledImage(obj.evas, file=fname)
|
img = evas.FilledImage(obj.evas, file=fname)
|
||||||
obj.part_swallow('cover.swallow', img)
|
obj.content_set('cover.swallow', img)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -305,6 +305,7 @@ collections {
|
||||||
}
|
}
|
||||||
|
|
||||||
group { name: "e/gadgets/audio/player";
|
group { name: "e/gadgets/audio/player";
|
||||||
|
min: 310 100;
|
||||||
styles {
|
styles {
|
||||||
style { name: "music_control_metadata_style";
|
style { name: "music_control_metadata_style";
|
||||||
base: "font="FN" font_size=10 align=left color=#ffff style=shadow,bottom shadow_color=#00000080 wrap=mixed";
|
base: "font="FN" font_size=10 align=left color=#ffff style=shadow,bottom shadow_color=#00000080 wrap=mixed";
|
||||||
|
|
Loading…
Reference in New Issue