~comcloudway/melon

aba97f01b040ce796c5dbb424d068af542977eaf — Jakob Meier 3 months ago 1838733
Add option to change the playlist thumbnail to context menu

The thumbnail can only be changed to the thumbnail of a video in the
playlist
5 files changed, 115 insertions(+), 94 deletions(-)

M melon/playlist/__init__.py
M po/de.po
M po/fa.po
M po/melon.pot
M po/nl.po
M melon/playlist/__init__.py => melon/playlist/__init__.py +7 -2
@@ 11,8 11,9 @@ from melon.servers import Preference, PreferenceType
from melon.widgets.iconbutton import IconButton
from melon.widgets.feeditem import AdaptiveFeedItem
from melon.widgets.simpledialog import SimpleDialog
from melon.models import get_app_settings, get_local_playlist, PlaylistWrapper, ensure_playlist, ensure_delete_local_playlist
from melon.models import get_app_settings, get_local_playlist, PlaylistWrapper, ensure_playlist, ensure_delete_local_playlist, set_local_playlist_thumbnail
from melon.models import is_server_enabled, ensure_server_disabled, ensure_server_enabled, register_callback
from melon.utils import pass_me

class LocalPlaylistScreen(Adw.NavigationPage):
    def __init__(self, playlist_id, *args, **kwargs):


@@ 81,7 82,11 @@ class LocalPlaylistScreen(Adw.NavigationPage):
            self.box.add(group)
            # add playlist content to group as well
            for entry in playlist.content:
                group.add(AdaptiveFeedItem(entry))
                item = AdaptiveFeedItem(entry)
                item.menuitems = [
                        (_("Set as playlist thumbnail"), pass_me(lambda pid, thumb: set_local_playlist_thumbnail(pid, thumb), self.playlist_id, entry.thumbnail))
                ]
                group.add(item)

        self.scrollview.set_child(self.box)
        self.wrapper.set_child(self.scrollview)

M po/de.po => po/de.po +27 -23
@@ 7,7 7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Melon 0.1.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-12 20:14+0200\n"
"POT-Creation-Date: 2024-06-12 20:38+0200\n"
"PO-Revision-Date: 2024-04-20 14:18+0000\n"
"Last-Translator: hurzelchen <hurzelchen@users.noreply.translate.codeberg."
"org>\n"


@@ 92,7 92,7 @@ msgstr ""
#: ../melon/home/playlists.py:21 ../melon/home/subs.py:20
#: ../melon/importer.py:61 ../melon/player/__init__.py:102
#: ../melon/player/playlist.py:158 ../melon/player/playlist.py:165
#: ../melon/playlist/__init__.py:60
#: ../melon/playlist/__init__.py:61
msgid "*crickets chirping*"
msgstr "*Grillen zirpen*"



@@ 142,7 142,7 @@ msgstr ""
msgid "Channel"
msgstr "Kanal"

#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:52
#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:53
msgid "Start playing"
msgstr "Wiedergeben"



@@ 431,89 431,93 @@ msgstr ""
msgid "Click on videos to continue playing the playlist from there"
msgstr "Klicke auf ein Video, um die Wiedergabeliste von dort fortzusetzen"

#: ../melon/playlist/__init__.py:49
#: ../melon/playlist/__init__.py:50
msgid "Edit"
msgstr "Bearbeiten"

#: ../melon/playlist/__init__.py:61
#: ../melon/playlist/__init__.py:62
msgid "You haven't added any videos to this playlist yet"
msgstr "Du hast noch keine Videos zu dieser Wiedergabeliste hinzugefügt"

#: ../melon/playlist/__init__.py:63
#: ../melon/playlist/__init__.py:64
msgid "Start watching"
msgstr "Videos anschauen"

#: ../melon/playlist/__init__.py:93
#: ../melon/playlist/__init__.py:87
msgid "Set as playlist thumbnail"
msgstr ""

#: ../melon/playlist/__init__.py:98
msgid "Edit Playlist"
msgstr "Wiedergabeliste bearbeiten"

#: ../melon/playlist/__init__.py:99
#: ../melon/playlist/__init__.py:104
msgid "Playlist details"
msgstr "Wiedergabelistendetails"

#: ../melon/playlist/__init__.py:100
#: ../melon/playlist/__init__.py:105
msgid "Change playlist information"
msgstr "Wiedergabelistendetails ändern"

#: ../melon/playlist/__init__.py:102 ../melon/playlist/create.py:37
#: ../melon/playlist/__init__.py:107 ../melon/playlist/create.py:37
msgid "Playlist name"
msgstr "Name der Wiedergabeliste"

