New Upstream Release - minitube
Ready changes
Summary
Merged new upstream version: 3.9.3 (was: 3.9.1).
Resulting package
Built on 2022-09-29T11:23 (took 36m6s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases minitube-dbgsymapt install -t fresh-releases minitube
Lintian Result
Diff
diff --git a/debian/changelog b/debian/changelog
index 9a0f1b8..3a5defa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+minitube (3.9.3-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Thu, 29 Sep 2022 10:48:58 -0000
+
minitube (3.9.1-1) unstable; urgency=medium
* New upstream version 3.9.1
diff --git a/debian/patches/disable-update-check b/debian/patches/disable-update-check
index f3b8c09..659e62a 100644
--- a/debian/patches/disable-update-check
+++ b/debian/patches/disable-update-check
@@ -1,8 +1,10 @@
Description: Disable update check as it's useless for a packaged version
Author: Jakob Haufe <sur5r@debian.org>
---- minitube-3.8.1.orig/lib/updater/updater.pri
-+++ minitube-3.8.1/lib/updater/updater.pri
+Index: minitube/lib/updater/updater.pri
+===================================================================
+--- minitube.orig/lib/updater/updater.pri
++++ minitube/lib/updater/updater.pri
@@ -1,4 +1,4 @@
-DEFINES *= UPDATER
+#DEFINES *= UPDATER
diff --git a/debian/patches/proper-tempfiles b/debian/patches/proper-tempfiles
index 2f5d44d..6c0e9a2 100644
--- a/debian/patches/proper-tempfiles
+++ b/debian/patches/proper-tempfiles
@@ -5,10 +5,10 @@ Description: Do proper temporary file creation
Author: Jakob Haufe <sur5r@sur5r.net>
Bug-Debian: http://bugs.debian.org/644935
-diff --git a/src/temporary.cpp b/src/temporary.cpp
-index 2bf7fcd..0561ecb 100644
---- a/src/temporary.cpp
-+++ b/src/temporary.cpp
+Index: minitube/src/temporary.cpp
+===================================================================
+--- minitube.orig/src/temporary.cpp
++++ minitube/src/temporary.cpp
@@ -21,52 +21,27 @@ $END_LICENSE */
#include "temporary.h"
#include "constants.h"
@@ -73,10 +73,10 @@ index 2bf7fcd..0561ecb 100644
+ delete tempfile;
}
}
-diff --git a/src/temporary.h b/src/temporary.h
-index de5e24d..b8fbba9 100644
---- a/src/temporary.h
-+++ b/src/temporary.h
+Index: minitube/src/temporary.h
+===================================================================
+--- minitube.orig/src/temporary.h
++++ minitube/src/temporary.h
@@ -23,6 +23,7 @@ $END_LICENSE */
#include <QtCore>
diff --git a/lib/http/.git b/lib/http/.git
new file mode 100644
index 0000000..d38a031
--- /dev/null
+++ b/lib/http/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/http
diff --git a/lib/idle/.git b/lib/idle/.git
new file mode 100644
index 0000000..bfcd99f
--- /dev/null
+++ b/lib/idle/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/idle
diff --git a/lib/js/.git b/lib/js/.git
new file mode 100644
index 0000000..ce9d765
--- /dev/null
+++ b/lib/js/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/js
diff --git a/lib/js/js.cpp b/lib/js/js.cpp
index 8840064..0da5c79 100644
--- a/lib/js/js.cpp
+++ b/lib/js/js.cpp
@@ -1,6 +1,7 @@
#include "js.h"
#include "cachedhttp.h"
+#include "jsvm.h"
namespace {
Http &cachedHttp() {
@@ -55,8 +56,6 @@ JSResult &JS::callFunction(JSResult *result, const QString &name, const QJSValue
return *result;
}
- resetNAM();
-
auto function = engine->evaluate(name);
if (!function.isCallable()) {
qWarning() << function.toString() << " is not callable";
@@ -116,6 +115,9 @@ void JS::initialize() {
checkError(setTimeoutWrapperFunction);
engine->globalObject().setProperty("clearTimeout", timer.property("clearTimeout"));
+ QJSValue vm = engine->newQObject(new JSVM(engine));
+ engine->globalObject().setProperty("runInContextQt", vm.property("runInContext"));
+
connect(cachedHttp().get(url), &HttpReply::finished, this, [this](auto &reply) {
if (!reply.isSuccessful()) {
emit initFailed("Cannot load JS");
@@ -126,6 +128,7 @@ void JS::initialize() {
auto value = engine->evaluate(reply.body());
if (!checkError(value)) {
qDebug() << "Initialized";
+ resetNAM();
ready = true;
emit initialized();
}
diff --git a/lib/js/js.pri b/lib/js/js.pri
index 62baf7f..d0584e9 100644
--- a/lib/js/js.pri
+++ b/lib/js/js.pri
@@ -6,9 +6,11 @@ QT *= qml
HEADERS += \
$$PWD/js.h \
$$PWD/jsnamfactory.h \
- $$PWD/jsresult.h
+ $$PWD/jsresult.h \
+ $$PWD/jsvm.h
SOURCES += \
$$PWD/js.cpp \
$$PWD/jsnamfactory.cpp \
- $$PWD/jsresult.cpp
+ $$PWD/jsresult.cpp \
+ $$PWD/jsvm.cpp
diff --git a/lib/js/jsvm.cpp b/lib/js/jsvm.cpp
new file mode 100644
index 0000000..8d70be1
--- /dev/null
+++ b/lib/js/jsvm.cpp
@@ -0,0 +1,20 @@
+#include "jsvm.h"
+
+JSVM::JSVM(QQmlEngine *parent) : QObject{parent}, parentEngine(parent) {}
+
+QJSValue JSVM::runInContext(QString code, QJSValue props) {
+ auto engine = QQmlEngine(this);
+
+ auto objectKeysFunction = parentEngine->evaluate("Object.keys");
+ auto keys = objectKeysFunction.call({props});
+ const int keyLength = keys.property("length").toInt();
+ for (int i = 0; i < keyLength; ++i) {
+ auto key = keys.property(i).toString();
+ auto value = props.property(key).toString();
+ qDebug() << "Setting property" << key << value;
+ engine.globalObject().setProperty(key, value);
+ }
+
+ auto res = engine.evaluate(code).toString();
+ return parentEngine->toScriptValue(res);
+}
diff --git a/lib/js/jsvm.h b/lib/js/jsvm.h
new file mode 100644
index 0000000..a522bd5
--- /dev/null
+++ b/lib/js/jsvm.h
@@ -0,0 +1,18 @@
+#ifndef JSVM_H
+#define JSVM_H
+
+#include <QtCore>
+#include <QtQml>
+
+class JSVM : public QObject {
+ Q_OBJECT
+public:
+ explicit JSVM(QQmlEngine *parent);
+
+ Q_INVOKABLE QJSValue runInContext(QString code, QJSValue props);
+
+private:
+ QQmlEngine *parentEngine;
+};
+
+#endif // JSVM_H
diff --git a/lib/media/.git b/lib/media/.git
new file mode 100644
index 0000000..13211a6
--- /dev/null
+++ b/lib/media/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/media
diff --git a/lib/media/src/mpv/mediampv.cpp b/lib/media/src/mpv/mediampv.cpp
index 8a548b7..4cad49d 100644
--- a/lib/media/src/mpv/mediampv.cpp
+++ b/lib/media/src/mpv/mediampv.cpp
@@ -86,6 +86,7 @@ MediaMPV::MediaMPV(QObject *parent) : Media(parent), widget(nullptr) {
mpv_observe_property(mpv, 0, "volume", MPV_FORMAT_DOUBLE);
mpv_observe_property(mpv, 0, "mute", MPV_FORMAT_FLAG);
mpv_observe_property(mpv, 0, "pause", MPV_FORMAT_FLAG);
+ mpv_observe_property(mpv, 0, "paused-for-cache", MPV_FORMAT_FLAG);
}
// This slot is invoked by wakeup() (through the mpvEvents signal).
@@ -200,6 +201,13 @@ void MediaMPV::handleMpvEvent(mpv_event *event) {
}
}
+ else if (strcmp(prop->name, "paused-for-cache") == 0) {
+ if (prop->format == MPV_FORMAT_FLAG) {
+ int pausedForCache = *(int *)prop->data;
+ setState(pausedForCache == 1 ? Media::BufferingState : Media::PlayingState);
+ }
+ }
+
break;
}
diff --git a/lib/promises/.git b/lib/promises/.git
new file mode 100644
index 0000000..080d5d1
--- /dev/null
+++ b/lib/promises/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/promises
diff --git a/lib/updater/.git b/lib/updater/.git
new file mode 100644
index 0000000..81cae77
--- /dev/null
+++ b/lib/updater/.git
@@ -0,0 +1 @@
+gitdir: ../../.git/modules/lib/updater
diff --git a/locale/ar.ts b/locale/ar.ts
index 6fe886c..3a0326a 100644
--- a/locale/ar.ts
+++ b/locale/ar.ts
@@ -27,7 +27,7 @@
</message>
<message>
<source>Powered by %1</source>
- <translation type="unfinished"/>
+ <translation>بدعم من %1</translation>
</message>
<message>
<source>Open-source software</source>
@@ -107,7 +107,7 @@
</message>
<message numerus="yes">
<source>You have %n new video(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>You have %n new video(s)</numerusform><numerusform>You have %n new video(s)</numerusform><numerusform>You have %n new video(s)</numerusform><numerusform>You have %n new video(s)</numerusform><numerusform>You have %n new video(s)</numerusform><numerusform>لديك %n فيديو جديد</numerusform></translation>
</message>
</context>
<context>
@@ -192,11 +192,11 @@
</message>
<message numerus="yes">
<source>%n day(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n يوم مضى</numerusform><numerusform>%n يوم مضى</numerusform><numerusform>%n يوم مضى</numerusform><numerusform>%n يوم مضى</numerusform><numerusform>%n يوم مضى</numerusform><numerusform>%n يوم مضى</numerusform></translation>
</message>
<message numerus="yes">
<source>%n month(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n شهر مضى</numerusform><numerusform>%n شهر مضى</numerusform><numerusform>%n شهر مضى</numerusform><numerusform>%n شهر مضى</numerusform><numerusform>%n شهر مضى</numerusform><numerusform>%n شهر مضى</numerusform></translation>
</message>
<message>
<source>K</source>
@@ -219,11 +219,11 @@
</message>
<message numerus="yes">
<source>%n week(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n اسبوع مضى</numerusform><numerusform>%n اسبوع مضى</numerusform><numerusform>%n اسبوع مضى</numerusform><numerusform>%n اسبوع مضى</numerusform><numerusform>%n اسبوع مضى</numerusform><numerusform>%n اسبوع مضى</numerusform></translation>
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n سنة مضت</numerusform><numerusform>%n سنة مضت</numerusform><numerusform>%n سنة مضت</numerusform><numerusform>%n سنة مضت</numerusform><numerusform>%n سنة مضت</numerusform><numerusform>%n سنة مضت</numerusform></translation>
</message>
</context>
<context>
@@ -277,7 +277,7 @@
</message>
<message numerus="yes">
<source>%n Download(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n تحميل</numerusform><numerusform>%n تحميل</numerusform><numerusform>%n تحميل</numerusform><numerusform>%n تحميل</numerusform><numerusform>%n تحميل</numerusform><numerusform>%n تحميل</numerusform></translation>
</message>
</context>
<context>
@@ -674,7 +674,7 @@
</message>
<message>
<source>Menu</source>
- <translation type="unfinished"/>
+ <translation>قائمة</translation>
</message>
<message>
<source>&Love %1? Rate it!</source>
@@ -1038,7 +1038,7 @@
</message>
<message>
<source>This year</source>
- <translation type="unfinished"/>
+ <translation>هذه السنة</translation>
</message>
<message>
<source>HD</source>
@@ -1171,19 +1171,19 @@
</message>
<message>
<source>Music</source>
- <translation type="unfinished"/>
+ <translation>موسيقى</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished"/>
+ <translation>الأخبار</translation>
</message>
<message>
<source>Movies</source>
- <translation type="unfinished"/>
+ <translation>الأفلام</translation>
</message>
<message>
<source>Gaming</source>
- <translation type="unfinished"/>
+ <translation>الألعاب</translation>
</message>
</context>
<context>
@@ -1225,7 +1225,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>تحميل التحديث</translation>
</message>
<message>
<source>Downloading update...</source>
@@ -1241,7 +1241,7 @@
</message>
<message>
<source>Version %1 is available.</source>
- <translation type="unfinished"/>
+ <translation>الإصدار %1 متوفر.</translation>
</message>
<message>
<source>An update has been downloaded and is ready to be installed.</source>
@@ -1492,7 +1492,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>تحميل التحديث</translation>
</message>
</context>
</TS>
\ No newline at end of file
diff --git a/locale/da.ts b/locale/da.ts
index c55af31..eba1e5a 100644
--- a/locale/da.ts
+++ b/locale/da.ts
@@ -27,11 +27,11 @@
</message>
<message>
<source>Powered by %1</source>
- <translation type="unfinished"/>
+ <translation>Styrket af 1%</translation>
</message>
<message>
<source>Open-source software</source>
- <translation type="unfinished"/>
+ <translation>Åben-Kildekode software</translation>
</message>
<message>
<source>Icon designed by %1.</source>
diff --git a/locale/gl.ts b/locale/gl.ts
index 88f99ae..657521b 100644
--- a/locale/gl.ts
+++ b/locale/gl.ts
@@ -1,4 +1,4 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="gl" version="2.1">
+<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="gl">
<context>
<name>AboutView</name>
<message>
@@ -223,7 +223,7 @@
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n ano(s) atrás</numerusform><numerusform>%n ano(s) atrás</numerusform></translation>
</message>
</context>
<context>
@@ -852,15 +852,15 @@
</message>
<message>
<source>Rewind %1 seconds</source>
- <translation type="unfinished"/>
+ <translation>Rebobina %1 segundos</translation>
</message>
<message>
<source>Fast forward %1 seconds</source>
- <translation type="unfinished"/>
+ <translation>Avanzar %1 segundos</translation>
</message>
<message>
<source>channel</source>
- <translation type="unfinished"/>
+ <translation>canle</translation>
</message>
</context>
<context>
@@ -1038,19 +1038,19 @@
</message>
<message>
<source>This year</source>
- <translation type="unfinished"/>
+ <translation>Este ano</translation>
</message>
<message>
<source>HD</source>
- <translation type="unfinished"/>
+ <translation>HD</translation>
</message>
<message>
<source>4K</source>
- <translation type="unfinished"/>
+ <translation>4K</translation>
</message>
<message>
<source>HDR</source>
- <translation type="unfinished"/>
+ <translation>HDR</translation>
</message>
</context>
<context>
@@ -1099,19 +1099,19 @@
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"/>
+ <translation>Eliminar</translation>
</message>
<message>
<source>Need a remote control for %1? Try %2!</source>
- <translation type="unfinished"/>
+ <translation>Necesitas un control remoto para %1? Proba %2!</translation>
</message>
<message>
<source>I keep improving %1 to make it the best I can. Support this work!</source>
- <translation type="unfinished"/>
+ <translation>Sigo mellorando %1 para que sexa o mellor posible. Apoia este traballo!</translation>
</message>
<message>
<source>An update is ready to be installed. Quit and install update.</source>
- <translation type="unfinished"/>
+ <translation>Hai unha actualización para ser instalada. Saia e instale a actualización.</translation>
</message>
</context>
<context>
@@ -1167,23 +1167,23 @@
</message>
<message>
<source>Trending</source>
- <translation type="unfinished"/>
+ <translation>Tendencia</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"/>
+ <translation>Música</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished"/>
+ <translation>Noticias</translation>
</message>
<message>
<source>Movies</source>
- <translation type="unfinished"/>
+ <translation>Películas</translation>
</message>
<message>
<source>Gaming</source>
- <translation type="unfinished"/>
+ <translation>Xogos</translation>
</message>
</context>
<context>
@@ -1201,31 +1201,31 @@
<name>Updater</name>
<message>
<source>Check for Updates...</source>
- <translation type="unfinished"/>
+ <translation>Buscando actualizacións...</translation>
</message>
<message>
<source>Version %1 is available...</source>
- <translation type="unfinished"/>
+ <translation>Está dispoñible a versión %1...</translation>
</message>
<message>
<source>Downloading version %1...</source>
- <translation type="unfinished"/>
+ <translation>Baixando a versión %1...</translation>
</message>
<message>
<source>Restart to Update</source>
- <translation type="unfinished"/>
+ <translation>Reiniciar para actualizar</translation>
</message>
<message>
<source>Version %1 download failed</source>
- <translation type="unfinished"/>
+ <translation>Erro ao baixar a versión %1</translation>
</message>
<message>
<source>Check for Updates</source>
- <translation type="unfinished"/>
+ <translation>Buscar actualizacións</translation>
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Baixar actualización</translation>
</message>
<message>
<source>Downloading update...</source>
@@ -1233,19 +1233,19 @@
</message>
<message>
<source>Retry Update Download</source>
- <translation type="unfinished"/>
+ <translation>Volver a intentar baixar a actualización</translation>
</message>
<message>
<source>You have the latest version.</source>
- <translation type="unfinished"/>
+ <translation>Xa tes a última versión.</translation>
</message>
<message>
<source>Version %1 is available.</source>
- <translation type="unfinished"/>
+ <translation>Está dispoñible a versión %1.</translation>
</message>
<message>
<source>An update has been downloaded and is ready to be installed.</source>
- <translation type="unfinished"/>
+ <translation>Baixouse unha actualización e está listo para que se instale.</translation>
</message>
</context>
<context>
@@ -1461,18 +1461,18 @@
<name>updater::DefaultUpdater</name>
<message>
<source>There are currently no updates available.</source>
- <translation type="unfinished"/>
+ <translation>Non hai actualmente actualizacións dispoñibles.</translation>
</message>
</context>
<context>
<name>updater::Dialog</name>
<message>
<source>You already have the latest version</source>
- <translation type="unfinished"/>
+ <translation>Xa tes a última versión</translation>
</message>
<message>
<source>Downloading %1 %2...</source>
- <translation type="unfinished"/>
+ <translation>Baixando %1 %2...</translation>
</message>
<message>
<source>A new version of %1 is available!</source>
@@ -1492,7 +1492,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Baixar actualización</translation>
</message>
</context>
</TS>
\ No newline at end of file
diff --git a/locale/id.ts b/locale/id.ts
index ce3ee9c..7f2ee97 100644
--- a/locale/id.ts
+++ b/locale/id.ts
@@ -27,11 +27,11 @@
</message>
<message>
<source>Powered by %1</source>
- <translation type="unfinished"/>
+ <translation>Ditenagai oleh %1</translation>
</message>
<message>
<source>Open-source software</source>
- <translation type="unfinished"/>
+ <translation>Peranti lunak sumber terbuka</translation>
</message>
<message>
<source>Icon designed by %1.</source>
diff --git a/locale/pt_BR.ts b/locale/pt_BR.ts
index 3cb23d5..bd50391 100644
--- a/locale/pt_BR.ts
+++ b/locale/pt_BR.ts
@@ -223,7 +223,7 @@
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation><numerusform>%n ano atrás</numerusform><numerusform>%n anos atrás</numerusform></translation>
+ <translation><numerusform>%n ano atrás</numerusform><numerusform>%n ano(s) atrás</numerusform></translation>
</message>
</context>
<context>
@@ -1213,7 +1213,7 @@
</message>
<message>
<source>Restart to Update</source>
- <translation>Reiniciar para atualizar</translation>
+ <translation>Reiniciar para Atualizar</translation>
</message>
<message>
<source>Version %1 download failed</source>
@@ -1221,7 +1221,7 @@
</message>
<message>
<source>Check for Updates</source>
- <translation>Verificar se há atualizações</translation>
+ <translation>Verificar se há Atualizações</translation>
</message>
<message>
<source>Download Update</source>
diff --git a/locale/ru.ts b/locale/ru.ts
index 93fc4f9..7954b01 100644
--- a/locale/ru.ts
+++ b/locale/ru.ts
@@ -1,4 +1,4 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="ru" version="2.1">
+<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="ru">
<context>
<name>AboutView</name>
<message>
@@ -224,7 +224,7 @@
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n год назад</numerusform><numerusform>%n лет назад</numerusform><numerusform>%n лет назад</numerusform><numerusform>%n лет назад</numerusform></translation>
</message>
</context>
<context>
@@ -278,7 +278,7 @@
</message>
<message numerus="yes">
<source>%n Download(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>Скачано %n раз</numerusform><numerusform>Скачано %n раз</numerusform><numerusform>Скачано %n раз</numerusform><numerusform>Скачано %n раз</numerusform></translation>
</message>
</context>
<context>
@@ -861,7 +861,7 @@
</message>
<message>
<source>channel</source>
- <translation type="unfinished"/>
+ <translation>канал</translation>
</message>
</context>
<context>
@@ -1039,19 +1039,19 @@
</message>
<message>
<source>This year</source>
- <translation type="unfinished"/>
+ <translation>В этом году</translation>
</message>
<message>
<source>HD</source>
- <translation type="unfinished"/>
+ <translation>HD</translation>
</message>
<message>
<source>4K</source>
- <translation type="unfinished"/>
+ <translation>4K</translation>
</message>
<message>
<source>HDR</source>
- <translation type="unfinished"/>
+ <translation>HDR</translation>
</message>
</context>
<context>
@@ -1100,19 +1100,19 @@
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"/>
+ <translation>Убрать</translation>
</message>
<message>
<source>Need a remote control for %1? Try %2!</source>
- <translation type="unfinished"/>
+ <translation>Нужен пульт для %1? Попробуйте %2!</translation>
</message>
<message>
<source>I keep improving %1 to make it the best I can. Support this work!</source>
- <translation type="unfinished"/>
+ <translation>Я буду улучшать %1 , чтобы достичь лучшего результата. Поддержите работу!</translation>
</message>
<message>
<source>An update is ready to be installed. Quit and install update.</source>
- <translation type="unfinished"/>
+ <translation>Обновление готово для установки. Выйдите и установите обновление.</translation>
</message>
</context>
<context>
@@ -1168,23 +1168,23 @@
</message>
<message>
<source>Trending</source>
- <translation type="unfinished"/>
+ <translation>Популярное</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"/>
+ <translation>Музыка</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished"/>
+ <translation>Новости</translation>
</message>
<message>
<source>Movies</source>
- <translation type="unfinished"/>
+ <translation>Фильмы</translation>
</message>
<message>
<source>Gaming</source>
- <translation type="unfinished"/>
+ <translation>Игры</translation>
</message>
</context>
<context>
@@ -1202,31 +1202,31 @@
<name>Updater</name>
<message>
<source>Check for Updates...</source>
- <translation type="unfinished"/>
+ <translation>Проверить обновления...</translation>
</message>
<message>
<source>Version %1 is available...</source>
- <translation type="unfinished"/>
+ <translation>Доступна версия %1 </translation>
</message>
<message>
<source>Downloading version %1...</source>
- <translation type="unfinished"/>
+ <translation>Качаю версию %1...</translation>
</message>
<message>
<source>Restart to Update</source>
- <translation type="unfinished"/>
+ <translation>Перезапуск для обновления</translation>
</message>
<message>
<source>Version %1 download failed</source>
- <translation type="unfinished"/>
+ <translation>Загрузка версии %1 сорвалась</translation>
</message>
<message>
<source>Check for Updates</source>
- <translation type="unfinished"/>
+ <translation>Проверить обновления</translation>
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Скачать обновление</translation>
</message>
<message>
<source>Downloading update...</source>
@@ -1234,19 +1234,19 @@
</message>
<message>
<source>Retry Update Download</source>
- <translation type="unfinished"/>
+ <translation>Попытаться скачать обновление заново</translation>
</message>
<message>
<source>You have the latest version.</source>
- <translation type="unfinished"/>
+ <translation>У вас последняя версия.</translation>
</message>
<message>
<source>Version %1 is available.</source>
- <translation type="unfinished"/>
+ <translation>Доступна версия %1 </translation>
</message>
<message>
<source>An update has been downloaded and is ready to be installed.</source>
- <translation type="unfinished"/>
+ <translation>Обновление было загружено и готово к установке.</translation>
</message>
</context>
<context>
@@ -1462,18 +1462,18 @@
<name>updater::DefaultUpdater</name>
<message>
<source>There are currently no updates available.</source>
- <translation type="unfinished"/>
+ <translation>Нет новых обновлений.</translation>
</message>
</context>
<context>
<name>updater::Dialog</name>
<message>
<source>You already have the latest version</source>
- <translation type="unfinished"/>
+ <translation>У вас уже последняя версия</translation>
</message>
<message>
<source>Downloading %1 %2...</source>
- <translation type="unfinished"/>
+ <translation>Загружается %1 %2...</translation>
</message>
<message>
<source>A new version of %1 is available!</source>
@@ -1493,7 +1493,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Скачать обновление</translation>
</message>
</context>
</TS>
\ No newline at end of file
diff --git a/locale/uk.ts b/locale/uk.ts
index 41591c5..39c4f25 100644
--- a/locale/uk.ts
+++ b/locale/uk.ts
@@ -671,7 +671,7 @@
</message>
<message>
<source>Toggle &Menu Bar</source>
- <translation type="unfinished"/>
+ <translation>Приховати &Menu Bar</translation>
</message>
<message>
<source>Menu</source>
@@ -791,7 +791,7 @@
</message>
<message>
<source>You can still access the menu bar by pressing the ALT key</source>
- <translation type="unfinished"/>
+ <translation>Відкрити меню можна натисканням ALT</translation>
</message>
</context>
<context>
diff --git a/locale/uk_UA.ts b/locale/uk_UA.ts
index 79a6639..4f0b305 100644
--- a/locale/uk_UA.ts
+++ b/locale/uk_UA.ts
@@ -19,7 +19,7 @@
</message>
<message>
<source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Будь ласка, <a href='%1'>внесіть пожертву,</a> аби підтримати подальший розвиток %2.</translation>
+ <translation>Будь ласка, <a href='%1'>внесіть пожертву</a>, щоб підтримати подальший розвиток %2.</translation>
</message>
<message>
<source>Translate %1 to your native language using %2</source>
@@ -27,11 +27,11 @@
</message>
<message>
<source>Powered by %1</source>
- <translation type="unfinished"/>
+ <translation>За допомогою %1</translation>
</message>
<message>
<source>Open-source software</source>
- <translation type="unfinished"/>
+ <translation>ПЗ із відкритим джерельним кодом</translation>
</message>
<message>
<source>Icon designed by %1.</source>
@@ -74,11 +74,11 @@
</message>
<message>
<source>The full version allows you to watch videos without interruptions.</source>
- <translation>Повна версія дозволяє дивитися видиво без перерв.</translation>
+ <translation>Повна версія дозволяє дивитися відео без перерв.</translation>
</message>
<message>
<source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>При купівлі повної версії, Ви, також, надаєте підтримку важкій роботі, яка була задіяна під час створення %1.</translation>
+ <translation>Купуючи повну версію Ви також підтримуєте важку працю внесену в створення %1.</translation>
</message>
<message>
<source>Use Demo</source>
@@ -97,7 +97,7 @@
<name>AppWidget</name>
<message>
<source>Download</source>
- <translation type="unfinished"/>
+ <translation>Завантажити</translation>
</message>
</context>
<context>
@@ -108,18 +108,18 @@
</message>
<message numerus="yes">
<source>You have %n new video(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>У Вас %n нове відео</numerusform><numerusform>У Вас %n нових відео</numerusform><numerusform>У Вас %n нових відео</numerusform><numerusform>У Вас %n нових відео</numerusform></translation>
</message>
</context>
<context>
<name>ChannelItemDelegate</name>
<message>
<source>All Videos</source>
- <translation>Усі видива</translation>
+ <translation>Усі відео</translation>
</message>
<message>
<source>Unwatched Videos</source>
- <translation>Не переглянуті видива</translation>
+ <translation>Не переглянуті відео</translation>
</message>
</context>
<context>
@@ -142,11 +142,11 @@
</message>
<message>
<source>Most Watched</source>
- <translation>Найбільш переглядаюче</translation>
+ <translation>Найбільш переглядувані</translation>
</message>
<message>
<source>Sort by</source>
- <translation>Сортувати за</translation>
+ <translation>Ґатункувати за</translation>
</message>
<message>
<source>Mark all as watched</source>
@@ -158,15 +158,15 @@
</message>
<message>
<source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
- <translation>У Вас немає підписок. Використовуйте символ зірочки, аби підписуватися на канали.</translation>
+ <translation>У Вас нема підписок. Використовуйте символ зірочки, щоб підписуватися на канали.</translation>
</message>
<message>
<source>All Videos</source>
- <translation>Усі видива</translation>
+ <translation>Усі відео</translation>
</message>
<message>
<source>Unwatched Videos</source>
- <translation>Не переглянуті видива</translation>
+ <translation>Не переглянуті відео</translation>
</message>
<message>
<source>Mark as Watched</source>
@@ -178,41 +178,41 @@
</message>
<message>
<source>There are no updated subscriptions at this time.</source>
- <translation>Наразі оновлень підписок немає.</translation>
+ <translation>Наразі оновлень підписок нема.</translation>
</message>
</context>
<context>
<name>DataUtils</name>
<message>
<source>Just now</source>
- <translation>Тільки що</translation>
+ <translation>Тільки-но</translation>
</message>
<message numerus="yes">
<source>%n hour(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n год. тому</numerusform><numerusform>%n год. тому</numerusform><numerusform>%n год. тому</numerusform><numerusform>%n год. тому</numerusform></translation>
</message>
<message numerus="yes">
<source>%n day(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n день тому</numerusform><numerusform>%n дні тому</numerusform><numerusform>%n днів тому</numerusform><numerusform>%n днів тому</numerusform></translation>
</message>
<message numerus="yes">
<source>%n month(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n місяць тому</numerusform><numerusform>%n місяці тому</numerusform><numerusform>%n місяців тому</numerusform><numerusform>%n місяців тому</numerusform></translation>
</message>
<message>
<source>K</source>
<comment>K as in Kilo, i.e. thousands</comment>
- <translation type="unfinished"/>
+ <translation>Тис</translation>
</message>
<message>
<source>M</source>
<comment>M stands for Millions</comment>
- <translation type="unfinished"/>
+ <translation>Млн</translation>
</message>
<message>
<source>B</source>
<comment>B stands for Billions</comment>
- <translation type="unfinished"/>
+ <translation>Млрд</translation>
</message>
<message>
<source>%1 views</source>
@@ -220,11 +220,11 @@
</message>
<message numerus="yes">
<source>%n week(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n тиждень тому</numerusform><numerusform>%n тижні тому</numerusform><numerusform>%n тижнів тому</numerusform><numerusform>%n тижнів тому</numerusform></translation>
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n рік тому</numerusform><numerusform>%n роки тому</numerusform><numerusform>%n років тому</numerusform><numerusform>%n років тому</numerusform></translation>
</message>
</context>
<context>
@@ -278,7 +278,7 @@
</message>
<message numerus="yes">
<source>%n Download(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n Завантаження</numerusform><numerusform>%n Завантаження</numerusform><numerusform>%n Завантажень</numerusform><numerusform>%n Завантажень</numerusform></translation>
</message>
</context>
<context>
@@ -315,7 +315,7 @@
<name>Extra</name>
<message>
<source>The executable file has been tempered with, maybe by a virus.</source>
- <translation>Виконуваний файл було пошкоджено, може бути, вірус.</translation>
+ <translation>Виконуваний файл було пошкоджено, можливо вірусом.</translation>
</message>
<message>
<source>%1 will not run. Try installing again.</source>
@@ -354,11 +354,11 @@
</message>
<message>
<source>Next track</source>
- <translation>Наступний трек</translation>
+ <translation>Наступна доріжка</translation>
</message>
<message>
<source>Previous track</source>
- <translation>Попередній трек</translation>
+ <translation>Попередня доріжка</translation>
</message>
<message>
<source>Increase volume</source>
@@ -389,7 +389,7 @@
</message>
<message>
<source>Find videos and channels by keyword</source>
- <translation>Знайти видива та канали за ключовими словами</translation>
+ <translation>Знайти відео та канали за ключовими словами</translation>
</message>
<message>
<source>Browse</source>
@@ -397,7 +397,7 @@
</message>
<message>
<source>Browse videos by category</source>
- <translation>Оглянути видива за катеґоріями</translation>
+ <translation>Оглянути відео за катеґоріями</translation>
</message>
<message>
<source>Subscriptions</source>
@@ -443,7 +443,7 @@
</message>
<message>
<source>Go back to the previous track</source>
- <translation>Повернутися до попереднього треку</translation>
+ <translation>Повернутися до попередньої доріжки</translation>
</message>
<message>
<source>S&kip</source>
@@ -451,7 +451,7 @@
</message>
<message>
<source>Skip to the next video</source>
- <translation>Перейти до наступного видива</translation>
+ <translation>Перейти до наступного відео</translation>
</message>
<message>
<source>&Play</source>
@@ -475,7 +475,7 @@
</message>
<message>
<source>Hide the playlist and the toolbar</source>
- <translation>Сховати перелік та панель інструментів</translation>
+ <translation>Сховати перелік та панель знарядь</translation>
</message>
<message>
<source>Open the &YouTube Page</source>
@@ -483,7 +483,7 @@
</message>
<message>
<source>Go to the YouTube video page and pause playback</source>
- <translation>Відкрити сторінку YouTube та призупинити відтворення видива</translation>
+ <translation>Відкрити сторінку YouTube та призупинити відтворення відео</translation>
</message>
<message>
<source>Copy the YouTube &Link</source>
@@ -491,23 +491,23 @@
</message>
<message>
<source>Copy the current video YouTube link to the clipboard</source>
- <translation>Скопіювати YouTube посилання поточного видива до буферу</translation>
+ <translation>Скопіювати YouTube-посилання поточного відео до буферу</translation>
</message>
<message>
<source>Copy the Video Stream &URL</source>
- <translation>Копіювати посилання на ви&диво потік</translation>
+ <translation>Копіювати посилання на ві&деопотік</translation>
</message>
<message>
<source>Copy the current video stream URL to the clipboard</source>
- <translation>Скопіювати посилання поточного видива до буферу</translation>
+ <translation>Скопіювати посилання поточного відео до буферу</translation>
</message>
<message>
<source>Find Video &Parts</source>
- <translation>Знайти &фраґменти видива</translation>
+ <translation>Знайти &фрагменти відео</translation>
</message>
<message>
<source>Find other video parts hopefully in the right order</source>
- <translation>Знайти інші частини видива, сподіваюся, у правильному порядку</translation>
+ <translation>Знайти инші частини відео, сподіваюсь, у правильному порядку</translation>
</message>
<message>
<source>&Remove</source>
@@ -515,7 +515,7 @@
</message>
<message>
<source>Remove the selected videos from the playlist</source>
- <translation>Вилучити обрані видива з переліку</translation>
+ <translation>Вилучити вибрані відео з грайлиста</translation>
</message>
<message>
<source>Move &Up</source>
@@ -523,7 +523,7 @@
</message>
<message>
<source>Move up the selected videos in the playlist</source>
- <translation>Перемістити обране видиво догори у переліку</translation>
+ <translation>Перемістити вибране відео догори у грайлисті</translation>
</message>
<message>
<source>Move &Down</source>
@@ -531,7 +531,7 @@
</message>
<message>
<source>Move down the selected videos in the playlist</source>
- <translation>Перемістити обране видиво донизу в переліку</translation>
+ <translation>Перемістити вибране відео донизу в грайлисті</translation>
</message>
<message>
<source>&Clear Recent Searches</source>
@@ -539,7 +539,7 @@
</message>
<message>
<source>Clear the search history. Cannot be undone.</source>
- <translation>Очистити історію пошуку (зміни незворотні).</translation>
+ <translation>Очистити дієпис пошуку (зміни незворотні).</translation>
</message>
<message>
<source>&Quit</source>
@@ -551,7 +551,7 @@
</message>
<message>
<source>&Website</source>
- <translation>&Веб-сайт</translation>
+ <translation>&Вебсайт</translation>
</message>
<message>
<source>%1 on the Web</source>
@@ -587,7 +587,7 @@
</message>
<message>
<source>Manually start playing videos</source>
- <translation>Почати відтворення видива самотужки</translation>
+ <translation>Почати відтворення відео самотужки</translation>
</message>
<message>
<source>&Downloads</source>
@@ -595,7 +595,7 @@
</message>
<message>
<source>Show details about video downloads</source>
- <translation>Показати деталі про видива, що завантажуються</translation>
+ <translation>Показати деталі про завантажувані відео</translation>
</message>
<message>
<source>&Download</source>
@@ -603,7 +603,7 @@
</message>
<message>
<source>Download the current video</source>
- <translation>Завантажити це видиво</translation>
+ <translation>Завантажити це відео</translation>
</message>
<message>
<source>Take &Snapshot</source>
@@ -615,7 +615,7 @@
</message>
<message>
<source>Share the current video using %1</source>
- <translation>Поділитися поточним видивом за допомогою %1</translation>
+ <translation>Поділитися поточним відео за допомогою %1</translation>
</message>
<message>
<source>&Email</source>
@@ -635,7 +635,7 @@
</message>
<message>
<source>&Stop After This Video</source>
- <translation>Зу&пинити після цього видиво</translation>
+ <translation>Зу&пинити після цього відео</translation>
</message>
<message>
<source>&Report an Issue...</source>
@@ -651,11 +651,11 @@
</message>
<message>
<source>&Related Videos</source>
- <translation>Схо&жі видива</translation>
+ <translation>Схо&жі відео</translation>
</message>
<message>
<source>Watch videos related to the current one</source>
- <translation>Дивитися видива, пов’язані з поточним</translation>
+ <translation>Дивитися відео, пов’язані з поточним</translation>
</message>
<message>
<source>Open in &Browser...</source>
@@ -663,19 +663,19 @@
</message>
<message>
<source>Restricted Mode</source>
- <translation type="unfinished"/>
+ <translation>Безпечний режим</translation>
</message>
<message>
<source>Hide videos that may contain inappropriate content</source>
- <translation type="unfinished"/>
+ <translation>Сховати відео, які можуть містити невідповідний вміст</translation>
</message>
<message>
<source>Toggle &Menu Bar</source>
- <translation type="unfinished"/>
+ <translation>Приховати &Меню</translation>
</message>
<message>
<source>Menu</source>
- <translation type="unfinished"/>
+ <translation>Меню</translation>
</message>
<message>
<source>&Love %1? Rate it!</source>
@@ -695,11 +695,11 @@
</message>
<message>
<source>&Playlist</source>
- <translation>&Перелік відтворення</translation>
+ <translation>&Грайлист</translation>
</message>
<message>
<source>&Video</source>
- <translation>&Видиво</translation>
+ <translation>&Відео</translation>
</message>
<message>
<source>&Share</source>
@@ -715,7 +715,7 @@
</message>
<message>
<source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Натисніть %1, аби приглушити гучність, та %2, щоб її відновити</translation>
+ <translation>Натисніть %1, аби приглушити гучність, і %2, щоб її відновити</translation>
</message>
<message>
<source>Choose your content location</source>
@@ -731,7 +731,7 @@
</message>
<message>
<source>If you close %1 now, this download will be cancelled.</source>
- <translation>Якщо закрити %1 негайно, усі завантаження буде скасовано.</translation>
+ <translation>Якщо закрити %1 негайно, всі завантаження буде скасовано.</translation>
</message>
<message>
<source>Close and cancel download</source>
@@ -779,7 +779,7 @@
</message>
<message>
<source>Maximum video definition set to %1</source>
- <translation>Режим чіткості видива %1</translation>
+ <translation>Режим чіткости відео %1</translation>
</message>
<message>
<source>Your privacy is now safe</source>
@@ -791,22 +791,22 @@
</message>
<message>
<source>You can still access the menu bar by pressing the ALT key</source>
- <translation type="unfinished"/>
+ <translation>Відкрити меню можна натисканням ALT</translation>
</message>
</context>
<context>
<name>MediaView</name>
<message>
<source>You can now paste the YouTube link into another application</source>
- <translation>Тепер Ви можете використовувати YouTube посилання на видиво у зовнішній проґрамі</translation>
+ <translation>Тепер Ви можете використовувати YouTube-посилання на відео у зовнішній проґрамі</translation>
</message>
<message>
<source>You can now paste the video stream URL into another application</source>
- <translation>Тепер Ви можете використовувати посилання на видиво у зовнішній проґрамі</translation>
+ <translation>Тепер Ви можете використовувати посилання на відео у зовнішній проґрамі</translation>
</message>
<message>
<source>The link will be valid only for a limited time.</source>
- <translation>Посилання буде дійсне лише протягом обмеженого часу.</translation>
+ <translation>Посилання буде дійсне лише впродовж обмеженого часу.</translation>
</message>
<message>
<source>Downloading %1</source>
@@ -841,7 +841,7 @@
</message>
<message>
<source>Switched to %1</source>
- <translation type="unfinished"/>
+ <translation>Перемикнутися на %1</translation>
</message>
<message>
<source>Unsubscribed from %1</source>
@@ -861,7 +861,7 @@
</message>
<message>
<source>channel</source>
- <translation type="unfinished"/>
+ <translation>канал</translation>
</message>
</context>
<context>
@@ -902,7 +902,7 @@
<name>PickMessage</name>
<message>
<source>Pick a video</source>
- <translation type="unfinished"/>
+ <translation>Оберіть відео</translation>
</message>
</context>
<context>
@@ -937,11 +937,11 @@
</message>
<message>
<source>Open parent folder</source>
- <translation>Перейти до теки з видивами</translation>
+ <translation>Перейти до теки з відео</translation>
</message>
<message>
<source>Restart downloading</source>
- <translation>Завантажити заново</translation>
+ <translation>Перезапустити завантаження</translation>
</message>
</context>
<context>
@@ -956,14 +956,14 @@
</message>
<message>
<source>No more videos</source>
- <translation>Більше немає</translation>
+ <translation>Більше нема</translation>
</message>
</context>
<context>
<name>RefineSearchWidget</name>
<message>
<source>Sort by</source>
- <translation>Сортувати за</translation>
+ <translation>Ґатункувати за</translation>
</message>
<message>
<source>Relevance</source>
@@ -1039,19 +1039,19 @@
</message>
<message>
<source>This year</source>
- <translation type="unfinished"/>
+ <translation>Цього року</translation>
</message>
<message>
<source>HD</source>
- <translation type="unfinished"/>
+ <translation>HD</translation>
</message>
<message>
<source>4K</source>
- <translation type="unfinished"/>
+ <translation>4K</translation>
</message>
<message>
<source>HDR</source>
- <translation type="unfinished"/>
+ <translation>HDR</translation>
</message>
</context>
<context>
@@ -1100,19 +1100,19 @@
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"/>
+ <translation>Вилучити</translation>
</message>
<message>
<source>Need a remote control for %1? Try %2!</source>
- <translation type="unfinished"/>
+ <translation>Потрібен пульт дистанційного керування для %1? Спробуйте %2!</translation>
</message>
<message>
<source>I keep improving %1 to make it the best I can. Support this work!</source>
- <translation type="unfinished"/>
+ <translation>Я постійно вдосконалюю %1, щоб зробити це якнайкраще. Підтримайте цю роботу!</translation>
</message>
<message>
<source>An update is ready to be installed. Quit and install update.</source>
- <translation type="unfinished"/>
+ <translation>Оновлення готове до встановлення. Закрийте та встановіть оновлення.</translation>
</message>
</context>
<context>
@@ -1123,7 +1123,7 @@
</message>
<message>
<source>&Forward</source>
- <translation type="unfinished"/>
+ <translation>&Уперед</translation>
</message>
<message>
<source>Forward to %1</source>
@@ -1168,23 +1168,23 @@
</message>
<message>
<source>Trending</source>
- <translation type="unfinished"/>
+ <translation>Тенденція</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"/>
+ <translation>Музика</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished"/>
+ <translation>Новини</translation>
</message>
<message>
<source>Movies</source>
- <translation type="unfinished"/>
+ <translation>Фільми</translation>
</message>
<message>
<source>Gaming</source>
- <translation type="unfinished"/>
+ <translation>Ігри</translation>
</message>
</context>
<context>
@@ -1195,38 +1195,38 @@
</message>
<message>
<source>Downloading %1...</source>
- <translation type="unfinished"/>
+ <translation>Завантаження %1...</translation>
</message>
</context>
<context>
<name>Updater</name>
<message>
<source>Check for Updates...</source>
- <translation type="unfinished"/>
+ <translation>Перевірити наявність оновлень...</translation>
</message>
<message>
<source>Version %1 is available...</source>
- <translation type="unfinished"/>
+ <translation>Доступна версія %1 ...</translation>
</message>
<message>
<source>Downloading version %1...</source>
- <translation type="unfinished"/>
+ <translation>Завантаження версії %1...</translation>
</message>
<message>
<source>Restart to Update</source>
- <translation type="unfinished"/>
+ <translation>Перезапустити оновлення</translation>
</message>
<message>
<source>Version %1 download failed</source>
- <translation type="unfinished"/>
+ <translation>Не вдалося завантажити версію %1</translation>
</message>
<message>
<source>Check for Updates</source>
- <translation type="unfinished"/>
+ <translation>Перевірити наявність оновлень</translation>
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Завантажити оновлення</translation>
</message>
<message>
<source>Downloading update...</source>
@@ -1234,37 +1234,37 @@
</message>
<message>
<source>Retry Update Download</source>
- <translation type="unfinished"/>
+ <translation>Повторити спробу завантаження оновлення</translation>
</message>
<message>
<source>You have the latest version.</source>
- <translation type="unfinished"/>
+ <translation>У вас остання версія.</translation>
</message>
<message>
<source>Version %1 is available.</source>
- <translation type="unfinished"/>
+ <translation>Доступна версія %1.</translation>
</message>
<message>
<source>An update has been downloaded and is ready to be installed.</source>
- <translation type="unfinished"/>
+ <translation>Оновлення завантажено та готове до встановлення.</translation>
</message>
</context>
<context>
<name>YTJSVideo</name>
<message>
<source>Cannot get video stream for %1</source>
- <translation>Не вдалося отримати видивопотік для %1</translation>
+ <translation>Не вдалось отримати відеопотік для %1</translation>
</message>
</context>
<context>
<name>YTRegions</name>
<message>
<source>Algeria</source>
- <translation>Алжир</translation>
+ <translation>Алжір</translation>
</message>
<message>
<source>Argentina</source>
- <translation>Аргентина</translation>
+ <translation>Арґентина</translation>
</message>
<message>
<source>Australia</source>
@@ -1392,7 +1392,7 @@
</message>
<message>
<source>Russia</source>
- <translation>Російська Федерація</translation>
+ <translation>Московія</translation>
</message>
<message>
<source>Saudi Arabia</source>
@@ -1412,7 +1412,7 @@
</message>
<message>
<source>Spain</source>
- <translation>Іспанія</translation>
+ <translation>Еспанія</translation>
</message>
<message>
<source>Sweden</source>
@@ -1440,7 +1440,7 @@
</message>
<message>
<source>United Kingdom</source>
- <translation>Великобританія</translation>
+ <translation>Велика Британія</translation>
</message>
<message>
<source>Yemen</source>
@@ -1455,25 +1455,25 @@
<name>YTVideo</name>
<message>
<source>Cannot get video stream for %1</source>
- <translation>Не вдалося отримати видивопотік для %1</translation>
+ <translation>Не вдалось отримати відеопотік для %1</translation>
</message>
</context>
<context>
<name>updater::DefaultUpdater</name>
<message>
<source>There are currently no updates available.</source>
- <translation type="unfinished"/>
+ <translation>Наразі оновлень нема.</translation>
</message>
</context>
<context>
<name>updater::Dialog</name>
<message>
<source>You already have the latest version</source>
- <translation type="unfinished"/>
+ <translation>У вас вже є остання версія</translation>
</message>
<message>
<source>Downloading %1 %2...</source>
- <translation type="unfinished"/>
+ <translation>Завантаження %1 %2...</translation>
</message>
<message>
<source>A new version of %1 is available!</source>
@@ -1493,7 +1493,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>Завантажити оновлення</translation>
</message>
</context>
</TS>
\ No newline at end of file
diff --git a/locale/zh_CN.ts b/locale/zh_CN.ts
index 9c8a76c..4176c7b 100644
--- a/locale/zh_CN.ts
+++ b/locale/zh_CN.ts
@@ -223,7 +223,7 @@
</message>
<message numerus="yes">
<source>%n year(s) ago</source>
- <translation type="unfinished"><numerusform></numerusform></translation>
+ <translation><numerusform>%n 年前</numerusform></translation>
</message>
</context>
<context>
@@ -1038,19 +1038,19 @@
</message>
<message>
<source>This year</source>
- <translation type="unfinished"/>
+ <translation>今年</translation>
</message>
<message>
<source>HD</source>
- <translation type="unfinished"/>
+ <translation>HD</translation>
</message>
<message>
<source>4K</source>
- <translation type="unfinished"/>
+ <translation>4K</translation>
</message>
<message>
<source>HDR</source>
- <translation type="unfinished"/>
+ <translation>HDR</translation>
</message>
</context>
<context>
@@ -1111,7 +1111,7 @@
</message>
<message>
<source>An update is ready to be installed. Quit and install update.</source>
- <translation type="unfinished"/>
+ <translation>更新已准备好,退出并安装更新</translation>
</message>
</context>
<context>
@@ -1167,23 +1167,23 @@
</message>
<message>
<source>Trending</source>
- <translation type="unfinished"/>
+ <translation>趋势</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"/>
+ <translation>音乐</translation>
</message>
<message>
<source>News</source>
- <translation type="unfinished"/>
+ <translation>新闻</translation>
</message>
<message>
<source>Movies</source>
- <translation type="unfinished"/>
+ <translation>电影</translation>
</message>
<message>
<source>Gaming</source>
- <translation type="unfinished"/>
+ <translation>游戏</translation>
</message>
</context>
<context>
@@ -1201,31 +1201,31 @@
<name>Updater</name>
<message>
<source>Check for Updates...</source>
- <translation type="unfinished"/>
+ <translation>查检更新</translation>
</message>
<message>
<source>Version %1 is available...</source>
- <translation type="unfinished"/>
+ <translation>版本 %1 可用</translation>
</message>
<message>
<source>Downloading version %1...</source>
- <translation type="unfinished"/>
+ <translation>下载版本 %1...</translation>
</message>
<message>
<source>Restart to Update</source>
- <translation type="unfinished"/>
+ <translation>重启开始更新</translation>
</message>
<message>
<source>Version %1 download failed</source>
- <translation type="unfinished"/>
+ <translation>版本 %1 下载失败</translation>
</message>
<message>
<source>Check for Updates</source>
- <translation type="unfinished"/>
+ <translation>查检更新</translation>
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>下载更新</translation>
</message>
<message>
<source>Downloading update...</source>
@@ -1233,19 +1233,19 @@
</message>
<message>
<source>Retry Update Download</source>
- <translation type="unfinished"/>
+ <translation>重试下载更新</translation>
</message>
<message>
<source>You have the latest version.</source>
- <translation type="unfinished"/>
+ <translation>已是最新版本</translation>
</message>
<message>
<source>Version %1 is available.</source>
- <translation type="unfinished"/>
+ <translation>版本 %1 可用</translation>
</message>
<message>
<source>An update has been downloaded and is ready to be installed.</source>
- <translation type="unfinished"/>
+ <translation>更新下载,准备更新</translation>
</message>
</context>
<context>
@@ -1461,18 +1461,18 @@
<name>updater::DefaultUpdater</name>
<message>
<source>There are currently no updates available.</source>
- <translation type="unfinished"/>
+ <translation>当前没有更新可用</translation>
</message>
</context>
<context>
<name>updater::Dialog</name>
<message>
<source>You already have the latest version</source>
- <translation type="unfinished"/>
+ <translation>已是最新版本</translation>
</message>
<message>
<source>Downloading %1 %2...</source>
- <translation type="unfinished"/>
+ <translation>已下载 %1 %2...</translation>
</message>
<message>
<source>A new version of %1 is available!</source>
@@ -1492,7 +1492,7 @@
</message>
<message>
<source>Download Update</source>
- <translation type="unfinished"/>
+ <translation>下载更新</translation>
</message>
</context>
</TS>
\ No newline at end of file
diff --git a/minitube.pro b/minitube.pro
index 71420f3..646dd4e 100644
--- a/minitube.pro
+++ b/minitube.pro
@@ -1,7 +1,7 @@
CONFIG += c++17 exceptions_off rtti_off object_parallel_to_source
TEMPLATE = app
-VERSION = 3.9.1
+VERSION = 3.9.3
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = Minitube
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 610c0d1..e4f09c6 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -171,7 +171,7 @@ MainWindow::MainWindow()
} else if (VideoAPI::impl() == VideoAPI::YT3) {
YT3::instance().initApiKeys();
} else if (VideoAPI::impl() == VideoAPI::JS) {
- JS::instance().initialize(QUrl(QLatin1String(Constants::WEBSITE) + "-ws/bundle2.js"));
+ JS::instance().initialize(QUrl(QLatin1String(Constants::WEBSITE) + "-ws/bundle3.js"));
// JS::instance().initialize(QUrl("http://localhost:8000/bundle-test.js"));
Invidious::instance().initServers();
}
diff --git a/src/standardfeedsview.cpp b/src/standardfeedsview.cpp
index 2fb697d..4c23365 100644
--- a/src/standardfeedsview.cpp
+++ b/src/standardfeedsview.cpp
@@ -82,6 +82,19 @@ void StandardFeedsView::load() {
QAction *regionAction = MainWindow::instance()->getRegionAction();
regionAction->setText(region.name);
regionAction->setIcon(YTRegions::iconForRegionId(region.id));
+
+ loadNextPreview();
+}
+
+void StandardFeedsView::loadNextPreview(VideoSourceWidget *previous) {
+ int index = 0;
+ if (previous) {
+ index = sourceWidgets.indexOf(previous);
+ index++;
+ if (index == sourceWidgets.length() || index < 0) return;
+ }
+ auto w = sourceWidgets.at(index);
+ w->loadPreview()->finally([this, w] { loadNextPreview(w); });
}
void StandardFeedsView::layoutCategories(const QVector<YTCategory> &categories) {
@@ -106,6 +119,9 @@ void StandardFeedsView::addVideoSourceWidget(VideoSource *videoSource) {
int i = layout->count();
const int cols = VideoAPI::impl() == VideoAPI::YT3 ? 5 : 2;
layout->addWidget(w, i / cols, i % cols);
+
+ connect(w, &QObject::destroyed, this, [this, w] { sourceWidgets.removeOne(w); });
+ sourceWidgets << w;
}
void StandardFeedsView::removeVideoSourceWidget(VideoSourceWidget *videoSourceWidget) {
diff --git a/src/standardfeedsview.h b/src/standardfeedsview.h
index aa07c0c..1070cab 100644
--- a/src/standardfeedsview.h
+++ b/src/standardfeedsview.h
@@ -56,9 +56,12 @@ private slots:
private:
void resetLayout();
void addVideoSourceWidget(VideoSource *videoSource);
+ void loadNextPreview(VideoSourceWidget *previous = nullptr);
+
YTStandardFeed *
buildStandardFeed(const QString &feedId, const QString &label, QString time = QString());
QGridLayout *layout;
+ QVector<VideoSourceWidget *> sourceWidgets;
};
#endif // CATEGORIESVIEW_H
diff --git a/src/videosourcewidget.cpp b/src/videosourcewidget.cpp
index 2e4adf7..3cb2ef0 100644
--- a/src/videosourcewidget.cpp
+++ b/src/videosourcewidget.cpp
@@ -33,7 +33,6 @@ VideoSourceWidget::VideoSourceWidget(VideoSource *videoSource, QWidget *parent)
lastPixelRatio(0) {
videoSource->setParent(this);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- loadPreview();
connect(this, SIGNAL(activated()), SLOT(activate()));
}
@@ -54,9 +53,10 @@ void VideoSourceWidget::previewVideo(const QVector<Video *> &videos) {
video->loadThumb(size(), lastPixelRatio)
.then([this](auto variant) { setPixmapData(variant.toByteArray()); })
.onFailed([](auto msg) { qDebug() << msg; })
- .finally([videos] {
+ .finally([this, videos] {
for (auto v : videos)
v->deleteLater();
+ emit previewLoaded();
});
}
@@ -66,10 +66,18 @@ void VideoSourceWidget::setPixmapData(const QByteArray &bytes) {
update();
}
-void VideoSourceWidget::loadPreview() {
- connect(videoSource, SIGNAL(gotVideos(QVector<Video*>)),
- SLOT(previewVideo(QVector<Video*>)), Qt::UniqueConnection);
+EmptyPromise *VideoSourceWidget::loadPreview() {
+ auto promise = new EmptyPromise(this);
+ connect(this, &VideoSourceWidget::previewLoaded, promise, &EmptyPromise::resolve);
+ connect(this, &VideoSourceWidget::unavailable, promise, [promise] {
+ promise->reject(staticMetaObject.className() + QLatin1String(" unavailable"));
+ });
+
+ connect(videoSource, SIGNAL(gotVideos(QVector<Video *>)), SLOT(previewVideo(QVector<Video *>)),
+ Qt::UniqueConnection);
videoSource->loadVideos(1, 1);
+
+ return promise;
}
QPixmap VideoSourceWidget::playPixmap() {
diff --git a/src/videosourcewidget.h b/src/videosourcewidget.h
index b6fda3a..3a491ea 100644
--- a/src/videosourcewidget.h
+++ b/src/videosourcewidget.h
@@ -23,6 +23,7 @@ $END_LICENSE */
#include <QtWidgets>
+#include "emptypromise.h"
#include "gridwidget.h"
class Video;
@@ -35,9 +36,11 @@ class VideoSourceWidget : public GridWidget {
public:
VideoSourceWidget(VideoSource *videoSource, QWidget *parent = 0);
VideoSource *getVideoSource() { return videoSource; }
+ EmptyPromise *loadPreview();
signals:
void activated(VideoSource *videoSource);
+ void previewLoaded();
void unavailable(VideoSourceWidget *videoSourceWidget);
protected:
@@ -49,8 +52,6 @@ private slots:
void setPixmapData(const QByteArray &bytes);
private:
- void loadPreview();
-
QPixmap playPixmap();
VideoSource *videoSource;
QPixmap pixmap;
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/lib/debug/.build-id/4b/5bd1fbee006727d3e1f61785991fb16ca72eb6.debug
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/lib/debug/.build-id/57/501b9671a60152611f3896397ccc8d727df134.debug
No differences were encountered between the control files of package minitube
Control files of package minitube-dbgsym: lines which differ (wdiff format)
Build-Ids: 57501b9671a60152611f3896397ccc8d727df134 4b5bd1fbee006727d3e1f61785991fb16ca72eb6