Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package minitube for openSUSE:Factory 
checked in at 2021-11-13 22:48:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/minitube (Old)
 and      /work/SRC/openSUSE:Factory/.minitube.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "minitube"

Sat Nov 13 22:48:33 2021 rev:28 rq:931180 version:3.9.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/minitube/minitube.changes        2021-09-16 
23:17:36.907981133 +0200
+++ /work/SRC/openSUSE:Factory/.minitube.new.1890/minitube.changes      
2021-11-13 22:49:04.073274902 +0100
@@ -1,0 +2,9 @@
+Fri Nov 12 05:14:23 UTC 2021 - Carsten Ziepke <kiel...@gmail.com>
+
+- Update to 3.9.2:
+  - Update media
+  - Load previews sequentially
+  - Update js
+  - Updated translations
+
+-------------------------------------------------------------------
@@ -4 +13 @@
-- Update to 3.91:
+- Update to 3.9.1:

Old:
----
  minitube-3.9.1.tar.xz

New:
----
  minitube-3.9.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ minitube.spec ++++++
--- /var/tmp/diff_new_pack.lt6yiC/_old  2021-11-13 22:49:04.481275215 +0100
+++ /var/tmp/diff_new_pack.lt6yiC/_new  2021-11-13 22:49:04.485275217 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           minitube
-Version:        3.9.1
+Version:        3.9.2
 Release:        0
 Summary:        Native YouTube Client
 License:        GPL-3.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.lt6yiC/_old  2021-11-13 22:49:04.509275236 +0100
+++ /var/tmp/diff_new_pack.lt6yiC/_new  2021-11-13 22:49:04.509275236 +0100
@@ -4,7 +4,7 @@
     <param name="url">https://github.com/flaviotordini/minitube.git</param>
     <param name="filename">minitube</param>
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="revision">3.9.1</param>
+    <param name="revision">3.9.2</param>
   </service>
   <service mode="disabled" name="recompress">
     <param name="file">*.tar</param>

++++++ minitube-3.9.1.tar.xz -> minitube-3.9.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/lib/js/js.cpp 
new/minitube-3.9.2/lib/js/js.cpp
--- old/minitube-3.9.1/lib/js/js.cpp    2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/lib/js/js.cpp    2021-11-11 13:11:41.000000000 +0100
@@ -55,8 +55,6 @@
         return *result;
     }
 
-    resetNAM();
-
     auto function = engine->evaluate(name);
     if (!function.isCallable()) {
         qWarning() << function.toString() << " is not callable";
@@ -126,6 +124,7 @@
         auto value = engine->evaluate(reply.body());
         if (!checkError(value)) {
             qDebug() << "Initialized";
+            resetNAM();
             ready = true;
             emit initialized();
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/lib/media/src/mpv/mediampv.cpp 
new/minitube-3.9.2/lib/media/src/mpv/mediampv.cpp
--- old/minitube-3.9.1/lib/media/src/mpv/mediampv.cpp   2021-09-13 
13:02:36.000000000 +0200
+++ new/minitube-3.9.2/lib/media/src/mpv/mediampv.cpp   2021-11-11 
13:11:41.000000000 +0100
@@ -86,6 +86,7 @@
     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 @@
             }
         }
 
+        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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/ar.ts 
new/minitube-3.9.2/locale/ar.ts
--- old/minitube-3.9.1/locale/ar.ts     2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/ar.ts     2021-11-11 13:11:41.000000000 +0100
@@ -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>&amp;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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/da.ts 
new/minitube-3.9.2/locale/da.ts
--- old/minitube-3.9.1/locale/da.ts     2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/da.ts     2021-11-11 13:11:41.000000000 +0100
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/id.ts 
new/minitube-3.9.2/locale/id.ts
--- old/minitube-3.9.1/locale/id.ts     2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/id.ts     2021-11-11 13:11:41.000000000 +0100
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/pt_BR.ts 
new/minitube-3.9.2/locale/pt_BR.ts
--- old/minitube-3.9.1/locale/pt_BR.ts  2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/pt_BR.ts  2021-11-11 13:11:41.000000000 +0100
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/uk.ts 
new/minitube-3.9.2/locale/uk.ts
--- old/minitube-3.9.1/locale/uk.ts     2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/uk.ts     2021-11-11 13:11:41.000000000 +0100
@@ -671,7 +671,7 @@
     </message>
     <message>
         <source>Toggle &amp;Menu Bar</source>