#: ../melon/playlist/__init__.py:105 ../melon/playlist/create.py:40
#: ../melon/playlist/__init__.py:110 ../melon/playlist/create.py:40
msgid "Playlist description"
msgstr "Beschreibung der Wiedergabeliste"

#: ../melon/playlist/__init__.py:110
#: ../melon/playlist/__init__.py:115
msgid "Save details"
msgstr "Details speichern"

#: ../melon/playlist/__init__.py:111
#: ../melon/playlist/__init__.py:116
msgid "Change playlist title and description. (Closes the dialog)"
msgstr ""
"Titel und Beschreibung der Wiedergabeliste ändern. (Schließt den Dialog)"

#: ../melon/playlist/__init__.py:121 ../melon/playlist/__init__.py:163
#: ../melon/playlist/__init__.py:126 ../melon/playlist/__init__.py:168
msgid "Delete Playlist"
msgstr "Wiedergabeliste löschen"

#: ../melon/playlist/__init__.py:122
#: ../melon/playlist/__init__.py:127
msgid "Delete this playlist and it's content. This can NOT be undone."
msgstr ""
"Diese Wiedergabeliste und ihren Inhalt löschen. Diese Aktion kann nicht "
"rückgängig gemacht werden."

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close"
msgstr "Schließen"

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close without changing anything"
msgstr ""

#: ../melon/playlist/__init__.py:166
#: ../melon/playlist/__init__.py:171
msgid "Do you really want to delete this playlist?"
msgstr "Möchtest du diese Wiedergabeliste wirklich löschen?"

#: ../melon/playlist/__init__.py:167
#: ../melon/playlist/__init__.py:172
msgid "This cannot be undone"
msgstr "Dies kann nicht rückgängig gemacht werden"

#: ../melon/playlist/__init__.py:171 ../melon/playlist/create.py:47
#: ../melon/playlist/__init__.py:176 ../melon/playlist/create.py:47
#: ../melon/playlist/pick.py:70 ../melon/widgets/preferencerow.py:175
#: ../melon/widgets/preferencerow.py:218
msgid "Cancel"
msgstr "Abbruch"

#: ../melon/playlist/__init__.py:171
#: ../melon/playlist/__init__.py:176
msgid "Do not delete the playlist"
msgstr "Wiedergabeliste nicht löschen"

#: ../melon/playlist/__init__.py:172 ../melon/widgets/preferencerow.py:207
#: ../melon/playlist/__init__.py:177 ../melon/widgets/preferencerow.py:207
#: ../melon/widgets/preferencerow.py:219
msgid "Delete"
msgstr "Löschen"

#: ../melon/playlist/__init__.py:172
#: ../melon/playlist/__init__.py:177
msgid "Delete this playlist"
msgstr "Diese Wiedergabeliste löschen"


M po/fa.po => po/fa.po +27 -23
@@ 7,7 7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Melon 0.1.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-12 20:14+0200\n"
"POT-Creation-Date: 2024-06-12 20:38+0200\n"
"PO-Revision-Date: 2024-05-30 09:18+0000\n"
"Last-Translator: sohrabbehdani <sohrabbehdani@users.noreply.translate."
"codeberg.org>\n"


@@ 98,7 98,7 @@ msgstr ""
#: ../melon/home/playlists.py:21 ../melon/home/subs.py:20
#: ../melon/importer.py:61 ../melon/player/__init__.py:102
#: ../melon/player/playlist.py:158 ../melon/player/playlist.py:165
#: ../melon/playlist/__init__.py:60
#: ../melon/playlist/__init__.py:61
#, fuzzy
msgid "*crickets chirping*"
msgstr "*جیرجیرک جیرجیرک*"


@@ 148,7 148,7 @@ msgstr ""
msgid "Channel"
msgstr "کانال"

#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:52
#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:53
msgid "Start playing"
msgstr "شروع به پخش کردن"



@@ 431,86 431,90 @@ msgstr "محتوای سیاههٔ‌پخش"
msgid "Click on videos to continue playing the playlist from there"
msgstr "بر روی ویدئو ضربه بزنید تا پخش از لیست پخش از آن ویدئو ادامه پیدا کند."

#: ../melon/playlist/__init__.py:49
#: ../melon/playlist/__init__.py:50
msgid "Edit"
msgstr "ویرایش"

#: ../melon/playlist/__init__.py:61
#: ../melon/playlist/__init__.py:62
msgid "You haven't added any videos to this playlist yet"
msgstr ""

#: ../melon/playlist/__init__.py:63
#: ../melon/playlist/__init__.py:64
msgid "Start watching"
msgstr "شروع به تماشا کنید"

