small gui improvements

This commit is contained in:
Martin Wagner 2020-02-02 18:08:59 +01:00
parent fff76e00ee
commit 88534a7054
3 changed files with 148 additions and 130 deletions

View File

@ -297,6 +297,9 @@ class ArtistView(Gtk.ScrolledWindow):
self.column_name.set_sort_column_id(0)
self.treeview.append_column(self.column_name)
#connect
self.treeview.connect("enter-notify-event", self.on_enter_event)
self.refresh()
self.add(self.treeview)
@ -329,6 +332,9 @@ class ArtistView(Gtk.ScrolledWindow):
artists.append(selected_artist)
return artists
def on_enter_event(self, widget, event):
self.treeview.grab_focus()
class AlbumIconView(Gtk.IconView):
def __init__(self, client, settings, window):
Gtk.IconView.__init__(self)
@ -354,6 +360,7 @@ class AlbumIconView(Gtk.IconView):
self.album_item_activated=self.connect("item-activated", self.on_album_item_activated)
self.connect("button-press-event", self.on_album_view_button_press_event)
self.settings.connect("changed::show-album-view-tooltips", self.tooltip_settings)
self.connect("motion-notify-event", self.on_move_event)
def tooltip_settings(self, *args):
if self.settings.get_boolean("show-album-view-tooltips"):
@ -454,6 +461,9 @@ class AlbumIconView(Gtk.IconView):
selected_artist=self.store.get_value(treeiter, 5)
self.client.album_to_playlist(selected_album, selected_artist, selected_album_year, False, True)
def on_move_event(self, widget, event):
self.grab_focus()
class AlbumView(Gtk.ScrolledWindow):
def __init__(self, client, settings, window):
Gtk.ScrolledWindow.__init__(self)
@ -548,6 +558,8 @@ class TrackView(Gtk.Box):
#status bar
status_bar=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
status_bar.set_margin_left(4)
status_bar.set_margin_right(4)
status_bar.pack_start(self.playlist_info, True, True, 0)
status_bar.pack_end(audio, False, False, 0)
@ -702,7 +714,7 @@ class TrackView(Gtk.Box):
class Browser(Gtk.Box):
def __init__(self, client, settings, window):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, spacing=3)
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, spacing=4)
#adding vars
self.client=client
@ -722,7 +734,9 @@ class Browser(Gtk.Box):
#packing
self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.paned1.set_wide_handle(True)
self.paned2=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.paned2.set_wide_handle(True)
self.paned1.pack1(self.artist_list, False, False)
self.paned1.pack2(self.album_list, True, False)
self.paned2.pack1(self.paned1, True, False)
@ -778,9 +792,9 @@ class Browser(Gtk.Box):
class ProfileSettings(Gtk.Grid):
def __init__(self, parent, settings):
Gtk.Grid.__init__(self)
self.set_row_spacing(3)
self.set_column_spacing(3)
self.set_property("border-width", 3)
self.set_row_spacing(4)
self.set_column_spacing(4)
self.set_property("border-width", 4)
#adding vars
self.settings = settings
@ -927,9 +941,9 @@ class ProfileSettings(Gtk.Grid):
class GeneralSettings(Gtk.Grid):
def __init__(self, settings):
Gtk.Grid.__init__(self)
self.set_row_spacing(3)
self.set_column_spacing(3)
self.set_property("border-width", 3)
self.set_row_spacing(4)
self.set_column_spacing(4)
self.set_property("border-width", 4)
#adding vars
self.settings = settings
@ -1024,7 +1038,7 @@ class SettingsDialog(Gtk.Dialog):
class ClientControl(Gtk.ButtonBox):
def __init__(self, client, settings):
Gtk.ButtonBox.__init__(self, spacing=3)
Gtk.ButtonBox.__init__(self, spacing=4)
#adding vars
self.client=client
@ -1123,6 +1137,7 @@ class SeekBar(Gtk.Box):
self.rest.set_width_chars(8)
self.scale=Gtk.Scale.new_with_range(orientation=Gtk.Orientation.HORIZONTAL, min=0, max=100, step=0.001)
self.scale.set_draw_value(False)
self.scale.set_can_focus(False)
#connect
self.scale.connect("change-value", self.seek)
@ -1271,7 +1286,7 @@ class PlaybackOptions(Gtk.Box):
class AudioType(Gtk.EventBox):
def __init__(self, client):
Gtk.EventBox.__init__(self)
self.set_tooltip_text(_("Right click to show additional information"))
self.set_tooltip_text(_("Click to show additional information"))
#adding vars
self.client=client
@ -1328,7 +1343,7 @@ class AudioType(Gtk.EventBox):
return True
def on_button_press_event(self, widget, event):
if event.button == 3:
if event.button == 1 or event.button == 2 or event.button == 3:
self.popover.remove(self.treeview) #workaround
self.store.clear()
self.popover.add(self.treeview) #workaround
@ -1712,8 +1727,11 @@ class MainWindow(Gtk.ApplicationWindow):
GLib.timeout_add(1000, self.update, app)
#packing
self.vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=3)
self.hbox=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=3)
self.vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=4)
self.hbox=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=4)
self.hbox.set_margin_left(2)
self.hbox.set_margin_right(2)
self.hbox.set_margin_bottom(2)
self.vbox.pack_start(self.info_bar, False, False, 0)
self.vbox.pack_start(self.browser, True, True, 0)
self.vbox.pack_start(self.hbox, False, False, 0)

