Compare commits
4 Commits
05bb8ae1a5
...
a2e8ac875a
Author | SHA1 | Date |
---|---|---|
Martin Wagner | a2e8ac875a | |
Martin Wagner | d4ab4f38c9 | |
Martin Wagner | 8f55d37819 | |
Martin Wagner | ad3938f784 |
|
@ -86,13 +86,6 @@
|
|||
<property name="accelerator"><Control>f</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Back to current album</property>
|
||||
<property name="accelerator">Escape</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -124,28 +117,28 @@
|
|||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Next title</property>
|
||||
<property name="accelerator"><Alt>Down</property>
|
||||
<property name="accelerator"><Alt>Down KP_Add</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Previous title</property>
|
||||
<property name="accelerator"><Alt>Up</property>
|
||||
<property name="accelerator"><Alt>Up KP_Subtract</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Seek forward</property>
|
||||
<property name="accelerator"><Alt>Right</property>
|
||||
<property name="accelerator"><Alt>Right KP_Multiply</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Seek backward</property>
|
||||
<property name="accelerator"><Alt>Left</property>
|
||||
<property name="accelerator"><Alt>Left KP_Divide</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
|
126
po/de.po
126
po/de.po
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-12-02 18:10+0100\n"
|
||||
"PO-Revision-Date: 2022-12-02 18:12+0100\n"
|
||||
"POT-Creation-Date: 2022-12-26 20:43+0100\n"
|
||||
"PO-Revision-Date: 2022-12-26 20:44+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
|
@ -124,12 +124,12 @@ msgid "Cover regex:"
|
|||
msgstr "Cover-Regex:"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1152 src/mpdevil.py:3117
|
||||
#: src/mpdevil.py:1152 src/mpdevil.py:3155
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/mpdevil.py:1175 src/mpdevil.py:1177 src/mpdevil.py:3118
|
||||
#: src/mpdevil.py:3207
|
||||
#: src/mpdevil.py:1175 src/mpdevil.py:1177 src/mpdevil.py:3156
|
||||
#: src/mpdevil.py:3245
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
|
@ -181,35 +181,28 @@ msgstr "<b>Gesamtwiedergabezeit:</b>"
|
|||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Datenbankaktualisierung:</b>"
|
||||
|
||||
#: src/mpdevil.py:1301 src/mpdevil.py:2166
|
||||
#: src/mpdevil.py:1301 src/mpdevil.py:2175
|
||||
msgid "No"
|
||||
msgstr "Nr."
|
||||
|
||||
#: src/mpdevil.py:1302 src/mpdevil.py:2167
|
||||
#: src/mpdevil.py:1302 src/mpdevil.py:2176
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: src/mpdevil.py:1303 src/mpdevil.py:2168
|
||||
#: src/mpdevil.py:1303 src/mpdevil.py:2177
|
||||
msgid "Length"
|
||||
msgstr "Länge"
|
||||
|
||||
#: src/mpdevil.py:1317
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Alle Titel der Wiedergabeliste anhängen"
|
||||
|
||||
#: src/mpdevil.py:1318
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Alle Titel sofort abspielen"
|
||||
|
||||
#: src/mpdevil.py:1339
|
||||
#: src/mpdevil.py:1317 src/mpdevil.py:1339
|
||||
msgid "Append"
|
||||
msgstr "Anhängen"
|
||||
|
||||
#: src/mpdevil.py:1340 src/mpdevil.py:2661 src/mpdevil.py:2694
|
||||
#: src/mpdevil.py:1318 src/mpdevil.py:1340 src/mpdevil.py:2668
|
||||
#: src/mpdevil.py:2701
|
||||
msgid "Play"
|
||||
msgstr "Abspielen"
|
||||
|
||||
#: src/mpdevil.py:1341 src/mpdevil.py:2188
|
||||
#: src/mpdevil.py:1341 src/mpdevil.py:2197
|
||||
msgid "Show"
|
||||
msgstr "Anzeigen"
|
||||
|
||||
|
@ -239,133 +232,133 @@ msgid_plural "{number} songs ({duration})"
|
|||
msgstr[0] "{number} Stück ({duration})"
|
||||
msgstr[1] "{number} Stücke ({duration})"
|
||||
|
||||
#: src/mpdevil.py:2187
|
||||
#: src/mpdevil.py:2196
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: src/mpdevil.py:2190
|
||||
#: src/mpdevil.py:2199
|
||||
msgid "Enqueue Album"
|
||||
msgstr "Album einreihen"
|
||||
|
||||
#: src/mpdevil.py:2191
|
||||
#: src/mpdevil.py:2200
|
||||
msgid "Tidy"
|
||||
msgstr "Aufräumen"
|
||||
|
||||
#: src/mpdevil.py:2193
|
||||
#: src/mpdevil.py:2202
|
||||
msgid "Clear"
|
||||
msgstr "Leeren"
|
||||
|
||||
#: src/mpdevil.py:2366
|
||||
#: src/mpdevil.py:2375
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Gehe zu aktuellem Lied"
|
||||
|
||||
#: src/mpdevil.py:2484
|
||||
#: src/mpdevil.py:2493
|
||||
msgid "searching…"
|
||||
msgstr "suche…"
|
||||
|
||||
#: src/mpdevil.py:2489
|
||||
#: src/mpdevil.py:2498
|
||||
msgid "connection error"
|
||||
msgstr "Verbindungsfehler"
|
||||
|
||||
#: src/mpdevil.py:2491
|
||||
#: src/mpdevil.py:2500
|
||||
msgid "lyrics not found"
|
||||
msgstr "Liedtext nicht gefunden"
|
||||
|
||||
#: src/mpdevil.py:2605
|
||||
#: src/mpdevil.py:2612
|
||||
msgid "Lyrics"
|
||||
msgstr "Liedtext"
|
||||
|
||||
#: src/mpdevil.py:2663 data/ShortcutsWindow.ui:112
|
||||
#: src/mpdevil.py:2670 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Stopp"
|
||||
|
||||
#: src/mpdevil.py:2667 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2674 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Vorheriger Titel"
|
||||
|
||||
#: src/mpdevil.py:2670 data/ShortcutsWindow.ui:126
|
||||
#: src/mpdevil.py:2677 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Nächster Titel"
|
||||
|
||||
#: src/mpdevil.py:2691
|
||||
#: src/mpdevil.py:2698
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/mpdevil.py:2863
|
||||
#: src/mpdevil.py:2901
|
||||
msgid "Repeat mode"
|
||||
msgstr "Dauerschleife"
|
||||
|
||||
#: src/mpdevil.py:2864
|
||||
#: src/mpdevil.py:2902
|
||||
msgid "Random mode"
|
||||
msgstr "Zufallsmodus"
|
||||
|
||||
#: src/mpdevil.py:2865
|
||||
#: src/mpdevil.py:2903
|
||||
msgid "Single mode"
|
||||
msgstr "Einzelstückmodus"
|
||||
|
||||
#: src/mpdevil.py:2866
|
||||
#: src/mpdevil.py:2904
|
||||
msgid "Consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen"
|
||||
|
||||
#: src/mpdevil.py:3087
|
||||
#: src/mpdevil.py:3125
|
||||
msgid "Updating Database…"
|
||||
msgstr "Datenbank aktualisieren…"
|
||||
|
||||
#: src/mpdevil.py:3135
|
||||
#: src/mpdevil.py:3173
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "Verbindung zu „{socket}“ fehlgeschlagen"
|
||||
|
||||
#: src/mpdevil.py:3137
|
||||
#: src/mpdevil.py:3175
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "Verbindung zu „{host}:{port}“ fehlgeschlagen"
|
||||
|
||||
#: src/mpdevil.py:3191
|
||||
#: src/mpdevil.py:3229
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: src/mpdevil.py:3194 data/ShortcutsWindow.ui:92
|
||||
msgid "Back to current album"
|
||||
msgstr "Zurück zu aktuellem Album"
|
||||
#: src/mpdevil.py:3232
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/mpdevil.py:3208
|
||||
#: src/mpdevil.py:3246
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Tastenkürzel"
|
||||
|
||||
#: src/mpdevil.py:3209
|
||||
#: src/mpdevil.py:3247
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: src/mpdevil.py:3210
|
||||
#: src/mpdevil.py:3248
|
||||
msgid "About mpdevil"
|
||||
msgstr "Info zu mpdevil"
|
||||
|
||||
#: src/mpdevil.py:3212
|
||||
#: src/mpdevil.py:3250
|
||||
msgid "Update Database"
|
||||
msgstr "Datenbank aktualisieren"
|
||||
|
||||
#: src/mpdevil.py:3213
|
||||
#: src/mpdevil.py:3251
|
||||
msgid "Server Stats"
|
||||
msgstr "Serverstatistik"
|
||||
|
||||
#: src/mpdevil.py:3215
|
||||
#: src/mpdevil.py:3253
|
||||
msgid "Mini Player"
|
||||
msgstr "Miniplayer"
|
||||
|
||||
#: src/mpdevil.py:3216
|
||||
#: src/mpdevil.py:3254
|
||||
msgid "Genre Filter"
|
||||
msgstr "Genrefilter"
|
||||
|
||||
#: src/mpdevil.py:3225
|
||||
#: src/mpdevil.py:3263
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: src/mpdevil.py:3399 src/mpdevil.py:3401
|
||||
#: src/mpdevil.py:3437 src/mpdevil.py:3439
|
||||
msgid "connecting…"
|
||||
msgstr "verbinden…"
|
||||
|
||||
#: src/mpdevil.py:3439
|
||||
#: src/mpdevil.py:3477
|
||||
msgid "Debug mode"
|
||||
msgstr "Debugmodus"
|
||||
|
||||
|
@ -429,42 +422,51 @@ msgstr "Liedtext ein-/ausblenden"
|
|||
msgid "Toggle search"
|
||||
msgstr "Suche ein-/ausblenden"
|
||||
|
||||
#: data/ShortcutsWindow.ui:101
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: data/ShortcutsWindow.ui:105
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr "Wiedergabe/Pause"
|
||||
|
||||
#: data/ShortcutsWindow.ui:119
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Nach aktuellem Titel stoppen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "Vorspulen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Zurückspulen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Dauerschleife ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Zufallsmodus ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Einzelstückmodus ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen ein-/ausschalten"
|
||||
|
||||
#~ msgid "Add all titles to playlist"
|
||||
#~ msgstr "Alle Titel der Wiedergabeliste anhängen"
|
||||
|
||||
#~ msgid "Directly play all titles"
|
||||
#~ msgstr "Alle Titel sofort abspielen"
|
||||
|
||||
#~ msgid "Back to current album"
|
||||
#~ msgstr "Zurück zu aktuellem Album"
|
||||
|
||||
#~ msgid "Play selected albums and titles immediately"
|
||||
#~ msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
||||
|
||||
|
|
113
po/mpdevil.pot
113
po/mpdevil.pot
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: mpdevil\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-12-02 18:10+0100\n"
|
||||
"POT-Creation-Date: 2022-12-26 20:43+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"
|
||||
|
@ -121,12 +121,12 @@ msgid "Cover regex:"
|
|||
msgstr ""
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1152 src/mpdevil.py:3117
|
||||
#: src/mpdevil.py:1152 src/mpdevil.py:3155
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1175 src/mpdevil.py:1177 src/mpdevil.py:3118
|
||||
#: src/mpdevil.py:3207
|
||||
#: src/mpdevil.py:1175 src/mpdevil.py:1177 src/mpdevil.py:3156
|
||||
#: src/mpdevil.py:3245
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
|
@ -178,35 +178,28 @@ msgstr ""
|
|||
msgid "<b>Database Update:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1301 src/mpdevil.py:2166
|
||||
#: src/mpdevil.py:1301 src/mpdevil.py:2175
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1302 src/mpdevil.py:2167
|
||||
#: src/mpdevil.py:1302 src/mpdevil.py:2176
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1303 src/mpdevil.py:2168
|
||||
#: src/mpdevil.py:1303 src/mpdevil.py:2177
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1317
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1318
|
||||
msgid "Directly play all titles"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1339
|
||||
#: src/mpdevil.py:1317 src/mpdevil.py:1339
|
||||
msgid "Append"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1340 src/mpdevil.py:2661 src/mpdevil.py:2694
|
||||
#: src/mpdevil.py:1318 src/mpdevil.py:1340 src/mpdevil.py:2668
|
||||
#: src/mpdevil.py:2701
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1341 src/mpdevil.py:2188
|
||||
#: src/mpdevil.py:1341 src/mpdevil.py:2197
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
|
@ -236,133 +229,133 @@ msgid_plural "{number} songs ({duration})"
|
|||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mpdevil.py:2187
|
||||
#: src/mpdevil.py:2196
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2190
|
||||
#: src/mpdevil.py:2199
|
||||
msgid "Enqueue Album"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2191
|
||||
#: src/mpdevil.py:2200
|
||||
msgid "Tidy"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2193
|
||||
#: src/mpdevil.py:2202
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2366
|
||||
#: src/mpdevil.py:2375
|
||||
msgid "Scroll to current song"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2484
|
||||
#: src/mpdevil.py:2493
|
||||
msgid "searching…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2489
|
||||
#: src/mpdevil.py:2498
|
||||
msgid "connection error"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2491
|
||||
#: src/mpdevil.py:2500
|
||||
msgid "lyrics not found"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2605
|
||||
#: src/mpdevil.py:2612
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2663 data/ShortcutsWindow.ui:112
|
||||
#: src/mpdevil.py:2670 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2667 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2674 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2670 data/ShortcutsWindow.ui:126
|
||||
#: src/mpdevil.py:2677 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2691
|
||||
#: src/mpdevil.py:2698
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2863
|
||||
#: src/mpdevil.py:2901
|
||||
msgid "Repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2864
|
||||
#: src/mpdevil.py:2902
|
||||
msgid "Random mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2865
|
||||
#: src/mpdevil.py:2903
|
||||
msgid "Single mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2866
|
||||
#: src/mpdevil.py:2904
|
||||
msgid "Consume mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3087
|
||||
#: src/mpdevil.py:3125
|
||||
msgid "Updating Database…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3135
|
||||
#: src/mpdevil.py:3173
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3137
|
||||
#: src/mpdevil.py:3175
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3191
|
||||
#: src/mpdevil.py:3229
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3194 data/ShortcutsWindow.ui:92
|
||||
msgid "Back to current album"
|
||||
#: src/mpdevil.py:3232
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3208
|
||||
#: src/mpdevil.py:3246
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3209
|
||||
#: src/mpdevil.py:3247
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3210
|
||||
#: src/mpdevil.py:3248
|
||||
msgid "About mpdevil"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3212
|
||||
#: src/mpdevil.py:3250
|
||||
msgid "Update Database"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3213
|
||||
#: src/mpdevil.py:3251
|
||||
msgid "Server Stats"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3215
|
||||
#: src/mpdevil.py:3253
|
||||
msgid "Mini Player"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3216
|
||||
#: src/mpdevil.py:3254
|
||||
msgid "Genre Filter"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3225
|
||||
#: src/mpdevil.py:3263
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3399 src/mpdevil.py:3401
|
||||
#: src/mpdevil.py:3437 src/mpdevil.py:3439
|
||||
msgid "connecting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3439
|
||||
#: src/mpdevil.py:3477
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
|
@ -426,38 +419,38 @@ msgstr ""
|
|||
msgid "Toggle search"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:101
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:105
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:119
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr ""
|
||||
|
|
|
@ -2004,23 +2004,23 @@ class AlbumView(Gtk.Box):
|
|||
self._title.set_line_wrap(True) # wrap=True is not working
|
||||
self._duration=Gtk.Label(xalign=1, ellipsize=Pango.EllipsizeMode.END)
|
||||
|
||||
# close button
|
||||
close_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("go-previous-symbolic", Gtk.IconSize.BUTTON), halign=Gtk.Align.START)
|
||||
# event box
|
||||
event_box=Gtk.EventBox()
|
||||
|
||||
# connect
|
||||
self.connect("hide", lambda *args: print("test"))
|
||||
close_button.connect("clicked", lambda *args: self.emit("close"))
|
||||
event_box.connect("button-press-event", self._on_button_press_event)
|
||||
|
||||
# packing
|
||||
event_box.add(self._cover)
|
||||
hbox=Gtk.Box(spacing=12)
|
||||
hbox.pack_end(self.songs_list.buttons, False, False, 0)
|
||||
hbox.pack_end(self._duration, False, False, 0)
|
||||
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, border_width=6)
|
||||
vbox.pack_start(close_button, False, False, 0)
|
||||
vbox.set_center_widget(self._title)
|
||||
vbox.pack_end(hbox, False, False, 0)
|
||||
header=Gtk.Box()
|
||||
header.pack_start(self._cover, False, False, 0)
|
||||
header.pack_start(event_box, False, False, 0)
|
||||
header.pack_start(Gtk.Separator(), False, False, 0)
|
||||
header.pack_start(vbox, True, True, 0)
|
||||
self.pack_start(header, False, False, 0)
|
||||
|
@ -2065,6 +2065,10 @@ class AlbumView(Gtk.Box):
|
|||
size=self._settings.get_int("album-cover")*1.5
|
||||
self._cover.set_from_pixbuf(cover.get_pixbuf(size))
|
||||
|
||||
def _on_button_press_event(self, widget, event):
|
||||
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self.emit("close")
|
||||
|
||||
class Browser(Gtk.Paned):
|
||||
def __init__(self, client, settings):
|
||||
super().__init__()
|
||||
|
@ -2110,9 +2114,14 @@ class Browser(Gtk.Paned):
|
|||
self.pack1(genre_window, False, False)
|
||||
self.pack2(self.paned1, True, False)
|
||||
|
||||
def back_to_current_album(self):
|
||||
self._album_stack.set_visible_child_name("album_list")
|
||||
song=self._client.currentsong()
|
||||
def back(self):
|
||||
if self._album_stack.get_visible_child_name() == "album_view":
|
||||
self._album_stack.set_visible_child_name("album_list")
|
||||
else:
|
||||
if (song:=self._client.currentsong()):
|
||||
self._to_album(song)
|
||||
|
||||
def _to_album(self, song):
|
||||
artist,genre=self._artist_list.get_artist_selected()
|
||||
if genre is None or song["genre"][0] == genre:
|
||||
if artist is None or song["albumartist"][0] == artist:
|
||||
|
@ -2696,6 +2705,8 @@ class SeekBar(Gtk.Box):
|
|||
super().__init__(hexpand=True, margin_start=6, margin_right=6)
|
||||
self._client=client
|
||||
self._update=True
|
||||
self._first_mark=None
|
||||
self._second_mark=None
|
||||
|
||||
# labels
|
||||
attrs=Pango.AttrList()
|
||||
|
@ -2717,13 +2728,16 @@ class SeekBar(Gtk.Box):
|
|||
elapsed_dict={1: Gtk.ScrollType.STEP_BACKWARD, 3: Gtk.ScrollType.STEP_FORWARD}
|
||||
rest_dict={1: Gtk.ScrollType.STEP_FORWARD, 3: Gtk.ScrollType.STEP_BACKWARD}
|
||||
elapsed_event_box.connect("button-release-event", self._on_label_button_release_event, elapsed_dict)
|
||||
elapsed_event_box.connect("button-press-event", self._on_label_button_press_event)
|
||||
rest_event_box.connect("button-release-event", self._on_label_button_release_event, rest_dict)
|
||||
rest_event_box.connect("button-press-event", self._on_label_button_press_event)
|
||||
self._scale.connect("change-value", self._on_change_value)
|
||||
self._scale.connect("scroll-event", lambda *args: True) # disable mouse wheel
|
||||
self._scale.connect("button-press-event", self._on_scale_button_press_event)
|
||||
self._scale.connect("button-release-event", self._on_scale_button_release_event)
|
||||
self._adjustment.connect("notify::value", self._update_labels)
|
||||
self._adjustment.connect("notify::upper", self._update_labels)
|
||||
self._adjustment.connect("notify::upper", self._clear_marks)
|
||||
self._client.emitter.connect("disconnected", self._disable)
|
||||
self._client.emitter.connect("state", self._on_state)
|
||||
self._client.emitter.connect("elapsed", self._refresh)
|
||||
|
@ -2738,6 +2752,10 @@ class SeekBar(Gtk.Box):
|
|||
if duration > 0:
|
||||
self._adjustment.set_upper(duration)
|
||||
if self._update:
|
||||
if self._second_mark is not None:
|
||||
if elapsed > self._second_mark:
|
||||
self._client.seekcur(self._first_mark)
|
||||
return
|
||||
self._scale.set_value(elapsed)
|
||||
self._scale.set_fill_level(elapsed)
|
||||
else:
|
||||
|
@ -2762,6 +2780,12 @@ class SeekBar(Gtk.Box):
|
|||
self.set_sensitive(False)
|
||||
self._scale.set_fill_level(0)
|
||||
self._scale.set_range(0, 0)
|
||||
self._clear_marks()
|
||||
|
||||
def _clear_marks(self, *args):
|
||||
self._first_mark=None
|
||||
self._second_mark=None
|
||||
self._scale.clear_marks()
|
||||
|
||||
def _on_scale_button_press_event(self, widget, event):
|
||||
self._update=False
|
||||
|
@ -2777,6 +2801,22 @@ class SeekBar(Gtk.Box):
|
|||
def _on_label_button_release_event(self, widget, event, scroll_type):
|
||||
self._scale.emit("move-slider", scroll_type.get(event.button, Gtk.ScrollType.NONE))
|
||||
|
||||
def _on_label_button_press_event(self, widget, event):
|
||||
if event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
value=self._scale.get_value()
|
||||
if self._first_mark is None:
|
||||
self._first_mark=value
|
||||
self._scale.add_mark(value, Gtk.PositionType.BOTTOM, None)
|
||||
elif self._second_mark is None:
|
||||
if value < self._first_mark:
|
||||
self._second_mark=self._first_mark
|
||||
self._first_mark=value
|
||||
else:
|
||||
self._second_mark=value
|
||||
self._scale.add_mark(value, Gtk.PositionType.BOTTOM, None)
|
||||
else:
|
||||
self._clear_marks()
|
||||
|
||||
def _on_state(self, emitter, state):
|
||||
if state == "stop":
|
||||
self._disable()
|
||||
|
@ -3153,7 +3193,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||
self._size=None # needed for window size saving
|
||||
|
||||
# actions
|
||||
simple_actions_data=("settings","connection-settings","stats","help","menu","toggle-lyrics","back-to-current-album","toggle-search")
|
||||
simple_actions_data=("settings","connection-settings","stats","help","menu","toggle-lyrics","back","toggle-search")
|
||||
for name in simple_actions_data:
|
||||
action=Gio.SimpleAction.new(name, None)
|
||||
action.connect("activate", getattr(self, ("_on_"+name.replace("-","_"))))
|
||||
|
@ -3189,8 +3229,8 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||
image=icon("system-search-symbolic"), tooltip_text=_("Search"), can_focus=False, no_show_all=True)
|
||||
self._settings.bind("mini-player", self._search_button, "visible", Gio.SettingsBindFlags.INVERT_BOOLEAN|Gio.SettingsBindFlags.GET)
|
||||
back_button=Gtk.Button(
|
||||
image=icon("go-previous-symbolic"), tooltip_text=_("Back to current album"),
|
||||
action_name="win.back-to-current-album", can_focus=False, no_show_all=True)
|
||||
image=icon("go-previous-symbolic"), tooltip_text=_("Back"),
|
||||
action_name="win.back", can_focus=False, no_show_all=True)
|
||||
self._settings.bind("mini-player", back_button, "visible", Gio.SettingsBindFlags.INVERT_BOOLEAN|Gio.SettingsBindFlags.GET)
|
||||
|
||||
# stack
|
||||
|
@ -3318,9 +3358,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||
def _on_toggle_lyrics(self, action, param):
|
||||
self._cover_lyrics_window.lyrics_button.emit("clicked")
|
||||
|
||||
def _on_back_to_current_album(self, action, param):
|
||||
self._search_button.set_active(False)
|
||||
self._browser.back_to_current_album()
|
||||
def _on_back(self, action, param):
|
||||
if self._search_button.get_active():
|
||||
self._search_button.set_active(False)
|
||||
else:
|
||||
self._browser.back()
|
||||
|
||||
def _on_toggle_search(self, action, param):
|
||||
self._search_button.emit("clicked")
|
||||
|
@ -3354,7 +3396,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||
|
||||
def _on_song_changed(self, *args):
|
||||
if (song:=self._client.currentsong()):
|
||||
self.lookup_action("back-to-current-album").set_enabled(True)
|
||||
album=song.get_album_with_date()
|
||||
title=" • ".join(filter(None, (song["title"][0], str(song["artist"]))))
|
||||
if self._use_csd:
|
||||
|
@ -3375,19 +3416,18 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||
else:
|
||||
self.get_application().withdraw_notification("title-change")
|
||||
else:
|
||||
self.lookup_action("back-to-current-album").set_enabled(False)
|
||||
self._clear_title()
|
||||
self.get_application().withdraw_notification("title-change")
|
||||
|
||||
def _on_connected(self, *args):
|
||||
self._clear_title()
|
||||
for action in ("stats","toggle-lyrics","toggle-search"):
|
||||
for action in ("stats","toggle-lyrics","back","toggle-search"):
|
||||
self.lookup_action(action).set_enabled(True)
|
||||
self._search_button.set_sensitive(True)
|
||||
|
||||
def _on_disconnected(self, *args):
|
||||
self._clear_title()
|
||||
for action in ("stats","toggle-lyrics","back-to-current-album","toggle-search"):
|
||||
for action in ("stats","toggle-lyrics","back","toggle-search"):
|
||||
self.lookup_action(action).set_enabled(False)
|
||||
self._search_button.set_active(False)
|
||||
self._search_button.set_sensitive(False)
|
||||
|
@ -3458,11 +3498,12 @@ class mpdevil(Gtk.Application):
|
|||
action_accels=(
|
||||
("app.quit", ["<Control>q"]),("win.mini-player", ["<Control>m"]),("win.help", ["F1"]),("win.menu", ["F10"]),
|
||||
("win.show-help-overlay", ["<Control>question"]),("win.toggle-lyrics", ["<Control>l"]),
|
||||
("win.genre-filter", ["<Control>g"]),("win.back-to-current-album", ["Escape"]),("win.toggle-search", ["<Control>f"]),
|
||||
("win.genre-filter", ["<Control>g"]),("win.back", ["Escape"]),("win.toggle-search", ["<Control>f"]),
|
||||
("mpd.update", ["F5"]),("mpd.clear", ["<Shift>Delete"]),("mpd.toggle-play", ["space"]),("mpd.stop", ["<Shift>space"]),
|
||||
("mpd.next", ["<Alt>Down"]),("mpd.prev", ["<Alt>Up"]),("mpd.repeat", ["<Control>r"]),("mpd.random", ["<Control>n"]),
|
||||
("mpd.single", ["<Control>s"]),("mpd.consume", ["<Control>o"]),("mpd.single-oneshot", ["<Shift><Control>s"]),
|
||||
("mpd.seek-forward", ["<Alt>Right"]),("mpd.seek-backward", ["<Alt>Left"])
|
||||
("mpd.next", ["<Alt>Down", "KP_Add"]),("mpd.prev", ["<Alt>Up", "KP_Subtract"]),("mpd.repeat", ["<Control>r"]),
|
||||
("mpd.random", ["<Control>n"]),("mpd.single", ["<Control>s"]),("mpd.consume", ["<Control>o"]),
|
||||
("mpd.single-oneshot", ["<Shift><Control>s"]),
|
||||
("mpd.seek-forward", ["<Alt>Right", "KP_Multiply"]),("mpd.seek-backward", ["<Alt>Left", "KP_Divide"])
|
||||
)
|
||||
for action, accels in action_accels:
|
||||
self.set_accels_for_action(action, accels)
|
||||
|
|
Loading…
Reference in New Issue