-        <translation type="unfinished"/>
+        <translation>?????????????????? &amp;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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/uk_UA.ts 
new/minitube-3.9.2/locale/uk_UA.ts
--- old/minitube-3.9.1/locale/uk_UA.ts  2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/uk_UA.ts  2021-11-11 13:11:41.000000000 +0100
@@ -19,7 +19,7 @@
     </message>
     <message>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to 
support the continued development of %2.</source>
-        <translation>???????? ??????????, &lt;a 
href=&apos;%1&apos;&gt;?????????????? ????????????????,&lt;/a&gt; ?????? 
???????????????????? ?????????????????? ???????????????? %2.</translation>
+        <translation>???????? ??????????, &lt;a 
href=&apos;%1&apos;&gt;?????????????? ????????????????&lt;/a&gt;, ?????? 
???????????????????? ?????????????????? ???????????????? %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&amp;kip</source>
@@ -451,7 +451,7 @@
     </message>
     <message>
         <source>Skip to the next video</source>
-        <translation>?????????????? ???? ???????????????????? 
????????????</translation>
+        <translation>?????????????? ???? ???????????????????? 
??????????</translation>
     </message>
     <message>
         <source>&amp;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 &amp;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 &amp;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 &amp;URL</source>
-        <translation>?????????????????? ?????????????????? ???? 
????&amp;???????? ??????????</translation>
+        <translation>?????????????????? ?????????????????? ???? 
????&amp;????????????????</translation>
     </message>
     <message>
         <source>Copy the current video stream URL to the clipboard</source>
-        <translation>???????????????????? ?????????????????? 
?????????????????? ???????????? ???? ????????????</translation>
+        <translation>???????????????????? ?????????????????? 
?????????????????? ?????????? ???? ????????????</translation>
     </message>
     <message>
         <source>Find Video &amp;Parts</source>
-        <translation>???????????? &amp;?????????????????? 
????????????</translation>
+        <translation>???????????? &amp;?????????????????? 
??????????</translation>
     </message>
     <message>
         <source>Find other video parts hopefully in the right order</source>
-        <translation>???????????? ???????? ?????????????? ????????????, 
????????????????????, ?? ?????????????????????? ??????????????</translation>
+        <translation>???????????? ???????? ?????????????? ??????????, 
????????????????????, ?? ?????????????????????? ??????????????</translation>
     </message>
     <message>
         <source>&amp;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 &amp;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 &amp;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>&amp;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>&amp;Quit</source>
@@ -551,7 +551,7 @@
     </message>
     <message>
         <source>&amp;Website</source>
-        <translation>&amp;??????-????????</translation>
+        <translation>&amp;??????????????</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>&amp;Downloads</source>
@@ -595,7 +595,7 @@
     </message>
     <message>
         <source>Show details about video downloads</source>
-        <translation>???????????????? ???????????? ?????? ????????????, ???? 
????????????????????????????</translation>
+        <translation>???????????????? ???????????? ?????? 
?????????????????????????? ??????????</translation>
     </message>
     <message>
         <source>&amp;Download</source>
@@ -603,7 +603,7 @@
     </message>
     <message>
         <source>Download the current video</source>
-        <translation>?????????????????????? ???? ????????????</translation>
+        <translation>?????????????????????? ???? ??????????</translation>
     </message>
     <message>
         <source>Take &amp;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>&amp;Email</source>
@@ -635,7 +635,7 @@
     </message>
     <message>
         <source>&amp;Stop After This Video</source>
-        <translation>????&amp;???????????? ?????????? ?????????? 
????????????</translation>
+        <translation>????&amp;???????????? ?????????? ?????????? 
??????????</translation>
     </message>
     <message>
         <source>&amp;Report an Issue...</source>
@@ -651,11 +651,11 @@
     </message>
     <message>
         <source>&amp;Related Videos</source>
-        <translation>??????&amp;???? ????????????</translation>
+        <translation>??????&amp;???? ??????????</translation>
     </message>
     <message>
         <source>Watch videos related to the current one</source>