#: ../melon/playlist/__init__.py:93
#: ../melon/playlist/__init__.py:87
msgid "Set as playlist thumbnail"
msgstr ""

#: ../melon/playlist/__init__.py:98
msgid "Edit Playlist"
msgstr "حذف لیست‌پخش"

#: ../melon/playlist/__init__.py:99
#: ../melon/playlist/__init__.py:104
msgid "Playlist details"
msgstr "جزئیات لیست‌پخش"

#: ../melon/playlist/__init__.py:100
#: ../melon/playlist/__init__.py:105
msgid "Change playlist information"
msgstr "تغییر اطلاعات لیست پخش"

#: ../melon/playlist/__init__.py:102 ../melon/playlist/create.py:37
#: ../melon/playlist/__init__.py:107 ../melon/playlist/create.py:37
msgid "Playlist name"
msgstr "نام لیست‌پخش"

#: ../melon/playlist/__init__.py:105 ../melon/playlist/create.py:40
#: ../melon/playlist/__init__.py:110 ../melon/playlist/create.py:40
msgid "Playlist description"
msgstr "اطلاعات سیاههٔ پخش"

#: ../melon/playlist/__init__.py:110
#: ../melon/playlist/__init__.py:115
msgid "Save details"
msgstr "ذخیره جزئیات"

#: ../melon/playlist/__init__.py:111
#: ../melon/playlist/__init__.py:116
msgid "Change playlist title and description. (Closes the dialog)"
msgstr "تغییر عنوان و توضیحات لیست پخش (این پنجره بسته می شود)"

#: ../melon/playlist/__init__.py:121 ../melon/playlist/__init__.py:163
#: ../melon/playlist/__init__.py:126 ../melon/playlist/__init__.py:168
msgid "Delete Playlist"
msgstr "حذف لیست پخش"

#: ../melon/playlist/__init__.py:122
#: ../melon/playlist/__init__.py:127
msgid "Delete this playlist and it's content. This can NOT be undone."
msgstr "این عملیات این لیست‌پخش و محتویات آن را حذف می‌کند و قابل بازگشت نیست."

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close"
msgstr "بستن"

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close without changing anything"
msgstr "بستن بدون تغییر دادن چیزی"

#: ../melon/playlist/__init__.py:166
#: ../melon/playlist/__init__.py:171
msgid "Do you really want to delete this playlist?"
msgstr "آیا از حذف این لیست‌پخش اطمینان دارید؟"

#: ../melon/playlist/__init__.py:167
#: ../melon/playlist/__init__.py:172
msgid "This cannot be undone"
msgstr ""

#: ../melon/playlist/__init__.py:171 ../melon/playlist/create.py:47
#: ../melon/playlist/__init__.py:176 ../melon/playlist/create.py:47
#: ../melon/playlist/pick.py:70 ../melon/widgets/preferencerow.py:175
#: ../melon/widgets/preferencerow.py:218
msgid "Cancel"
msgstr "لغو"

#: ../melon/playlist/__init__.py:171
#: ../melon/playlist/__init__.py:176
msgid "Do not delete the playlist"
msgstr "لیست‌پخش را حذف نکن."

#: ../melon/playlist/__init__.py:172 ../melon/widgets/preferencerow.py:207
#: ../melon/playlist/__init__.py:177 ../melon/widgets/preferencerow.py:207
#: ../melon/widgets/preferencerow.py:219
msgid "Delete"
msgstr "حذف"

#: ../melon/playlist/__init__.py:172
#: ../melon/playlist/__init__.py:177
msgid "Delete this playlist"
msgstr "حذف این لیست‌پخش"


M po/melon.pot => po/melon.pot +27 -23
@@ 8,7 8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Melon 0.2.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-12 20:14+0200\n"
"POT-Creation-Date: 2024-06-12 20:38+0200\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"


@@ 85,7 85,7 @@ msgstr ""
#: ../melon/home/playlists.py:21 ../melon/home/subs.py:20
#: ../melon/importer.py:61 ../melon/player/__init__.py:102
#: ../melon/player/playlist.py:158 ../melon/player/playlist.py:165
#: ../melon/playlist/__init__.py:60
#: ../melon/playlist/__init__.py:61
msgid "*crickets chirping*"
msgstr ""



@@ 134,7 134,7 @@ msgstr ""
msgid "Channel"
msgstr ""

#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:52
#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:53
msgid "Start playing"
msgstr ""



@@ 416,86 416,90 @@ msgstr ""
msgid "Click on videos to continue playing the playlist from there"
msgstr ""

