Compare commits

..
38 changed files with 1127 additions and 571 deletions

No files matched your search

+7 -2
View File
@@ -4,8 +4,13 @@
cmake_minimum_required(VERSION 3.16.0)
set(PROJECT_VERSION "23.01")
project(audiotube VERSION ${PROJECT_VERSION})
# KDE Applications version, managed by release script.
set(RELEASE_SERVICE_VERSION_MAJOR "23")
set(RELEASE_SERVICE_VERSION_MINOR "03")
set(RELEASE_SERVICE_VERSION_MICRO "70")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(audiotube VERSION ${RELEASE_SERVICE_VERSION})
include(FeatureSummary)
+6 -7
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"PO-Revision-Date: 2023-01-23 20:15+0400\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-02-02 11:59+0400\n"
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
"Language-Team: ar\n"
"Language: ar\n"
@@ -207,16 +207,15 @@ msgstr "قوائم التّشغيل"
msgid "Unknown"
msgstr "مجهول"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "لا يوجد تطابق من البحوث الأخيرة"
#: contents/ui/SearchWithDropdown.qml:320
#, fuzzy, kde-format
#| msgid "Remove from History"
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "أزل من التّاريخ"
msgstr "أزل من تاريخ البحث"
#: contents/ui/Sidebar.qml:179
#, kde-format
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
"Last-Translator: Kheyyam <[email protected]>\n"
"Language-Team: Azerbaijani <[email protected]>\n"
@@ -211,12 +211,12 @@ msgstr "Mahnı siyahıları"
msgid "Unknown"
msgstr "Bilinməyən"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 10:54+0100\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
@@ -211,12 +211,12 @@ msgstr "Llistes de reproducció"
msgid "Unknown"
msgstr "Desconeguda"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "No hi ha cerques anteriors coincidents"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "elimina de l'historial de cerques"
+6 -7
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"PO-Revision-Date: 2023-01-22 10:30+0100\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 10:54+0100\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca@valencia\n"
@@ -211,16 +211,15 @@ msgstr "Llistes de reproducció"
msgid "Unknown"
msgstr "Desconeguda"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "No hi ha busques anteriors coincidents"
#: contents/ui/SearchWithDropdown.qml:320
#, fuzzy, kde-format
#| msgid "Remove from History"
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "Elimina de l'historial"
msgstr "elimina de l'historial de busques"
#: contents/ui/Sidebar.qml:179
#, kde-format
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-06-28 13:58+0200\n"
"Last-Translator: Vit Pelcak <[email protected]>\n"
"Language-Team: Czech <[email protected]>\n"
@@ -208,12 +208,12 @@ msgstr "Seznamy skladeb"
msgid "Unknown"
msgstr "Neznámý"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-14 23:47+0100\n"
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
@@ -210,12 +210,12 @@ msgstr "Wiedergabelisten"
msgid "Unknown"
msgstr "Unbekannt"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-12-31 15:53+0000\n"
"Last-Translator: Steve Allewell <[email protected]>\n"
"Language-Team: English <[email protected]>\n"
@@ -208,13 +208,13 @@ msgstr "Playlists"
msgid "Unknown"
msgstr "Unknown"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, fuzzy, kde-format
#| msgid "Previous Searches:"
msgid "No matching previous searches"
msgstr "Previous Searches:"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+6 -7
View File
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"PO-Revision-Date: 2023-01-23 02:38+0100\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-29 00:58+0100\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
"Language: es\n"
@@ -210,16 +210,15 @@ msgstr "Listas de reproducción"
msgid "Unknown"
msgstr "Desconocido"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "No hay búsquedas anteriores coincidentes"
#: contents/ui/SearchWithDropdown.qml:320
#, fuzzy, kde-format
#| msgid "Remove from History"
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "Eliminar del historial"
msgstr "eliminar del historial de búsqueda"
#: contents/ui/Sidebar.qml:179
#, kde-format
+3 -3
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 21:02+0100\n"
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
"Language-Team: Basque <[email protected]>\n"
@@ -211,12 +211,12 @@ msgstr "Jotze-zerrendak"
msgid "Unknown"
msgstr "Ezezaguna"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Ez dago bat datorren aurreko bilaketarik"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "Kendu bilaketa-historiatik"
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-10-24 07:57+0300\n"
"Last-Translator: Tommi Nieminen <[email protected]>\n"
"Language-Team: Finnish <[email protected]>\n"
@@ -210,12 +210,12 @@ msgstr "Soittolistat"
msgid "Unknown"
msgstr "Tuntematon"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+6 -7
View File
@@ -4,8 +4,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"PO-Revision-Date: 2023-01-23 16:33+0100\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-29 10:52+0100\n"
"Last-Translator: Xavier BESNARD <xavier.besnard]neuf.fr>\n"
"Language-Team: fr\n"
"Language: fr\n"
@@ -206,16 +206,15 @@ msgstr "Listes de lecture"
msgid "Unknown"
msgstr "Inconnu"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Aucune correspondance avec les recherches précédentes"
#: contents/ui/SearchWithDropdown.qml:320
#, fuzzy, kde-format
#| msgid "Remove from History"
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "Supprimer de l'historique"
msgstr "supprimer de l'historique de recherche"
#: contents/ui/Sidebar.qml:179
#, kde-format
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
"Language-Team: kde-hindi\n"
@@ -210,12 +210,12 @@ msgstr "गीत-सूचीयाँ"
msgid "Unknown"
msgstr "अज्ञात"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-13 08:23+0700\n"
"Last-Translator: Linerly <[email protected]>\n"
"Language-Team: Indonesian <[email protected]>\n"
@@ -208,12 +208,12 @@ msgstr "Daftar Putar"
msgid "Unknown"
msgstr "Tidak diketahui"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+5 -5
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"PO-Revision-Date: 2023-01-22 19:36+0100\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 19:12+0100\n"
"Last-Translator: Vincenzo Reale <[email protected]>\n"
"Language-Team: Italian <[email protected]>\n"
"Language: it\n"
@@ -208,15 +208,15 @@ msgstr "Scalette"
msgid "Unknown"
msgstr "Sconosciuto"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Nessuna ricerca precedente corrispondente"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
msgstr "rimuovi dalla cronologia delle ricerche"
#: contents/ui/Sidebar.qml:179
#, kde-format
+3 -3
View File
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2021-05-29 19:15-0700\n"
"Last-Translator: Japanese KDE translation team <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n"
@@ -203,12 +203,12 @@ msgstr ""
msgid "Unknown"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 08:44+0100\n"
"Last-Translator: Temuri Doghonadze <[email protected]>\n"
"Language-Team: Georgian <[email protected]>\n"
@@ -208,12 +208,12 @@ msgstr "დასაკრავი სიები"
msgid "Unknown"
msgstr "უცნობი"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "წინა ძებნებს არ ემთხვევა"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "ძებნის ისტორიიდან წაშლა"
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-10-03 14:20+0200\n"
"Last-Translator: Shinjo Park <[email protected]>\n"
"Language-Team: Korean <[email protected]>\n"
@@ -209,12 +209,12 @@ msgstr "재생 목록"
msgid "Unknown"
msgstr "알 수 없음"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 12:41+0100\n"
"Last-Translator: Freek de Kruijf <[email protected]>\n"
"Language-Team: \n"
@@ -208,12 +208,12 @@ msgstr "Afspeellijsten"
msgid "Unknown"
msgstr "Onbekend"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Geen overeenkomende vorige zoekopdrachten"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "uit zoekgeschiedenis verwijderen"
+7 -2
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-25 01:00+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-15 12:33+0100\n"
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
@@ -209,11 +209,16 @@ msgstr "Spelelister"
msgid "Unknown"
msgstr "Ukjend"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/Sidebar.qml:179
#, kde-format
msgid "Collapse Sidebar"
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-01-01 09:11-0800\n"
"Last-Translator: A S Alam <[email protected]>\n"
"Language-Team: Punjabi <[email protected]>\n"
@@ -209,12 +209,12 @@ msgstr "ਪਲੇਅਲਿਸਟਾਂ"
msgid "Unknown"
msgstr "ਅਣਪਛਾਤਾ"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-10-18 18:06+0200\n"
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
@@ -213,12 +213,12 @@ msgstr "Listy odtwarzania"
msgid "Unknown"
msgstr "Nieznany"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-22 23:00+0000\n"
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
@@ -210,12 +210,12 @@ msgstr "Listas de Reprodução"
msgid "Unknown"
msgstr "Desconhecido"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Sem pesquisas anteriores correspondentes"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, fuzzy, kde-format
#| msgid "Remove from History"
msgid "remove from search history"
+3 -3
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-12-20 10:48-0300\n"
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
@@ -210,12 +210,12 @@ msgstr "Listas de músicas"
msgid "Unknown"
msgstr "Desconhecido"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-28 13:37+0300\n"
"Last-Translator: Alexander Yavorsky <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
@@ -208,12 +208,12 @@ msgstr "Списки воспроизведения"
msgid "Unknown"
msgstr "Неизвестный тип"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Не найдено соответствующих предыдущих поисковых запросов"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-04-07 18:01+0200\n"
"Last-Translator: Roman Paholik <[email protected]>\n"
"Language-Team: Slovak <[email protected]>\n"
@@ -207,12 +207,12 @@ msgstr "Zoznamy skladieb"
msgid "Unknown"
msgstr "Neznáme"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-28 09:50+0100\n"
"Last-Translator: Matjaž Jeran <[email protected]>\n"
"Language-Team: Slovenian <[email protected]>\n"
@@ -207,12 +207,12 @@ msgstr "Seznami predvajanja"
msgid "Unknown"
msgstr "Neznano"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Ni zadetkov iz prejšnjih iskanj"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "odstrani iz zgodovine iskanj"
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-09-24 14:57+0200\n"
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n"
@@ -209,12 +209,12 @@ msgstr "Spellistor"
msgid "Unknown"
msgstr "Okänd"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 18:30+0300\n"
"Last-Translator: Emir SARI <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
@@ -208,12 +208,12 @@ msgstr "Çalma Listeleri"
msgid "Unknown"
msgstr "Bilinmiyor"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Eşleşen daha önceden yapılmış arama yok"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "arama geçmişinden kaldır"
+3 -3
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-27 10:54+0200\n"
"Last-Translator: Fracture dept <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
@@ -209,12 +209,12 @@ msgstr "Списки відтворення"
msgid "Unknown"
msgstr "Невідомий"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr "Немає відповідних попередніх пошуків"
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr "вилучити з журналу пошуку"
+3 -3
View File
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2023-01-12 10:32\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -206,12 +206,12 @@ msgstr "播放列表"
msgid "Unknown"
msgstr "未知"
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
+3 -3
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-01-27 01:01+0000\n"
"POT-Creation-Date: 2023-01-30 01:00+0000\n"
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -207,12 +207,12 @@ msgstr ""
msgid "Unknown"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:285
#: contents/ui/SearchWithDropdown.qml:287
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:320
#: contents/ui/SearchWithDropdown.qml:322
#, kde-format
msgid "remove from search history"
msgstr ""
File diff suppressed because it is too large. Load diff
+156 -76
View File
@@ -22,14 +22,12 @@ Item {
required property var info // VideoInfoExtractor object
required property var audio // Audio object
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 40
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 50
signal requestOpen()
Rectangle {
id: miniProgressBar
z: 1
visible: !root.isWidescreen
anchors.top: parent.top
anchors.left: parent.left
height: root.progressBarHeight
@@ -38,14 +36,14 @@ Item {
}
RowLayout {
width: !isWidescreen? root.width- controlButtonBox.width: root.width
anchors.fill: parent
spacing: 0
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.maximumWidth: Kirigami.Units.gridUnit * 20
Layout.preferredWidth: Kirigami.Units.gridUnit * 20
color: Qt.rgba(0, 0, 0, trackClick.containsMouse ? 0.1 : trackClick.pressed ? 0.3 : 0)
RowLayout {
@@ -78,10 +76,12 @@ Item {
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
}
}
// track information
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
@@ -92,6 +92,7 @@ Item {
wrapMode: Text.Wrap
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Layout.fillWidth: true
Layout.maximumWidth: Kirigami.Units.gridUnit * 15
horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
maximumLineCount: 1
@@ -112,14 +113,16 @@ Item {
horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
maximumLineCount: 1
Layout.maximumWidth: Kirigami.Units.gridUnit * 15
// Hardcoded because the footerbar blur always makes a dark-ish
// background, so we don't want to use a color scheme color that
// might also be dark
color: "white"
}
}
Item{Layout.fillWidth: true}
}
MouseArea {
id: trackClick
anchors.fill: parent
@@ -127,85 +130,162 @@ Item {
onClicked: root.requestOpen()
}
}
RowLayout {
visible: root.isWidescreen
Layout.preferredWidth: 0
Layout.fillHeight: true
Layout.fillWidth: true
Layout.leftMargin: Kirigami.Units.largeSpacing
Layout.rightMargin: Kirigami.Units.largeSpacing
spacing: Kirigami.Units.smallSpacing
Label {
Layout.alignment: Qt.AlignVCenter
color: "white"
visible: info.title
text: PlayerUtils.formatTimestamp(audio.position)
}
}
Slider {
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
from: 0
to: audio.duration
value: audio.position
enabled: audio.seekable
onMoved: {
console.log("Value:", value);
audio.seek(Math.floor(value));
}
RowLayout {
id: controlButtonBox
anchors.centerIn: isWidescreen? root:null
anchors.right: !isWidescreen? root.right:null
Layout.fillHeight: true
spacing: 2
Behavior on value {
NumberAnimation {
duration: 1000
}
}
}
Label {
Layout.alignment: Qt.AlignVCenter
color: "white"
visible: info.title
text: PlayerUtils.formatTimestamp(audio.duration)
}
Label {
color: "white"
visible: info.title && root.isWidescreen
text: PlayerUtils.formatTimestamp(audio.position)
Layout.rightMargin: 20
}
ToolButton {
id: playPauseButton
Layout.preferredHeight: Kirigami.Units.gridUnit * 3
Layout.maximumWidth: height
Layout.preferredWidth: height
enabled: info.audioUrl != ""
onClicked: audio.playbackState === Audio.PlayingState ? audio.pause() : audio.play()
icon.name: audio.playbackState === Audio.PlayingState ? "media-playback-pause" : "media-playback-start"
icon.width: Kirigami.Units.gridUnit
icon.height: Kirigami.Units.gridUnit
icon.color: "white"
Button {
id: skipBackwardButton
height: 40
width: 40
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
enabled: UserPlaylistModel.canSkipBack
onClicked: UserPlaylistModel.previous()
contentItem: Item{
Kirigami.Icon {
anchors.centerIn:parent
source:"media-skip-backward"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
background: Kirigami.ShadowedRectangle{
corners.topLeftRadius: 7
corners.bottomLeftRadius: 7
color: if (isWidescreen){
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
"transparent"
}
}
}
}
ToolButton {
Button {
id: playPauseButton
height: 40
width: 60
onClicked: audio.playbackState === Audio.PlayingState ? audio.pause() : audio.play()
contentItem: Item{
Kirigami.Icon {
anchors.centerIn:parent
source: audio.playbackState === Audio.PlayingState ? "media-playback-pause" : "media-playback-start"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
background: Kirigami.ShadowedRectangle{
color: if (isWidescreen){
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
"transparent"
}
}
}
}
Button {
id: skipForwardButton
Layout.rightMargin: Math.floor(Kirigami.Units.smallSpacing / 2)
Layout.preferredHeight: Kirigami.Units.gridUnit * 3
Layout.maximumWidth: height
Layout.preferredWidth: height
height: 40
width: 40
Layout.rightMargin:isWidescreen?0:10
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
enabled: UserPlaylistModel.canSkip
onClicked: UserPlaylistModel.next()
icon.name: "media-skip-forward"
icon.width: Kirigami.Units.gridUnit
icon.height: Kirigami.Units.gridUnit
icon.color: "white"
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
contentItem: Item{
Kirigami.Icon {
anchors.centerIn:parent
source:"media-skip-forward"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
background: Kirigami.ShadowedRectangle{
corners.topRightRadius: 7
corners.bottomRightRadius: 7
color: if (isWidescreen){
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
}else if(parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
}else{
"transparent"
}
}
}
}
Label {
color: "white"
visible: info.title && root.isWidescreen
text: PlayerUtils.formatTimestamp(audio.duration)
Layout.leftMargin: 20
}
}
}
+3 -3
View File
@@ -20,7 +20,7 @@ Flickable {
property int footerSpacing:0
property bool maximized: false
readonly property int progressBarHeight: Kirigami.Units.gridUnit / 6
readonly property int progressBarHeight: Kirigami.Units.gridUnit / 4
readonly property int minimizedPlayerContentHeight: Math.round(Kirigami.Units.gridUnit * 3.5)
readonly property int minimizedPlayerHeight: minimizedPlayerContentHeight + progressBarHeight
@@ -158,8 +158,8 @@ Flickable {
layer.effect: HueSaturation {
cached: true
lightness: -0.5
saturation: 1.9
lightness: -0.7
saturation: 3
layer.enabled: true
layer.effect: FastBlur {
+8 -4
View File
@@ -223,15 +223,19 @@ Item {
}
Controls.ScrollView {
id: mainScrollView
clip: true
Layout.fillHeight: true
Layout.fillWidth: true
contentWidth: -1
Keys.enabled: false
contentWidth: availableWidth
contentItem: ColumnLayout {
Layout.fillHeight: true
Layout.fillWidth: true
ColumnLayout {
width: mainScrollView.contentWidth
Controls.ScrollView {
id: recents
+48
View File
@@ -129,6 +129,20 @@ QString UserPlaylistModel::nextVideoId() const
return QString::fromStdString((currentTrack + 1)->video_id);
}
QString UserPlaylistModel::previousVideoId() const
{
auto currentTrack = std::find_if(m_playlist.tracks.begin(), m_playlist.tracks.end(),
[this](const watch::Playlist::Track &track) {
return track.video_id == m_currentVideoId.toStdString();
});
if (currentTrack == m_playlist.tracks.end() || currentTrack - 1 == m_playlist.tracks.end()) {
return {};
}
return QString::fromStdString((currentTrack - 1)->video_id);
}
QString UserPlaylistModel::currentVideoId() const
{
return m_currentVideoId;
@@ -141,6 +155,8 @@ void UserPlaylistModel::setCurrentVideoId(const QString &videoId)
emitCurrentVideoChanged(old);
Q_EMIT currentVideoIdChanged();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
int UserPlaylistModel::currentIndex() const
@@ -164,12 +180,32 @@ bool UserPlaylistModel::canSkip() const
&& currentTrackIt != m_playlist.tracks.end()
&& !m_playlist.tracks.empty();
}
bool UserPlaylistModel::canSkipBack() const
{
const auto currentTrackIt = std::ranges::find_if(m_playlist.tracks, [this](const watch::Playlist::Track &track) {
return track.video_id == m_currentVideoId.toStdString();
});
return currentTrackIt != m_playlist.tracks.begin()
&& !m_playlist.tracks.empty();
}
void UserPlaylistModel::next()
{
setCurrentVideoId(nextVideoId());
Q_EMIT currentVideoIdChanged();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::previous()
{
setCurrentVideoId(previousVideoId());
Q_EMIT currentVideoIdChanged();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::skipTo(const QString &videoId)
@@ -179,6 +215,8 @@ void UserPlaylistModel::skipTo(const QString &videoId)
emitCurrentVideoChanged(old);
Q_EMIT currentVideoIdChanged();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::playNext(const QString &videoId, const QString &title, const std::vector<meta::Artist> &artists)
@@ -199,6 +237,8 @@ void UserPlaylistModel::playNext(const QString &videoId, const QString &title, c
endInsertRows();
setCurrentVideoId(videoId);
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
return;
}
@@ -208,6 +248,8 @@ void UserPlaylistModel::playNext(const QString &videoId, const QString &title, c
m_playlist.tracks.push_back(std::move(track));
endInsertRows();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
return;
}
@@ -216,6 +258,8 @@ void UserPlaylistModel::playNext(const QString &videoId, const QString &title, c
m_playlist.tracks.insert(currentIt + 1, std::move(track));
endInsertRows();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::append(const QString &videoId, const QString &title, const std::vector<meta::Artist> &artists)
@@ -242,6 +286,8 @@ void UserPlaylistModel::clear()
setCurrentVideoId({});
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::remove(const QString &videoId)
@@ -259,6 +305,8 @@ void UserPlaylistModel::remove(const QString &videoId)
endRemoveRows();
Q_EMIT canSkipChanged();
Q_EMIT canSkipBackChanged();
}
void UserPlaylistModel::shufflePlaylist()
+8
View File
@@ -23,6 +23,7 @@ class UserPlaylistModel : public AbstractYTMusicModel
Q_PROPERTY(QString currentVideoId READ currentVideoId NOTIFY currentVideoIdChanged)
Q_PROPERTY(int currentIndex READ currentIndex NOTIFY currentVideoIdChanged)
Q_PROPERTY(bool canSkip READ canSkip NOTIFY canSkipChanged)
Q_PROPERTY(bool canSkipBack READ canSkipBack NOTIFY canSkipBackChanged)
Q_PROPERTY(QString lyrics READ lyrics NOTIFY lyricsChanged)
public:
@@ -46,6 +47,7 @@ public:
Q_SIGNAL void initialVideoIdChanged();
QString nextVideoId() const;
QString previousVideoId() const;
QString currentVideoId() const;
void setCurrentVideoId(const QString &videoId);
@@ -54,7 +56,11 @@ public:
int currentIndex() const;
bool canSkip() const;
bool canSkipBack() const;
Q_SIGNAL void canSkipChanged();
Q_SIGNAL void canSkipBackChanged();
QString playlistId() const;
void setPlaylistId(const QString &playlistId);
@@ -68,6 +74,8 @@ public:
Q_SIGNAL void lyricsChanged();
Q_INVOKABLE void next();
Q_INVOKABLE void previous();
Q_INVOKABLE void skipTo(const QString &videoId);
Q_INVOKABLE void playNext(const QString &videoId, const QString &title, const std::vector<meta::Artist> &artists);
Q_INVOKABLE void append(const QString &videoId, const QString &title, const std::vector<meta::Artist> &artists);