reworked GenreSelect

This commit is contained in:
Martin Wagner 2020-02-28 11:47:57 +01:00
parent 47d0213b3f
commit 21dee05834

View File

@ -366,18 +366,14 @@ class GenreSelect(Gtk.Box):
self.client=client self.client=client
self.settings=settings self.settings=settings
self.emitter=emitter self.emitter=emitter
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
self.combo=Gtk.ComboBoxText() self.combo=Gtk.ComboBoxText()
self.button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("object-select-symbolic", self.icon_size))
#connect #connect
#self.connect("changed", self.on_changed) #self.connect("changed", self.on_changed)
self.combo_changed=self.combo.connect("changed", self.on_combo_changed) self.combo_changed=self.combo.connect("changed", self.on_combo_changed)
self.button.connect("toggled", self.on_button_toggled)
self.update_signal=self.emitter.connect("update", self.refresh) self.update_signal=self.emitter.connect("update", self.refresh)
self.pack_start(self.button, False, False, 0)
self.pack_start(self.combo, True, True, 0) self.pack_start(self.combo, True, True, 0)
@GObject.Signal @GObject.Signal
@ -389,17 +385,17 @@ class GenreSelect(Gtk.Box):
def refresh(self, *args): def refresh(self, *args):
self.combo.handler_block(self.combo_changed) self.combo.handler_block(self.combo_changed)
self.combo.remove_all() self.combo.remove_all()
self.combo.append_text(_("all genres"))
for genre in self.client.list("genre"): for genre in self.client.list("genre"):
self.combo.append_text(genre) self.combo.append_text(genre)
self.combo.set_active(0) self.combo.set_active(0)
self.combo.handler_unblock(self.combo_changed) self.combo.handler_unblock(self.combo_changed)
self.button.emit("toggled")
def get_value(self): def get_value(self):
if self.button.get_active(): if self.combo.get_active() == 0:
return self.combo.get_active_text()
else:
return None return None
else:
return self.combo.get_active_text()
def on_changed(self, *args): def on_changed(self, *args):
value=self.get_value() value=self.get_value()
@ -412,13 +408,6 @@ class GenreSelect(Gtk.Box):
def on_combo_changed(self, *args): def on_combo_changed(self, *args):
self.emit("changed") self.emit("changed")
def on_button_toggled(self, widget):
if widget.get_active():
self.combo.set_sensitive(True)
else:
self.combo.set_sensitive(False)
self.emit("changed")
class ArtistView(Gtk.ScrolledWindow): class ArtistView(Gtk.ScrolledWindow):
def __init__(self, client, settings, emitter, genre_select): def __init__(self, client, settings, emitter, genre_select):
Gtk.ScrolledWindow.__init__(self) Gtk.ScrolledWindow.__init__(self)