-        <translation>???????????????? ????????????, ??????????????????? ?? 
????????????????</translation>
+        <translation>???????????????? ??????????, ??????????????????? ?? 
????????????????</translation>
     </message>
     <message>
         <source>Open in &amp;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 &amp;Menu Bar</source>
-        <translation type="unfinished"/>
+        <translation>?????????????????? &amp;????????</translation>
     </message>
     <message>
         <source>Menu</source>
-        <translation type="unfinished"/>
+        <translation>????????</translation>
     </message>
     <message>
         <source>&amp;Love %1? Rate it!</source>
@@ -695,11 +695,11 @@
     </message>
     <message>
         <source>&amp;Playlist</source>
-        <translation>&amp;?????????????? ??????????????????????</translation>
+        <translation>&amp;????????????????</translation>
     </message>
     <message>
         <source>&amp;Video</source>
-        <translation>&amp;????????????</translation>
+        <translation>&amp;??????????</translation>
     </message>
     <message>
         <source>&amp;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>&amp;Forward</source>
-        <translation type="unfinished"/>
+        <translation>&amp;????????????</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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/locale/zh_CN.ts 
new/minitube-3.9.2/locale/zh_CN.ts
--- old/minitube-3.9.1/locale/zh_CN.ts  2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/locale/zh_CN.ts  2021-11-11 13:11:41.000000000 +0100
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/minitube.pro 
new/minitube-3.9.2/minitube.pro
--- old/minitube-3.9.1/minitube.pro     2021-09-13 13:02:36.000000000 +0200
+++ new/minitube-3.9.2/minitube.pro     2021-11-11 13:11:41.000000000 +0100
@@ -1,7 +1,7 @@
 CONFIG += c++17 exceptions_off rtti_off object_parallel_to_source
 
 TEMPLATE = app
-VERSION = 3.9.1
+VERSION = 3.9.2
 DEFINES += APP_VERSION="$$VERSION"
 
 APP_NAME = Minitube
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/src/standardfeedsview.cpp 
new/minitube-3.9.2/src/standardfeedsview.cpp
--- old/minitube-3.9.1/src/standardfeedsview.cpp        2021-09-13 
13:02:36.000000000 +0200
+++ new/minitube-3.9.2/src/standardfeedsview.cpp        2021-11-11 
13:11:41.000000000 +0100
@@ -82,6 +82,19 @@
     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 @@
     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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/src/standardfeedsview.h 
new/minitube-3.9.2/src/standardfeedsview.h
--- old/minitube-3.9.1/src/standardfeedsview.h  2021-09-13 13:02:36.000000000 
+0200
+++ new/minitube-3.9.2/src/standardfeedsview.h  2021-11-11 13:11:41.000000000 
+0100
@@ -56,9 +56,12 @@
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/src/videosourcewidget.cpp 
new/minitube-3.9.2/src/videosourcewidget.cpp
--- old/minitube-3.9.1/src/videosourcewidget.cpp        2021-09-13 
13:02:36.000000000 +0200
+++ new/minitube-3.9.2/src/videosourcewidget.cpp        2021-11-11 
13:11:41.000000000 +0100
@@ -33,7 +33,6 @@
       lastPixelRatio(0) {
     videoSource->setParent(this);
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-    loadPreview();
     connect(this, SIGNAL(activated()), SLOT(activate()));
 }
 
@@ -54,9 +53,10 @@
     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 @@
     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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minitube-3.9.1/src/videosourcewidget.h 
new/minitube-3.9.2/src/videosourcewidget.h
--- old/minitube-3.9.1/src/videosourcewidget.h  2021-09-13 13:02:36.000000000 
+0200
+++ new/minitube-3.9.2/src/videosourcewidget.h  2021-11-11 13:11:41.000000000 
+0100
@@ -23,6 +23,7 @@
 
 #include <QtWidgets>
 
+#include "emptypromise.h"
 #include "gridwidget.h"
 
 class Video;
@@ -35,9 +36,11 @@
 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 @@
     void setPixmapData(const QByteArray &bytes);
 
 private:
-    void loadPreview();
-
     QPixmap playPixmap();
     VideoSource *videoSource;
     QPixmap pixmap;

Reply via email to