#: ../melon/playlist/__init__.py:49
#: ../melon/playlist/__init__.py:50
msgid "Edit"
msgstr ""

#: ../melon/playlist/__init__.py:61
#: ../melon/playlist/__init__.py:62
msgid "You haven't added any videos to this playlist yet"
msgstr ""

#: ../melon/playlist/__init__.py:63
#: ../melon/playlist/__init__.py:64
msgid "Start watching"
msgstr ""

#: ../melon/playlist/__init__.py:93
#: ../melon/playlist/__init__.py:87
msgid "Set as playlist thumbnail"
msgstr ""

#: ../melon/playlist/__init__.py:98
msgid "Edit Playlist"
msgstr ""

#: ../melon/playlist/__init__.py:99
#: ../melon/playlist/__init__.py:104
msgid "Playlist details"
msgstr ""

#: ../melon/playlist/__init__.py:100
#: ../melon/playlist/__init__.py:105
msgid "Change playlist information"
msgstr ""

#: ../melon/playlist/__init__.py:102 ../melon/playlist/create.py:37
#: ../melon/playlist/__init__.py:107 ../melon/playlist/create.py:37
msgid "Playlist name"
msgstr ""

#: ../melon/playlist/__init__.py:105 ../melon/playlist/create.py:40
#: ../melon/playlist/__init__.py:110 ../melon/playlist/create.py:40
msgid "Playlist description"
msgstr ""

#: ../melon/playlist/__init__.py:110
#: ../melon/playlist/__init__.py:115
msgid "Save details"
msgstr ""

#: ../melon/playlist/__init__.py:111
#: ../melon/playlist/__init__.py:116
msgid "Change playlist title and description. (Closes the dialog)"
msgstr ""

#: ../melon/playlist/__init__.py:121 ../melon/playlist/__init__.py:163
#: ../melon/playlist/__init__.py:126 ../melon/playlist/__init__.py:168
msgid "Delete Playlist"
msgstr ""

#: ../melon/playlist/__init__.py:122
#: ../melon/playlist/__init__.py:127
msgid "Delete this playlist and it's content. This can NOT be undone."
msgstr ""

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close"
msgstr ""

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close without changing anything"
msgstr ""

#: ../melon/playlist/__init__.py:166
#: ../melon/playlist/__init__.py:171
msgid "Do you really want to delete this playlist?"
msgstr ""

#: ../melon/playlist/__init__.py:167
#: ../melon/playlist/__init__.py:172
msgid "This cannot be undone"
msgstr ""

#: ../melon/playlist/__init__.py:171 ../melon/playlist/create.py:47
#: ../melon/playlist/__init__.py:176 ../melon/playlist/create.py:47
#: ../melon/playlist/pick.py:70 ../melon/widgets/preferencerow.py:175
#: ../melon/widgets/preferencerow.py:218
msgid "Cancel"
msgstr ""

#: ../melon/playlist/__init__.py:171
#: ../melon/playlist/__init__.py:176
msgid "Do not delete the playlist"
msgstr ""

#: ../melon/playlist/__init__.py:172 ../melon/widgets/preferencerow.py:207
#: ../melon/playlist/__init__.py:177 ../melon/widgets/preferencerow.py:207
#: ../melon/widgets/preferencerow.py:219
msgid "Delete"
msgstr ""

#: ../melon/playlist/__init__.py:172
#: ../melon/playlist/__init__.py:177
msgid "Delete this playlist"
msgstr ""


M po/nl.po => po/nl.po +27 -23
@@ 7,7 7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Melon 0.2.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-12 20:14+0200\n"
"POT-Creation-Date: 2024-06-12 20:38+0200\n"
"PO-Revision-Date: 2024-04-23 12:18+0000\n"
"Last-Translator: Vistaus <Vistaus@users.noreply.translate.codeberg.org>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/melon/melon-"


@@ 98,7 98,7 @@ msgstr ""
#: ../melon/home/playlists.py:21 ../melon/home/subs.py:20
#: ../melon/importer.py:61 ../melon/player/__init__.py:102
#: ../melon/player/playlist.py:158 ../melon/player/playlist.py:165
#: ../melon/playlist/__init__.py:60
#: ../melon/playlist/__init__.py:61
msgid "*crickets chirping*"
msgstr "*tsjilpende krekels*"



@@ 147,7 147,7 @@ msgstr "Dit kanaal beschikt over meerdere tijdlijnen - kies er een"
msgid "Channel"
msgstr "Kanaal"