120
po/de.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-01 15:50+0100\n"
"PO-Revision-Date: 2020-02-01 15:50+0100\n"
"POT-Creation-Date: 2020-02-02 18:07+0100\n"
"PO-Revision-Date: 2020-02-02 18:08+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
@ -18,27 +18,27 @@ msgstr ""
"X-Generator: Poedit 2.2.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: mpdevil.py:199 mpdevil.py:512 mpdevil.py:1453
#: mpdevil.py:199 mpdevil.py:522 mpdevil.py:1474
msgid "No"
msgstr "Nr."
#: mpdevil.py:204 mpdevil.py:517 mpdevil.py:1459
#: mpdevil.py:204 mpdevil.py:527 mpdevil.py:1480
msgid "Title"
msgstr "Titel"
#: mpdevil.py:209 mpdevil.py:522 mpdevil.py:1465
#: mpdevil.py:209 mpdevil.py:532 mpdevil.py:1486
msgid "Artist"
msgstr "Interpret"
#: mpdevil.py:214 mpdevil.py:527 mpdevil.py:1477
#: mpdevil.py:214 mpdevil.py:537 mpdevil.py:1498
msgid "Length"
msgstr "Länge"
#: mpdevil.py:254 mpdevil.py:621 mpdevil.py:1514
#: mpdevil.py:254 mpdevil.py:633 mpdevil.py:1535
msgid "Unknown Title"
msgstr "Unbekannter Titel"
#: mpdevil.py:258 mpdevil.py:629 mpdevil.py:1522
#: mpdevil.py:258 mpdevil.py:641 mpdevil.py:1543
msgid "Unknown Artist"
msgstr "Unbekannter Künstler"
@ -46,120 +46,120 @@ msgstr "Unbekannter Künstler"
msgid "Album Artist"
msgstr "Albuminterpret"
#: mpdevil.py:374 mpdevil.py:596
#: mpdevil.py:381 mpdevil.py:608
#, python-format
msgid "%(total_tracks)i titles (%(total_length)s)"
msgstr "%(total_tracks)i Titel (%(total_length)s)"
#: mpdevil.py:633 mpdevil.py:1526
#: mpdevil.py:645 mpdevil.py:1547
msgid "Unknown Album"
msgstr "Unbekanntes Album"
#: mpdevil.py:800
#: mpdevil.py:814
msgid "Select"
msgstr "Auswählen"
#: mpdevil.py:802
#: mpdevil.py:816
msgid "Profile:"
msgstr "Profil:"
#: mpdevil.py:804
#: mpdevil.py:818
msgid "Name:"
msgstr "Name:"
#: mpdevil.py:806
#: mpdevil.py:820
msgid "Host:"
msgstr "Host:"
#: mpdevil.py:808
#: mpdevil.py:822
msgid "Port:"
msgstr "Port:"
#: mpdevil.py:810
#: mpdevil.py:824
msgid "Password:"
msgstr "Passwort:"
#: mpdevil.py:812
#: mpdevil.py:826
msgid "Music lib:"
msgstr "Musikverzeichnis:"
#: mpdevil.py:893
#: mpdevil.py:912
msgid "Choose directory"
msgstr "Verzeichnis Wählen"
#: mpdevil.py:932
#: mpdevil.py:952
msgid "Main cover size:"
msgstr "Größe des Haupt-Covers:"
#: mpdevil.py:934
#: mpdevil.py:954
msgid "Album-view cover size:"
msgstr "Covergröße in Albumansicht:"
#: mpdevil.py:940
#: mpdevil.py:960
msgid "Button icon size (restart required):"
msgstr "Symbolgröße der Knöpfe (Neustart erforderlich):"
#: mpdevil.py:949
#: mpdevil.py:969
msgid "Show stop button"
msgstr "Zeige Stopp-Knopf"
#: mpdevil.py:952
#: mpdevil.py:972
msgid "Show tooltips in album view"
msgstr "Zeige Tooltips in Albumansicht"
#: mpdevil.py:955
#: mpdevil.py:975
msgid "Send notification on title change"
msgstr "Sende Benachrichtigung bei Titelwechsel"
#: mpdevil.py:958
#: mpdevil.py:978
msgid "Stop playback on quit"
msgstr "Wiedergabe beim Beenden stoppen"
#: mpdevil.py:961
#: mpdevil.py:981
msgid "Play selected album after current title"
msgstr "Ausgewähltes Album hinter aktuellem Titel einreihen"
#: mpdevil.py:999 mpdevil.py:1683
#: mpdevil.py:1019 mpdevil.py:1704
msgid "Settings"
msgstr "Einstellungen"
#: mpdevil.py:1012
#: mpdevil.py:1032
msgid "General"
msgstr "Allgemein"
#: mpdevil.py:1013
#: mpdevil.py:1033
msgid "Profiles"
msgstr "Profile"
#: mpdevil.py:1167
#: mpdevil.py:1188
msgid "Random mode"
msgstr "Zufallsmodus"
#: mpdevil.py:1169
#: mpdevil.py:1190
msgid "Repeat mode"
msgstr "Dauerschleife"
#: mpdevil.py:1171
#: mpdevil.py:1192
msgid "Single mode"
msgstr "Einzelstückmodus"
#: mpdevil.py:1173
#: mpdevil.py:1194
msgid "Consume mode"
msgstr "Playliste verbrauchen"
#: mpdevil.py:1268
msgid "Right click to show additional information"
msgstr "Rechtsclick für weitere Informationen"
#: mpdevil.py:1289
msgid "Click to show additional information"
msgstr "Klicken für weitere Informationen"
#: mpdevil.py:1292
#: mpdevil.py:1313
msgid "MPD-Tag"
msgstr "MPD-Tag"
#: mpdevil.py:1295 mpdevil.py:1403
#: mpdevil.py:1316 mpdevil.py:1424
msgid "Value"
msgstr "Wert"
#: mpdevil.py:1316
#: mpdevil.py:1337
#, python-format
msgid ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
@ -168,88 +168,88 @@ msgstr ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
"Kanäle, %(file_type)s"
#: mpdevil.py:1382
#: mpdevil.py:1403
msgid "Stats"
msgstr "Statistik"
#: mpdevil.py:1400
#: mpdevil.py:1421
msgid "Tag"
msgstr "Tag"
#: mpdevil.py:1420
#: mpdevil.py:1441
msgid "Search"
msgstr "Suche"
#: mpdevil.py:1471
#: mpdevil.py:1492
msgid "Album"
msgstr "Album"
#: mpdevil.py:1533
#: mpdevil.py:1554
#, python-format
msgid "Hits: %i"
msgstr "Treffer: %i"
#: mpdevil.py:1537
#: mpdevil.py:1558
msgid "Lyrics"
msgstr "Liedtext"
#: mpdevil.py:1577
#: mpdevil.py:1598
msgid "searching..."
msgstr "suche..."
#: mpdevil.py:1581
#: mpdevil.py:1602
msgid "not found"
msgstr "nicht gefunden"
#: mpdevil.py:1586
#: mpdevil.py:1607
msgid "not connected"
msgstr "nicht verbunden"
#: mpdevil.py:1663
#: mpdevil.py:1684
msgid "Select profile"
msgstr "Profil auswählen"
#: mpdevil.py:1667
#: mpdevil.py:1688
msgid "Return to album of current title"
msgstr "Zu Album des aktuellen Titels zurückkehren"
#: mpdevil.py:1669
#: mpdevil.py:1690
msgid "Title search"
msgstr "Titelsuche"
#: mpdevil.py:1671
#: mpdevil.py:1692
msgid "Show lyrics"
msgstr "Zeige Liedtext"
#: mpdevil.py:1678
#: mpdevil.py:1699
msgid "Not connected to MPD-server. Reconnect?"
msgstr "Nicht mit MPD-Server verbunden. Verbindung wiederherstellen?"
#: mpdevil.py:1682
#: mpdevil.py:1703
msgid "Save window size"
msgstr "Fenstergröße speichern"
#: mpdevil.py:1684
#: mpdevil.py:1705
msgid "Update database"
msgstr "Datenbank aktualisieren"
#: mpdevil.py:1685
#: mpdevil.py:1706
msgid "Server stats"
msgstr "Serverstatistik"
#: mpdevil.py:1686
#: mpdevil.py:1707
msgid "About"
msgstr "Über"
#: mpdevil.py:1687
#: mpdevil.py:1708
msgid "Quit"
msgstr "Beenden"
#: mpdevil.py:1692
#: mpdevil.py:1713
msgid "Main menu"
msgstr "Hauptmenu"
#: mpdevil.py:1845
#: mpdevil.py:1869
msgid "A small MPD client written in python"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-01 15:50+0100\n"
"POT-Creation-Date: 2020-02-02 18:07+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,27 +17,27 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: mpdevil.py:199 mpdevil.py:512 mpdevil.py:1453
#: mpdevil.py:199 mpdevil.py:522 mpdevil.py:1474
msgid "No"
msgstr ""
#: mpdevil.py:204 mpdevil.py:517 mpdevil.py:1459
#: mpdevil.py:204 mpdevil.py:527 mpdevil.py:1480
msgid "Title"
msgstr ""
#: mpdevil.py:209 mpdevil.py:522 mpdevil.py:1465
#: mpdevil.py:209 mpdevil.py:532 mpdevil.py:1486
msgid "Artist"
msgstr ""
#: mpdevil.py:214 mpdevil.py:527 mpdevil.py:1477
#: mpdevil.py:214 mpdevil.py:537 mpdevil.py:1498
msgid "Length"
msgstr ""
#: mpdevil.py:254 mpdevil.py:621 mpdevil.py:1514
#: mpdevil.py:254 mpdevil.py:633 mpdevil.py:1535
msgid "Unknown Title"
msgstr ""
#: mpdevil.py:258 mpdevil.py:629 mpdevil.py:1522
#: mpdevil.py:258 mpdevil.py:641 mpdevil.py:1543
msgid "Unknown Artist"
msgstr ""
@ -45,207 +45,207 @@ msgstr ""
msgid "Album Artist"
msgstr ""
#: mpdevil.py:374 mpdevil.py:596
#: mpdevil.py:381 mpdevil.py:608
#, python-format
msgid "%(total_tracks)i titles (%(total_length)s)"
msgstr ""
#: mpdevil.py:633 mpdevil.py:1526
#: mpdevil.py:645 mpdevil.py:1547
msgid "Unknown Album"
msgstr ""
#: mpdevil.py:800
#: mpdevil.py:814
msgid "Select"
msgstr ""
#: mpdevil.py:802
#: mpdevil.py:816
msgid "Profile:"
msgstr ""
#: mpdevil.py:804
#: mpdevil.py:818
msgid "Name:"
msgstr ""
#: mpdevil.py:806
#: mpdevil.py:820
msgid "Host:"
msgstr ""
#: mpdevil.py:808
#: mpdevil.py:822
msgid "Port:"
msgstr ""
#: mpdevil.py:810
#: mpdevil.py:824
msgid "Password:"
msgstr ""
#: mpdevil.py:812
#: mpdevil.py:826
msgid "Music lib:"
msgstr ""
#: mpdevil.py:893
#: mpdevil.py:912
msgid "Choose directory"
msgstr ""
#: mpdevil.py:932
#: mpdevil.py:952
msgid "Main cover size:"
msgstr ""
#: mpdevil.py:934
#: mpdevil.py:954
msgid "Album-view cover size:"
msgstr ""
#: mpdevil.py:940
#: mpdevil.py:960
msgid "Button icon size (restart required):"
msgstr ""
#: mpdevil.py:949
#: mpdevil.py:969
msgid "Show stop button"
msgstr ""
#: mpdevil.py:952
#: mpdevil.py:972
msgid "Show tooltips in album view"
msgstr ""
#: mpdevil.py:955
#: mpdevil.py:975
msgid "Send notification on title change"
msgstr ""
#: mpdevil.py:958
#: mpdevil.py:978
msgid "Stop playback on quit"
msgstr ""
#: mpdevil.py:961
#: mpdevil.py:981
msgid "Play selected album after current title"
msgstr ""
#: mpdevil.py:999 mpdevil.py:1683
#: mpdevil.py:1019 mpdevil.py:1704
msgid "Settings"
msgstr ""
#: mpdevil.py:1012
#: mpdevil.py:1032
msgid "General"
msgstr ""
#: mpdevil.py:1013
#: mpdevil.py:1033
msgid "Profiles"
msgstr ""
#: mpdevil.py:1167
#: mpdevil.py:1188
msgid "Random mode"
msgstr ""
#: mpdevil.py:1169
#: mpdevil.py:1190
msgid "Repeat mode"
msgstr ""
#: mpdevil.py:1171
#: mpdevil.py:1192
msgid "Single mode"
msgstr ""
#: mpdevil.py:1173
#: mpdevil.py:1194
msgid "Consume mode"
msgstr ""
#: mpdevil.py:1268
msgid "Right click to show additional information"
#: mpdevil.py:1289
msgid "Click to show additional information"
msgstr ""
#: mpdevil.py:1292
#: mpdevil.py:1313
msgid "MPD-Tag"
msgstr ""
#: mpdevil.py:1295 mpdevil.py:1403
#: mpdevil.py:1316 mpdevil.py:1424
msgid "Value"
msgstr ""
#: mpdevil.py:1316
#: mpdevil.py:1337
#, python-format
msgid ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
"channels, %(file_type)s"
msgstr ""
#: mpdevil.py:1382
#: mpdevil.py:1403
msgid "Stats"
msgstr ""
#: mpdevil.py:1400
#: mpdevil.py:1421
msgid "Tag"
msgstr ""
#: mpdevil.py:1420
#: mpdevil.py:1441
msgid "Search"
msgstr ""
#: mpdevil.py:1471
#: mpdevil.py:1492
msgid "Album"
msgstr ""
#: mpdevil.py:1533
#: mpdevil.py:1554
#, python-format
msgid "Hits: %i"
msgstr ""
#: mpdevil.py:1537
#: mpdevil.py:1558
msgid "Lyrics"
msgstr ""
#: mpdevil.py:1577
#: mpdevil.py:1598
msgid "searching..."
msgstr ""
#: mpdevil.py:1581
#: mpdevil.py:1602
msgid "not found"
msgstr ""
#: mpdevil.py:1586
#: mpdevil.py:1607
msgid "not connected"
msgstr ""
#: mpdevil.py:1663
#: mpdevil.py:1684
msgid "Select profile"
msgstr ""
#: mpdevil.py:1667
#: mpdevil.py:1688
msgid "Return to album of current title"
msgstr ""
#: mpdevil.py:1669
#: mpdevil.py:1690
msgid "Title search"
msgstr ""
#: mpdevil.py:1671
#: mpdevil.py:1692
msgid "Show lyrics"
msgstr ""
#: mpdevil.py:1678
#: mpdevil.py:1699
msgid "Not connected to MPD-server. Reconnect?"
msgstr ""
#: mpdevil.py:1682
#: mpdevil.py:1703
msgid "Save window size"
msgstr ""
#: mpdevil.py:1684
#: mpdevil.py:1705
msgid "Update database"
msgstr ""
#: mpdevil.py:1685
#: mpdevil.py:1706
msgid "Server stats"
msgstr ""
#: mpdevil.py:1686
#: mpdevil.py:1707
msgid "About"
msgstr ""
#: mpdevil.py:1687
#: mpdevil.py:1708
msgid "Quit"
msgstr ""
#: mpdevil.py:1692
#: mpdevil.py:1713
msgid "Main menu"
msgstr ""
#: mpdevil.py:1845
#: mpdevil.py:1869
msgid "A small MPD client written in python"
msgstr ""