Audio: use ElmLayout instead of pure Edje

This way I do not need to manually delete the swallowed images
This commit is contained in:
Davide Andreoli 2014-09-07 14:10:13 +02:00
parent 421ee244a7
commit 8b36f1a429
2 changed files with 7 additions and 16 deletions

View File

@ -11,8 +11,8 @@ from efl import ecore
from efl import evas
from efl import edje
from efl.dbus_mainloop import DBusEcoreMainLoop
from efl.elementary.icon import Icon
from efl.elementary.label import Label
from efl.elementary.layout import Layout
from efl.elementary.slider import Slider
@ -104,17 +104,11 @@ class Gadget(e.Gadget):
for player, objs in self.player_objs.items():
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):
# 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')
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,prev', '', lambda o,sig,src: player.prev())
@ -145,10 +139,6 @@ class Gadget(e.Gadget):
def player_removed(self, player):
if player in self.player_objs:
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()
# remove the player from our list
del self.player_objs[player]
@ -165,7 +155,7 @@ class Gadget(e.Gadget):
obj.signal_emit('state,set,playing', '')
else:
obj.signal_emit('state,set,paused', '')
# metadata
txt = ''
if 'xesam:title' in player.metadata:
@ -177,7 +167,7 @@ class Gadget(e.Gadget):
obj.part_text_set('metadata', txt)
# cover image
img = obj.part_swallow_get('cover.swallow')
img = obj.content_unset('cover.swallow')
if img: img.delete()
if 'mpris:artUrl' in player.metadata:
@ -185,7 +175,7 @@ class Gadget(e.Gadget):
fname = fname.replace('file://', '')
try:
img = evas.FilledImage(obj.evas, file=fname)
obj.part_swallow('cover.swallow', img)
obj.content_set('cover.swallow', img)
except:
pass

View File

@ -305,6 +305,7 @@ collections {
}
group { name: "e/gadgets/audio/player";
min: 310 100;
styles {
style { name: "music_control_metadata_style";
base: "font="FN" font_size=10 align=left color=#ffff style=shadow,bottom shadow_color=#00000080 wrap=mixed";