ocarina: Use album art as window icon

This is an experimental feature for now, since I don't know how well
it'll work yet.  The user should always have the option to disable this
feature, even when it works its way out of experimental.
This commit is contained in:
Bryan Schumaker 2011-06-27 23:18:39 -04:00
parent 0017c04bbf
commit 128415f009
3 changed files with 19 additions and 0 deletions

View File

@ -9,6 +9,7 @@ from ocarina import body
from ocarina import settings
from ocarina.body import footer
from libsaria import callbacks
import window
import playlist
import library
@ -24,6 +25,7 @@ def on_load(file, attrs):
footer.on_load(attrs)
queue.refresh()
body.cur_page_goto()
window.set_icon(attrs["art"])
callbacks.on_load = on_load
def on_like(like):
@ -41,6 +43,7 @@ gobject.signal_new("get_art", gobject.GObject, gobject.SIGNAL_RUN_LAST,
def on_get_art_helper(obj, id, path):
if id == libsaria.sources.get_cur_id():
footer.set_art(path)
window.set_icon(path)
on_get_art_obj = gobject.GObject()
on_get_art_obj.connect("get_art", on_get_art_helper)

View File

@ -2,6 +2,7 @@
import gtk
import libsaria
from ocarina import window
page = gtk.VBox()
text = "Experimental"
@ -16,6 +17,8 @@ def make_check_button(text, func, active):
return button
SERVER = make_check_button("Enable web server", libsaria.server.toggle_state, libsaria.server.get_state())
WINDOW_ART = make_check_button("Use album art as window icon", window.toggle_art_icon, window.get_art_icon_state())
page.pack_start(SERVER, False, False)
page.pack_start(WINDOW_ART, False, False)
page.show_all()

View File

@ -31,7 +31,20 @@ def set_title(new_title = None):
window.set_title(new_title)
set_title()
def get_art_icon_state():
return libsaria.prefs.get("ocarina.window.articon")
def toggle_art_icon(newval):
libsaria.prefs.set("ocarina.window.articon", newval)
icon = "images/ocarina.png"
if newval == True:
icon = libsaria.sources.all_attrs()["art"]
set_icon(icon)
libsaria.prefs.init("ocarina.window.articon", False)
def set_icon(icon = "images/ocarina.png"):
if (icon != "images/ocarina.png") and (get_art_icon_state() == False):
icon = "images/ocarina.png"
window.set_icon_from_file(icon)
set_icon()