diff --git a/ocarina/callbacks.py b/ocarina/callbacks.py index c1212b31..792a3cf0 100644 --- a/ocarina/callbacks.py +++ b/ocarina/callbacks.py @@ -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) diff --git a/ocarina/settings/experimental.py b/ocarina/settings/experimental.py index 7595d95f..85677fa2 100644 --- a/ocarina/settings/experimental.py +++ b/ocarina/settings/experimental.py @@ -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() diff --git a/ocarina/window.py b/ocarina/window.py index 3e073647..e251a529 100644 --- a/ocarina/window.py +++ b/ocarina/window.py @@ -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()