mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
improved icon size settings
This commit is contained in:
parent
72acc45cff
commit
8826140079
115
bin/mpdevil.py
115
bin/mpdevil.py
@ -70,6 +70,13 @@ class IntEntry(Gtk.SpinButton):
|
||||
def set_int(self, value):
|
||||
self.set_value(value)
|
||||
|
||||
class PixelSizedIcon(Gtk.Image):
|
||||
def __init__(self, icon_name, pixel_size):
|
||||
Gtk.Image.__init__(self)
|
||||
self.set_from_icon_name(icon_name, Gtk.IconSize.BUTTON)
|
||||
if pixel_size > 0:
|
||||
self.set_pixel_size(pixel_size)
|
||||
|
||||
class FocusFrame(Gtk.Overlay):
|
||||
def __init__(self):
|
||||
Gtk.Overlay.__init__(self)
|
||||
@ -876,13 +883,10 @@ class Settings(Gio.Settings):
|
||||
|
||||
def get_gtk_icon_size(self, key):
|
||||
icon_size=self.get_int(key)
|
||||
if icon_size == 16:
|
||||
return Gtk.IconSize.BUTTON
|
||||
elif icon_size == 24:
|
||||
return Gtk.IconSize.LARGE_TOOLBAR
|
||||
elif icon_size == 32:
|
||||
return Gtk.IconSize.DND
|
||||
else:
|
||||
sizes=[(48, Gtk.IconSize.DIALOG), (32, Gtk.IconSize.DND), (24, Gtk.IconSize.LARGE_TOOLBAR), (16, Gtk.IconSize.BUTTON)]
|
||||
for pixel_size, gtk_size in sizes:
|
||||
if icon_size >= pixel_size:
|
||||
return gtk_size
|
||||
return Gtk.IconSize.INVALID
|
||||
|
||||
def get_artist_type(self):
|
||||
@ -1903,14 +1907,19 @@ class Browser(Gtk.Box):
|
||||
self.use_csd=self.settings.get_boolean("use-csd")
|
||||
|
||||
if self.use_csd:
|
||||
self.icon_size=Gtk.IconSize.BUTTON
|
||||
self.icon_size=0
|
||||
else:
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
self.icon_size=self.settings.get_int("icon-size")
|
||||
|
||||
#widgets
|
||||
self.back_to_album_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("go-previous-symbolic", self.icon_size))
|
||||
self.icons={}
|
||||
icons_data=["go-previous-symbolic", "system-search-symbolic"]
|
||||
for data in icons_data:
|
||||
self.icons[data]=PixelSizedIcon(data, self.icon_size)
|
||||
|
||||
self.back_to_album_button=Gtk.Button(image=self.icons["go-previous-symbolic"])
|
||||
self.back_to_album_button.set_tooltip_text(_("Back to current album"))
|
||||
self.search_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("system-search-symbolic", self.icon_size))
|
||||
self.search_button=Gtk.ToggleButton(image=self.icons["system-search-symbolic"])
|
||||
self.search_button.set_tooltip_text(_("Search"))
|
||||
self.genre_select=GenreSelect(self.client, self.settings)
|
||||
self.artist_view=ArtistView(self.client, self.settings, self.genre_select)
|
||||
@ -1924,10 +1933,11 @@ class Browser(Gtk.Box):
|
||||
self.search_button.connect("toggled", self.on_search_toggled)
|
||||
self.artist_view.connect("artists_changed", self.on_artists_changed)
|
||||
self.settings.connect("changed::playlist-right", self.on_playlist_pos_settings_changed)
|
||||
if not self.use_csd:
|
||||
self.settings.connect("changed::icon-size", self.on_icon_size_changed)
|
||||
self.client.emitter.connect("disconnected", self.on_disconnected)
|
||||
self.client.emitter.connect("reconnected", self.on_reconnected)
|
||||
|
||||
|
||||
#packing
|
||||
self.stack=Gtk.Stack()
|
||||
self.stack.set_transition_type(1)
|
||||
@ -2055,6 +2065,11 @@ class Browser(Gtk.Box):
|
||||
self.paned0.set_orientation(Gtk.Orientation.HORIZONTAL)
|
||||
self.paned2.set_orientation(Gtk.Orientation.VERTICAL)
|
||||
|
||||
def on_icon_size_changed(self, *args):
|
||||
pixel_size=self.settings.get_int("icon-size")
|
||||
for icon in self.icons.values():
|
||||
icon.set_pixel_size(pixel_size)
|
||||
|
||||
class ProfileSettings(Gtk.Grid):
|
||||
def __init__(self, parent, settings):
|
||||
Gtk.Grid.__init__(self)
|
||||
@ -2239,7 +2254,7 @@ class GeneralSettings(Gtk.Box):
|
||||
int_settings={}
|
||||
int_settings_data=[(_("Main cover size:"), (100, 1200, 10), "track-cover"),\
|
||||
(_("Album view cover size:"), (50, 600, 10), "album-cover"),\
|
||||
(_("Button icon size:"), (16, 32, 8), "icon-size")]
|
||||
(_("Button icon size:"), (16, 64, 2), "icon-size")]
|
||||
for data in int_settings_data:
|
||||
int_settings[data[2]]=(Gtk.Label(), IntEntry(self.settings.get_int(data[2]), data[1][0], data[1][1], data[1][2]))
|
||||
int_settings[data[2]][0].set_label(data[0])
|
||||
@ -2304,7 +2319,6 @@ class GeneralSettings(Gtk.Box):
|
||||
view_grid.attach_next_to(int_settings["track-cover"][1], int_settings["track-cover"][0], Gtk.PositionType.RIGHT, 1, 1)
|
||||
view_grid.attach_next_to(int_settings["album-cover"][1], int_settings["album-cover"][0], Gtk.PositionType.RIGHT, 1, 1)
|
||||
view_grid.attach_next_to(int_settings["icon-size"][1], int_settings["icon-size"][0], Gtk.PositionType.RIGHT, 1, 1)
|
||||
view_grid.attach_next_to(Gtk.Label(label=_("(restart required)"), sensitive=False), int_settings["icon-size"][1], Gtk.PositionType.RIGHT, 1, 1)
|
||||
view_grid.attach_next_to(combo_settings["playlist-right"][1], combo_settings["playlist-right"][0], Gtk.PositionType.RIGHT, 1, 1)
|
||||
|
||||
#behavior grid
|
||||
@ -2546,13 +2560,19 @@ class ClientControl(Gtk.ButtonBox):
|
||||
#adding vars
|
||||
self.client=client
|
||||
self.settings=settings
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
self.icon_size=self.settings.get_int("icon-size")
|
||||
|
||||
#widgets
|
||||
self.play_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-playback-start-symbolic", self.icon_size))
|
||||
self.stop_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-playback-stop-symbolic", self.icon_size))
|
||||
self.prev_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-skip-backward-symbolic", self.icon_size))
|
||||
self.next_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-skip-forward-symbolic", self.icon_size))
|
||||
self.icons={}
|
||||
icons_data=["media-playback-start-symbolic", "media-playback-stop-symbolic", "media-playback-pause-symbolic", \
|
||||
"media-skip-backward-symbolic", "media-skip-forward-symbolic"]
|
||||
for data in icons_data:
|
||||
self.icons[data]=PixelSizedIcon(data, self.icon_size)
|
||||
|
||||
self.play_button=Gtk.Button(image=self.icons["media-playback-start-symbolic"])
|
||||
self.stop_button=Gtk.Button(image=self.icons["media-playback-stop-symbolic"])
|
||||
self.prev_button=Gtk.Button(image=self.icons["media-skip-backward-symbolic"])
|
||||
self.next_button=Gtk.Button(image=self.icons["media-skip-forward-symbolic"])
|
||||
|
||||
#connect
|
||||
self.play_button.connect("clicked", self.on_play_clicked)
|
||||
@ -2560,6 +2580,7 @@ class ClientControl(Gtk.ButtonBox):
|
||||
self.prev_button.connect("clicked", self.on_prev_clicked)
|
||||
self.next_button.connect("clicked", self.on_next_clicked)
|
||||
self.settings.connect("changed::show-stop", self.on_settings_changed)
|
||||
self.settings.connect("changed::icon-size", self.on_icon_size_changed)
|
||||
self.client.emitter.connect("player", self.refresh)
|
||||
|
||||
#packing
|
||||
@ -2572,15 +2593,15 @@ class ClientControl(Gtk.ButtonBox):
|
||||
def refresh(self, *args):
|
||||
status=self.client.status()
|
||||
if status["state"] == "play":
|
||||
self.play_button.set_image(Gtk.Image.new_from_icon_name("media-playback-pause-symbolic", self.icon_size))
|
||||
self.play_button.set_image(self.icons["media-playback-pause-symbolic"])
|
||||
self.prev_button.set_sensitive(True)
|
||||
self.next_button.set_sensitive(True)
|
||||
elif status["state"] == "pause":
|
||||
self.play_button.set_image(Gtk.Image.new_from_icon_name("media-playback-start-symbolic", self.icon_size))
|
||||
self.play_button.set_image(self.icons["media-playback-start-symbolic"])
|
||||
self.prev_button.set_sensitive(True)
|
||||
self.next_button.set_sensitive(True)
|
||||
else:
|
||||
self.play_button.set_image(Gtk.Image.new_from_icon_name("media-playback-start-symbolic", self.icon_size))
|
||||
self.play_button.set_image(self.icons["media-playback-start-symbolic"])
|
||||
self.prev_button.set_sensitive(False)
|
||||
self.next_button.set_sensitive(False)
|
||||
|
||||
@ -2620,6 +2641,11 @@ class ClientControl(Gtk.ButtonBox):
|
||||
else:
|
||||
self.remove(self.stop_button)
|
||||
|
||||
def on_icon_size_changed(self, *args):
|
||||
pixel_size=self.settings.get_int("icon-size")
|
||||
for icon in self.icons.values():
|
||||
icon.set_pixel_size(pixel_size)
|
||||
|
||||
class SeekBar(Gtk.Box):
|
||||
def __init__(self, client):
|
||||
Gtk.Box.__init__(self)
|
||||
@ -2779,19 +2805,25 @@ class PlaybackOptions(Gtk.Box):
|
||||
#adding vars
|
||||
self.client=client
|
||||
self.settings=settings
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
self.icon_size=self.settings.get_int("icon-size")
|
||||
|
||||
#widgets
|
||||
self.random=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("media-playlist-shuffle-symbolic", self.icon_size))
|
||||
self.icons={}
|
||||
icons_data=["media-playlist-shuffle-symbolic", "media-playlist-repeat-symbolic", "zoom-original-symbolic", "edit-cut-symbolic"]
|
||||
for data in icons_data:
|
||||
self.icons[data]=PixelSizedIcon(data, self.icon_size)
|
||||
|
||||
self.random=Gtk.ToggleButton(image=self.icons["media-playlist-shuffle-symbolic"])
|
||||
self.random.set_tooltip_text(_("Random mode"))
|
||||
self.repeat=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("media-playlist-repeat-symbolic", self.icon_size))
|
||||
self.repeat=Gtk.ToggleButton(image=self.icons["media-playlist-repeat-symbolic"])
|
||||
self.repeat.set_tooltip_text(_("Repeat mode"))
|
||||
self.single=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("zoom-original-symbolic", self.icon_size))
|
||||
self.single=Gtk.ToggleButton(image=self.icons["zoom-original-symbolic"])
|
||||
self.single.set_tooltip_text(_("Single mode"))
|
||||
self.consume=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("edit-cut-symbolic", self.icon_size))
|
||||
self.consume=Gtk.ToggleButton(image=self.icons["edit-cut-symbolic"])
|
||||
self.consume.set_tooltip_text(_("Consume mode"))
|
||||
self.volume=Gtk.VolumeButton()
|
||||
self.volume.set_property("size", self.icon_size)
|
||||
self.volume.set_property("use-symbolic", True)
|
||||
self.volume.set_property("size", self.settings.get_gtk_icon_size("icon-size"))
|
||||
|
||||
#connect
|
||||
self.random_toggled=self.random.connect("toggled", self.set_random)
|
||||
@ -2801,6 +2833,7 @@ class PlaybackOptions(Gtk.Box):
|
||||
self.volume_changed=self.volume.connect("value-changed", self.set_volume)
|
||||
self.options_changed=self.client.emitter.connect("options", self.options_refresh)
|
||||
self.mixer_changed=self.client.emitter.connect("mixer", self.mixer_refresh)
|
||||
self.settings.connect("changed::icon-size", self.on_icon_size_changed)
|
||||
|
||||
#packing
|
||||
ButtonBox=Gtk.ButtonBox()
|
||||
@ -2875,6 +2908,12 @@ class PlaybackOptions(Gtk.Box):
|
||||
self.volume.set_value(0)
|
||||
self.volume.handler_unblock(self.volume_changed)
|
||||
|
||||
def on_icon_size_changed(self, *args):
|
||||
pixel_size=self.settings.get_int("icon-size")
|
||||
for icon in self.icons.values():
|
||||
icon.set_pixel_size(pixel_size)
|
||||
self.volume.set_property("size", self.settings.get_gtk_icon_size("icon-size"))
|
||||
|
||||
class AudioType(Gtk.Label):
|
||||
def __init__(self, client):
|
||||
Gtk.Label.__init__(self)
|
||||
@ -3256,8 +3295,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
#adding vars
|
||||
self.app=app
|
||||
self.client=client
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
self.use_csd=self.settings.get_boolean("use-csd")
|
||||
if self.use_csd:
|
||||
self.icon_size=0
|
||||
else:
|
||||
self.icon_size=self.settings.get_int("icon-size")
|
||||
|
||||
#MPRIS
|
||||
DBusGMainLoop(set_as_default=True)
|
||||
@ -3285,6 +3327,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
self.add_action(self.help_action)
|
||||
|
||||
#widgets
|
||||
self.icons={}
|
||||
icons_data=["open-menu-symbolic"]
|
||||
for data in icons_data:
|
||||
self.icons[data]=PixelSizedIcon(data, self.icon_size)
|
||||
|
||||
self.browser=Browser(self.client, self.settings, self)
|
||||
self.profiles=ProfileSelect(self.client, self.settings)
|
||||
self.profiles.set_tooltip_text(_("Select profile"))
|
||||
@ -3309,9 +3356,12 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
menu_popover=Gtk.Popover.new_from_model(menu_button, menu)
|
||||
menu_button.set_popover(menu_popover)
|
||||
menu_button.set_tooltip_text(_("Menu"))
|
||||
menu_button.set_image(image=self.icons["open-menu-symbolic"])
|
||||
|
||||
#connect
|
||||
self.settings.connect("changed::profiles", self.on_settings_changed)
|
||||
if not self.use_csd:
|
||||
self.settings.connect("changed::icon-size", self.on_icon_size_changed)
|
||||
self.client.emitter.connect("playing_file_changed", self.on_file_changed)
|
||||
self.client.emitter.connect("disconnected", self.on_disconnected)
|
||||
self.client.emitter.connect("reconnected", self.on_reconnected)
|
||||
@ -3331,7 +3381,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
self.action_bar.pack_start(self.play_opts)
|
||||
|
||||
if self.use_csd:
|
||||
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", Gtk.IconSize.BUTTON))
|
||||
self.header_bar=Gtk.HeaderBar()
|
||||
self.header_bar.set_show_close_button(True)
|
||||
self.header_bar.set_title("mpdevil")
|
||||
@ -3342,7 +3391,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
self.header_bar.pack_end(self.profiles)
|
||||
self.header_bar.pack_end(self.browser.search_button)
|
||||
else:
|
||||
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", self.icon_size))
|
||||
self.action_bar.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.VERTICAL))
|
||||
self.action_bar.pack_start(self.profiles)
|
||||
self.action_bar.pack_start(menu_button)
|
||||
@ -3473,6 +3521,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
else:
|
||||
self.profiles.set_property("visible", False)
|
||||
|
||||
def on_icon_size_changed(self, *args):
|
||||
pixel_size=self.settings.get_int("icon-size")
|
||||
for icon in self.icons.values():
|
||||
icon.set_pixel_size(pixel_size)
|
||||
|
||||
class mpdevil(Gtk.Application):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, application_id="org.mpdevil", flags=Gio.ApplicationFlags.FLAGS_NONE, **kwargs)
|
||||
|
Loading…
Reference in New Issue
Block a user