#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:52
#: ../melon/browse/playlist.py:37 ../melon/playlist/__init__.py:53
msgid "Start playing"
msgstr "Afspelen starten"



@@ 433,89 433,93 @@ msgstr "Afspeellijstinhoud"
msgid "Click on videos to continue playing the playlist from there"
msgstr "Klik op video's om het afspelen vanaf daar te hervatten"

#: ../melon/playlist/__init__.py:49
#: ../melon/playlist/__init__.py:50
msgid "Edit"
msgstr "Bewerken"

#: ../melon/playlist/__init__.py:61
#: ../melon/playlist/__init__.py:62
msgid "You haven't added any videos to this playlist yet"
msgstr "Deze afspeellijst bevat nog geen video's"

#: ../melon/playlist/__init__.py:63
#: ../melon/playlist/__init__.py:64
msgid "Start watching"
msgstr "Beginnen met kijken"

#: ../melon/playlist/__init__.py:93
#: ../melon/playlist/__init__.py:87
msgid "Set as playlist thumbnail"
msgstr ""

#: ../melon/playlist/__init__.py:98
msgid "Edit Playlist"
msgstr "Afspeellijst bewerken"

#: ../melon/playlist/__init__.py:99
#: ../melon/playlist/__init__.py:104
msgid "Playlist details"
msgstr "Afspeellijstinformatie"

#: ../melon/playlist/__init__.py:100
#: ../melon/playlist/__init__.py:105
msgid "Change playlist information"
msgstr "Afspeellijstinformatie wijzigen"

#: ../melon/playlist/__init__.py:102 ../melon/playlist/create.py:37
#: ../melon/playlist/__init__.py:107 ../melon/playlist/create.py:37
msgid "Playlist name"
msgstr "Afspeellijstnaam"

#: ../melon/playlist/__init__.py:105 ../melon/playlist/create.py:40
#: ../melon/playlist/__init__.py:110 ../melon/playlist/create.py:40
msgid "Playlist description"
msgstr "Afspeellijstbeschrijving"

#: ../melon/playlist/__init__.py:110
#: ../melon/playlist/__init__.py:115
msgid "Save details"
msgstr "Informatie opslaan"

#: ../melon/playlist/__init__.py:111
#: ../melon/playlist/__init__.py:116
msgid "Change playlist title and description. (Closes the dialog)"
msgstr ""
"Wijzig de afspeellijsttitel en -beschrijving (het venster wordt gesloten)"

#: ../melon/playlist/__init__.py:121 ../melon/playlist/__init__.py:163
#: ../melon/playlist/__init__.py:126 ../melon/playlist/__init__.py:168
msgid "Delete Playlist"
msgstr "Afspeellijst verwijderen"

#: ../melon/playlist/__init__.py:122
#: ../melon/playlist/__init__.py:127
msgid "Delete this playlist and it's content. This can NOT be undone."
msgstr ""
"Verwijder deze afspeellijst en alle bijbehorende inhoud. Let op: dit is "
"onomkeerbaar."

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close"
msgstr "Sluiten"

#: ../melon/playlist/__init__.py:133
#: ../melon/playlist/__init__.py:138
msgid "Close without changing anything"
msgstr "Sluiten zonder opslaan"

#: ../melon/playlist/__init__.py:166
#: ../melon/playlist/__init__.py:171
msgid "Do you really want to delete this playlist?"
msgstr "Weet u zeker dat u deze afspeellijst wilt verwijderen?"

#: ../melon/playlist/__init__.py:167
#: ../melon/playlist/__init__.py:172
msgid "This cannot be undone"
msgstr "Dit is onomkeerbaar"

#: ../melon/playlist/__init__.py:171 ../melon/playlist/create.py:47
#: ../melon/playlist/__init__.py:176 ../melon/playlist/create.py:47
#: ../melon/playlist/pick.py:70 ../melon/widgets/preferencerow.py:175
#: ../melon/widgets/preferencerow.py:218
msgid "Cancel"
msgstr "Annuleren"

#: ../melon/playlist/__init__.py:171
#: ../melon/playlist/__init__.py:176
msgid "Do not delete the playlist"
msgstr "Afspeellijst niet verwijderen"

#: ../melon/playlist/__init__.py:172 ../melon/widgets/preferencerow.py:207
#: ../melon/playlist/__init__.py:177 ../melon/widgets/preferencerow.py:207
#: ../melon/widgets/preferencerow.py:219
msgid "Delete"
msgstr "Verwijderen"

#: ../melon/playlist/__init__.py:172
#: ../melon/playlist/__init__.py:177
msgid "Delete this playlist"
msgstr "Afspeellijst verwijderen"