Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kjobwidgets for openSUSE:Factory 
checked in at 2021-04-12 12:34:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kjobwidgets (Old)
 and      /work/SRC/openSUSE:Factory/.kjobwidgets.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kjobwidgets"

Mon Apr 12 12:34:36 2021 rev:90 rq:884270 version:5.81.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kjobwidgets/kjobwidgets.changes  2021-03-16 
15:42:08.628820115 +0100
+++ /work/SRC/openSUSE:Factory/.kjobwidgets.new.2401/kjobwidgets.changes        
2021-04-12 12:36:35.621315498 +0200
@@ -1,0 +2,11 @@
+Mon Apr  5 07:12:35 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 5.81.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.81.0
+- Changes since 5.80.0:
+  * KUiServerV2JobTracker: Send properties in requestView call
+  * Introduce KUiServerV2JobTracker
+
+-------------------------------------------------------------------

Old:
----
  kjobwidgets-5.80.0.tar.xz
  kjobwidgets-5.80.0.tar.xz.sig

New:
----
  kjobwidgets-5.81.0.tar.xz
  kjobwidgets-5.81.0.tar.xz.sig

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

Other differences:
------------------
++++++ kjobwidgets.spec ++++++
--- /var/tmp/diff_new_pack.pt73nP/_old  2021-04-12 12:36:36.373316372 +0200
+++ /var/tmp/diff_new_pack.pt73nP/_new  2021-04-12 12:36:36.377316377 +0200
@@ -17,14 +17,14 @@
 
 
 %define lname   libKF5JobWidgets5
-%define _tar_path 5.80
+%define _tar_path 5.81
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without lang
 Name:           kjobwidgets
-Version:        5.80.0
+Version:        5.81.0
 Release:        0
 Summary:        Widgets for showing progress of asynchronous jobs
 License:        LGPL-2.1-or-later


++++++ kjobwidgets-5.80.0.tar.xz -> kjobwidgets-5.81.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/CMakeLists.txt 
new/kjobwidgets-5.81.0/CMakeLists.txt
--- old/kjobwidgets-5.80.0/CMakeLists.txt       2021-03-06 17:27:13.000000000 
+0100
+++ new/kjobwidgets-5.81.0/CMakeLists.txt       2021-04-04 13:44:46.000000000 
+0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.5)
 
-set(KF_VERSION "5.80.0") # handled by release scripts
-set(KF_DEP_VERSION "5.80.0") # handled by release scripts
+set(KF_VERSION "5.81.0") # handled by release scripts
+set(KF_DEP_VERSION "5.81.0") # handled by release scripts
 project(KJobWidgets VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.80.0  NO_MODULE)
+find_package(ECM 5.81.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -48,7 +48,7 @@
                         PACKAGE_VERSION_FILE 
"${CMAKE_CURRENT_BINARY_DIR}/KF5JobWidgetsConfigVersion.cmake"
                         SOVERSION 5)
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050e00)
-add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054F00)
+add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055000)
 add_definitions(-DQT_NO_FOREACH)
 if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
     ecm_install_po_files_as_qm(po)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/po/it/kjobwidgets5_qt.po 
new/kjobwidgets-5.81.0/po/it/kjobwidgets5_qt.po
--- old/kjobwidgets-5.80.0/po/it/kjobwidgets5_qt.po     2021-03-06 
17:27:13.000000000 +0100
+++ new/kjobwidgets-5.81.0/po/it/kjobwidgets5_qt.po     2021-04-04 
13:44:46.000000000 +0200
@@ -10,7 +10,7 @@
 # Pino Toscano <toscano.p...@tiscali.it>, 2008.
 # Federico Zenith <federico.zen...@member.fsf.org>, 2008, 2012, 2013, 2014, 
2015.
 # Innocenzo Ventre <innocenzo.ven...@gmail.com>, 2012.
-# Vincenzo Reale <smart2...@baslug.org>, 2014, 2020.
+# Vincenzo Reale <smart212...@gmail.com>, 2014, 2020.
 msgid ""
 msgstr ""
 "Project-Id-Version: kdelibs4\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/po/nb/kjobwidgets5_qt.po 
new/kjobwidgets-5.81.0/po/nb/kjobwidgets5_qt.po
--- old/kjobwidgets-5.80.0/po/nb/kjobwidgets5_qt.po     2021-03-06 
17:27:13.000000000 +0100
+++ new/kjobwidgets-5.81.0/po/nb/kjobwidgets5_qt.po     2021-04-04 
13:44:46.000000000 +0200
@@ -26,7 +26,7 @@
 "X-Text-Markup: qtrich\n"
 "X-Qt-Contexts: true\n"
 
-#: kjobtrackerformatters.cpp:28
+#: kjobtrackerformatters.cpp:27
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n day(s)"
@@ -34,7 +34,7 @@
 msgstr[0] "%n dag(er)"
 msgstr[1] "%n dag(er)"
 
-#: kjobtrackerformatters.cpp:35
+#: kjobtrackerformatters.cpp:34
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n hour(s)"
@@ -42,7 +42,7 @@
 msgstr[0] "%n time(r)"
 msgstr[1] "%n time(r)"
 
-#: kjobtrackerformatters.cpp:42
+#: kjobtrackerformatters.cpp:41
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n minute(s)"
@@ -50,7 +50,7 @@
 msgstr[0] "%n minutt(er)"
 msgstr[1] "%n minutt(er)"
 
-#: kjobtrackerformatters.cpp:49
+#: kjobtrackerformatters.cpp:48
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n second(s)"
@@ -58,13 +58,13 @@
 msgstr[0] "%n sekund(er)"
 msgstr[1] "%n sekund(er)"
 
-#: kjobtrackerformatters.cpp:70
+#: kjobtrackerformatters.cpp:69
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext days and hours."
 msgid "%1 and %2"
 msgstr "%1 og %2"
 
-#: kjobtrackerformatters.cpp:74
+#: kjobtrackerformatters.cpp:73
 #, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext hours and minutes."
 msgid "%1 and %2"
@@ -76,29 +76,29 @@
 msgid "%1 and %2"
 msgstr "%1 og %2"
 
-#: kstatusbarjobtracker.cpp:163
+#: kstatusbarjobtracker.cpp:161
 msgctxt "KStatusBarJobTracker|"
 msgid "Stop"
 msgstr "Stopp"
 
-#: kstatusbarjobtracker.cpp:243
+#: kstatusbarjobtracker.cpp:240
 msgctxt "KStatusBarJobTracker|"
 msgid " Stalled "
 msgstr " Stoppet "
 
-#: kstatusbarjobtracker.cpp:245
+#: kstatusbarjobtracker.cpp:242
 #, qt-format
 msgctxt "KStatusBarJobTracker|"
 msgid " %1/s "
 msgstr " %1/s "
 
-#: kwidgetjobtracker.cpp:284 kwidgetjobtracker.cpp:295
+#: kwidgetjobtracker.cpp:279 kwidgetjobtracker.cpp:287
 #, qt-format
 msgctxt "KWidgetJobTracker|%1 is the label, we add a ':' to it"
 msgid "%1:"
 msgstr "%1:"
 
-#: kwidgetjobtracker.cpp:357
+#: kwidgetjobtracker.cpp:347
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 of %2 complete"
@@ -106,7 +106,7 @@
 msgstr[0] "%1 av %2 ferdig"
 msgstr[1] "%1 av %2 ferdige"
 
-#: kwidgetjobtracker.cpp:376 kwidgetjobtracker.cpp:393
+#: kwidgetjobtracker.cpp:366 kwidgetjobtracker.cpp:383
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n folder(s)"
@@ -114,7 +114,7 @@
 msgstr[0] "%1 / %n mappe(r)"
 msgstr[1] "%1 / %n mappe(r)"
 
-#: kwidgetjobtracker.cpp:380 kwidgetjobtracker.cpp:398
+#: kwidgetjobtracker.cpp:370 kwidgetjobtracker.cpp:388
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n file(s)"
@@ -122,7 +122,7 @@
 msgstr[0] "%1 / %n fil(er)"
 msgstr[1] "%1 / %n fil(er)"
 
-#: kwidgetjobtracker.cpp:409
+#: kwidgetjobtracker.cpp:399
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n item(s)"
@@ -130,13 +130,13 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: kwidgetjobtracker.cpp:420
+#: kwidgetjobtracker.cpp:410
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1% of %2"
 msgstr "%1% av %2"
 
-#: kwidgetjobtracker.cpp:425
+#: kwidgetjobtracker.cpp:414
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1% of %n file(s)"
@@ -144,18 +144,18 @@
 msgstr[0] "%1% av %n fil(er"
 msgstr[1] "%1% av %n fil(er)"
 
-#: kwidgetjobtracker.cpp:427
+#: kwidgetjobtracker.cpp:416
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1%"
 msgstr "%1%"
 
-#: kwidgetjobtracker.cpp:440
+#: kwidgetjobtracker.cpp:429
 msgctxt "KWidgetJobTracker|"
 msgid "Stalled"
 msgstr "Stoppet"
 
-#: kwidgetjobtracker.cpp:447
+#: kwidgetjobtracker.cpp:436
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1/s (%2 remaining)"
@@ -163,79 +163,79 @@
 msgstr[0] "%1/s (%2 igjen)"
 msgstr[1] "%1/s (%2 igjen)"
 
-#: kwidgetjobtracker.cpp:449
+#: kwidgetjobtracker.cpp:439
 #, qt-format
 msgctxt "KWidgetJobTracker|speed in bytes per second"
 msgid "%1/s"
 msgstr "%1/s "
 
-#: kwidgetjobtracker.cpp:457
+#: kwidgetjobtracker.cpp:447
 msgctxt "KWidgetJobTracker|"
 msgid "&Close"
 msgstr "&Lukk"
 
-#: kwidgetjobtracker.cpp:459
+#: kwidgetjobtracker.cpp:449
 msgctxt "KWidgetJobTracker|"
 msgid "Close the current window or document"
 msgstr "Lukk vinduet eller dokumentet"
 
-#: kwidgetjobtracker.cpp:472
+#: kwidgetjobtracker.cpp:462
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1/s (done)"
 msgstr "%1/s (fullf??rt)"
 
-#: kwidgetjobtracker.cpp:479
+#: kwidgetjobtracker.cpp:468
 msgctxt "KWidgetJobTracker|"
 msgid "&Resume"
 msgstr "Fo&rtsett"
 
-#: kwidgetjobtracker.cpp:485 kwidgetjobtracker.cpp:557
+#: kwidgetjobtracker.cpp:474 kwidgetjobtracker.cpp:545
 msgctxt "KWidgetJobTracker|"
 msgid "&Pause"
 msgstr "&Pause"
 
-#: kwidgetjobtracker.cpp:509
+#: kwidgetjobtracker.cpp:498
 msgctxt "KWidgetJobTracker|The source url of a job"
 msgid "Source:"
 msgstr "Kilde:"
 
-#: kwidgetjobtracker.cpp:517
+#: kwidgetjobtracker.cpp:506
 msgctxt "KWidgetJobTracker|The destination url of a job"
 msgid "Destination:"
 msgstr "M??l:"
 
-#: kwidgetjobtracker.cpp:541 kwidgetjobtracker.cpp:729
+#: kwidgetjobtracker.cpp:530 kwidgetjobtracker.cpp:712
 msgctxt "KWidgetJobTracker|"
 msgid "Click this to expand the dialog, to show details"
 msgstr "Trykk her for ?? utvide dialogen slik at detaljer blir vist"
 
-#: kwidgetjobtracker.cpp:578
+#: kwidgetjobtracker.cpp:565
 msgctxt "KWidgetJobTracker|"
 msgid "&Keep this window open after transfer is complete"
 msgstr "&Hold dette vinduet ??pent etter nedlasting"
 
-#: kwidgetjobtracker.cpp:587
+#: kwidgetjobtracker.cpp:573
 msgctxt "KWidgetJobTracker|"
 msgid "Open &File"
 msgstr "??pne &fil"
 
-#: kwidgetjobtracker.cpp:594
+#: kwidgetjobtracker.cpp:579
 msgctxt "KWidgetJobTracker|"
 msgid "Open &Destination"
 msgstr "??pne &m??l"
 
-#: kwidgetjobtracker.cpp:603
+#: kwidgetjobtracker.cpp:587
 msgctxt "KWidgetJobTracker|"
 msgid "&Cancel"
 msgstr "&Avbryt"
 
-#: kwidgetjobtracker.cpp:612
+#: kwidgetjobtracker.cpp:595
 msgctxt "KWidgetJobTracker|"
 msgid "Progress Dialog"
 msgstr "Framdriftsdialog"
 
-#: kwidgetjobtracker.cpp:625
+#: kwidgetjobtracker.cpp:608
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n item(s)"
@@ -243,7 +243,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: kwidgetjobtracker.cpp:631
+#: kwidgetjobtracker.cpp:614
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n folder(s)"
@@ -251,7 +251,7 @@
 msgstr[0] "%n mappe(r)"
 msgstr[1] "%n mappe(r)"
 
-#: kwidgetjobtracker.cpp:635
+#: kwidgetjobtracker.cpp:618
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n file(s)"
@@ -259,7 +259,7 @@
 msgstr[0] "%n fil(er)"
 msgstr[1] "%n fil(er)"
 
-#: kwidgetjobtracker.cpp:722
+#: kwidgetjobtracker.cpp:705
 msgctxt "KWidgetJobTracker|"
 msgid "Click this to collapse the dialog, to hide details"
 msgstr "Trykk her for ?? folde sammen dialogen og skjule detaljer"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/po/se/kjobwidgets5_qt.po 
new/kjobwidgets-5.81.0/po/se/kjobwidgets5_qt.po
--- old/kjobwidgets-5.80.0/po/se/kjobwidgets5_qt.po     2021-03-06 
17:27:13.000000000 +0100
+++ new/kjobwidgets-5.81.0/po/se/kjobwidgets5_qt.po     2021-04-04 
13:44:46.000000000 +0200
@@ -20,7 +20,7 @@
 "X-Text-Markup: qtrich\n"
 "X-Qt-Contexts: true\n"
 
-#: kjobtrackerformatters.cpp:28
+#: kjobtrackerformatters.cpp:27
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n day(s)"
@@ -28,7 +28,7 @@
 msgstr[0] "%1 beaivvi"
 msgstr[1] "%1 beaivvi"
 
-#: kjobtrackerformatters.cpp:35
+#: kjobtrackerformatters.cpp:34
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n hour(s)"
@@ -36,7 +36,7 @@
 msgstr[0] "%1 diimmu"
 msgstr[1] "%1 diimmu"
 
-#: kjobtrackerformatters.cpp:42
+#: kjobtrackerformatters.cpp:41
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n minute(s)"
@@ -44,7 +44,7 @@
 msgstr[0] "%1 minuhta"
 msgstr[1] "%1 minuhta"
 
-#: kjobtrackerformatters.cpp:49
+#: kjobtrackerformatters.cpp:48
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext"
 msgid "%n second(s)"
@@ -52,13 +52,13 @@
 msgstr[0] "%1 sekundda"
 msgstr[1] "%1 sekundda"
 
-#: kjobtrackerformatters.cpp:70
+#: kjobtrackerformatters.cpp:69
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext days and hours."
 msgid "%1 and %2"
 msgstr "%1 ja %2"
 
-#: kjobtrackerformatters.cpp:74
+#: kjobtrackerformatters.cpp:73
 #, fuzzy, qt-format
 msgctxt "KJobTrackerFormatters|@item:intext hours and minutes."
 msgid "%1 and %2"
@@ -70,31 +70,31 @@
 msgid "%1 and %2"
 msgstr "%1 ja %2"
 
-#: kstatusbarjobtracker.cpp:163
+#: kstatusbarjobtracker.cpp:161
 #, fuzzy
 msgctxt "KStatusBarJobTracker|"
 msgid "Stop"
 msgstr "Bisset"
 
-#: kstatusbarjobtracker.cpp:243
+#: kstatusbarjobtracker.cpp:240
 #, fuzzy
 msgctxt "KStatusBarJobTracker|"
 msgid " Stalled "
 msgstr " Bis??nan"
 
-#: kstatusbarjobtracker.cpp:245
+#: kstatusbarjobtracker.cpp:242
 #, fuzzy, qt-format
 msgctxt "KStatusBarJobTracker|"
 msgid " %1/s "
 msgstr " %1/s "
 
-#: kwidgetjobtracker.cpp:284 kwidgetjobtracker.cpp:295
+#: kwidgetjobtracker.cpp:279 kwidgetjobtracker.cpp:287
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|%1 is the label, we add a ':' to it"
 msgid "%1:"
 msgstr "%1:"
 
-#: kwidgetjobtracker.cpp:357
+#: kwidgetjobtracker.cpp:347
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 of %2 complete"
@@ -102,7 +102,7 @@
 msgstr[0] "%2 %3:s geargan"
 msgstr[1] "%2 %3:s geargan"
 
-#: kwidgetjobtracker.cpp:376 kwidgetjobtracker.cpp:393
+#: kwidgetjobtracker.cpp:366 kwidgetjobtracker.cpp:383
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n folder(s)"
@@ -110,7 +110,7 @@
 msgstr[0] "%2 / %1 m??hppa"
 msgstr[1] "%2 / %1 m??hpa"
 
-#: kwidgetjobtracker.cpp:380 kwidgetjobtracker.cpp:398
+#: kwidgetjobtracker.cpp:370 kwidgetjobtracker.cpp:388
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n file(s)"
@@ -118,7 +118,7 @@
 msgstr[0] "%2 / %1 fiila"
 msgstr[1] "%2 / %1 fiilla"
 
-#: kwidgetjobtracker.cpp:409
+#: kwidgetjobtracker.cpp:399
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1 / %n item(s)"
@@ -126,13 +126,13 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: kwidgetjobtracker.cpp:420
+#: kwidgetjobtracker.cpp:410
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1% of %2"
 msgstr "%1 % %2:s "
 
-#: kwidgetjobtracker.cpp:425
+#: kwidgetjobtracker.cpp:414
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1% of %n file(s)"
@@ -140,19 +140,19 @@
 msgstr[0] "%2% 1 fiillas"
 msgstr[1] "%2% %1 fiillas"
 
-#: kwidgetjobtracker.cpp:427
+#: kwidgetjobtracker.cpp:416
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1%"
 msgstr "%1"
 
-#: kwidgetjobtracker.cpp:440
+#: kwidgetjobtracker.cpp:429
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Stalled"
 msgstr "Bis??nan"
 
-#: kwidgetjobtracker.cpp:447
+#: kwidgetjobtracker.cpp:436
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1/s (%2 remaining)"
@@ -160,93 +160,93 @@
 msgstr[0] "%2/s ( %3 ovdalgo gearg??)"
 msgstr[1] "%2/s ( %3 ovdalgo gearg??)"
 
-#: kwidgetjobtracker.cpp:449
+#: kwidgetjobtracker.cpp:439
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|speed in bytes per second"
 msgid "%1/s"
 msgstr "%1/s"
 
-#: kwidgetjobtracker.cpp:457
+#: kwidgetjobtracker.cpp:447
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "&Close"
 msgstr "&Gidde"
 
-#: kwidgetjobtracker.cpp:459
+#: kwidgetjobtracker.cpp:449
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Close the current window or document"
 msgstr "Gidde d??l?? l??se dahje dokumeantta"
 
-#: kwidgetjobtracker.cpp:472
+#: kwidgetjobtracker.cpp:462
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%1/s (done)"
 msgstr "%1/s (geargan)"
 
-#: kwidgetjobtracker.cpp:479
+#: kwidgetjobtracker.cpp:468
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "&Resume"
 msgstr "&Joatkke"
 
-#: kwidgetjobtracker.cpp:485 kwidgetjobtracker.cpp:557
+#: kwidgetjobtracker.cpp:474 kwidgetjobtracker.cpp:545
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "&Pause"
 msgstr "&Botke"
 
 # unreviewed-context
-#: kwidgetjobtracker.cpp:509
+#: kwidgetjobtracker.cpp:498
 #, fuzzy
 msgctxt "KWidgetJobTracker|The source url of a job"
 msgid "Source:"
 msgstr "G??ldu:"
 
 # unreviewed-context
-#: kwidgetjobtracker.cpp:517
+#: kwidgetjobtracker.cpp:506
 #, fuzzy
 msgctxt "KWidgetJobTracker|The destination url of a job"
 msgid "Destination:"
 msgstr "Ulbmil:"
 
-#: kwidgetjobtracker.cpp:541 kwidgetjobtracker.cpp:729
+#: kwidgetjobtracker.cpp:530 kwidgetjobtracker.cpp:712
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Click this to expand the dialog, to show details"
 msgstr "Coahkkal d??n vai oaidnit eanet bienaid"
 
-#: kwidgetjobtracker.cpp:578
+#: kwidgetjobtracker.cpp:565
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "&Keep this window open after transfer is complete"
 msgstr "&Doalat d??n l??se rabas ma?????? vie????ama"
 
-#: kwidgetjobtracker.cpp:587
+#: kwidgetjobtracker.cpp:573
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Open &File"
 msgstr "Raba &fiilla"
 
-#: kwidgetjobtracker.cpp:594
+#: kwidgetjobtracker.cpp:579
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Open &Destination"
 msgstr "Raba &ulbmila"
 
-#: kwidgetjobtracker.cpp:603
+#: kwidgetjobtracker.cpp:587
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "&Cancel"
 msgstr "G&askkalduhtte"
 
-#: kwidgetjobtracker.cpp:612
+#: kwidgetjobtracker.cpp:595
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Progress Dialog"
 msgstr "Ovd??nanl??se??"
 
-#: kwidgetjobtracker.cpp:625
+#: kwidgetjobtracker.cpp:608
 #, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n item(s)"
@@ -254,7 +254,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: kwidgetjobtracker.cpp:631
+#: kwidgetjobtracker.cpp:614
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n folder(s)"
@@ -262,7 +262,7 @@
 msgstr[0] "%1 m??hppa"
 msgstr[1] "%1 m??hpa"
 
-#: kwidgetjobtracker.cpp:635
+#: kwidgetjobtracker.cpp:618
 #, fuzzy, qt-format
 msgctxt "KWidgetJobTracker|"
 msgid "%n file(s)"
@@ -270,7 +270,7 @@
 msgstr[0] "%1 fiila"
 msgstr[1] "%1 fiilla"
 
-#: kwidgetjobtracker.cpp:722
+#: kwidgetjobtracker.cpp:705
 #, fuzzy
 msgctxt "KWidgetJobTracker|"
 msgid "Click this to collapse the dialog, to hide details"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/po/zh_CN/kjobwidgets5_qt.po 
new/kjobwidgets-5.81.0/po/zh_CN/kjobwidgets5_qt.po
--- old/kjobwidgets-5.80.0/po/zh_CN/kjobwidgets5_qt.po  2021-03-06 
17:27:13.000000000 +0100
+++ new/kjobwidgets-5.81.0/po/zh_CN/kjobwidgets5_qt.po  2021-04-04 
13:44:46.000000000 +0200
@@ -13,7 +13,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2021-03-02 16:17\n"
+"PO-Revision-Date: 2021-03-27 17:29\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/CMakeLists.txt 
new/kjobwidgets-5.81.0/src/CMakeLists.txt
--- old/kjobwidgets-5.80.0/src/CMakeLists.txt   2021-03-06 17:27:13.000000000 
+0100
+++ new/kjobwidgets-5.81.0/src/CMakeLists.txt   2021-04-04 13:44:46.000000000 
+0200
@@ -7,6 +7,7 @@
   kdialogjobuidelegate.cpp
   kjobtrackerformatters.cpp
   kuiserverjobtracker.cpp
+  kuiserverv2jobtracker.cpp
   kjobwidgets.cpp
   kstatusbarjobtracker.cpp
   kwidgetjobtracker.cpp
@@ -25,6 +26,9 @@
 qt5_add_dbus_interfaces(kjobwidgets_SRCS 
${CMAKE_CURRENT_SOURCE_DIR}/org.kde.JobViewServer.xml )
 qt5_add_dbus_interface(kjobwidgets_SRCS 
${CMAKE_CURRENT_SOURCE_DIR}/org.kde.JobView.xml jobviewiface )
 
+qt5_add_dbus_interfaces(kjobwidgets_SRCS 
${CMAKE_CURRENT_SOURCE_DIR}/org.kde.JobViewServerV2.xml )
+qt5_add_dbus_interface(kjobwidgets_SRCS 
${CMAKE_CURRENT_SOURCE_DIR}/org.kde.JobViewV3.xml jobviewv3iface )
+
 add_library(KF5JobWidgets ${kjobwidgets_SRCS})
 
 ecm_generate_export_header(KF5JobWidgets
@@ -65,6 +69,7 @@
   KAbstractWidgetJobTracker
   KDialogJobUiDelegate
   KUiServerJobTracker
+  KUiServerV2JobTracker
   KJobWidgets
   KStatusBarJobTracker
   KWidgetJobTracker
@@ -86,6 +91,7 @@
       kabstractwidgetjobtracker.h
       kdialogjobuidelegate.h
       kuiserverjobtracker.h
+      kuiserverv2jobtracker.h
       kjobwidgets.h
       kstatusbarjobtracker.h
       kwidgetjobtracker.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker.cpp 
new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker.cpp
--- old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker.cpp        1970-01-01 
01:00:00.000000000 +0100
+++ new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker.cpp        2021-04-04 
13:44:46.000000000 +0200
@@ -0,0 +1,391 @@
+/*
+    This file is part of the KDE project
+    SPDX-FileCopyrightText: 2021 Kai Uwe Broulik <k...@broulik.de>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#include "kuiserverv2jobtracker.h"
+#include "kuiserverv2jobtracker_p.h"
+
+#include "jobviewv3iface.h"
+#include "debug.h"
+
+#include <kjob.h>
+
+#include <QDBusConnection>
+#include <QDBusPendingCallWatcher>
+#include <QDBusPendingReply>
+#include <QGuiApplication>
+#include <QTimer>
+#include <QHash>
+#include <QVariantMap>
+
+Q_GLOBAL_STATIC(KSharedUiServerV2Proxy, serverProxy)
+
+struct JobView
+{
+    QTimer *delayTimer = nullptr;
+    org::kde::JobViewV3 *jobView = nullptr;
+    QVariantMap currentState;
+    QVariantMap pendingUpdates;
+};
+
+class KUiServerV2JobTrackerPrivate
+{
+public:
+    KUiServerV2JobTrackerPrivate(KUiServerV2JobTracker *parent)
+        : q(parent)
+    {
+        updateTimer.setInterval(0);
+        updateTimer.setSingleShot(true);
+        QObject::connect(&updateTimer, &QTimer::timeout, q, [this] {
+            sendAllUpdates();
+        });
+    }
+
+    KUiServerV2JobTracker *const q;
+
+    void sendAllUpdates();
+    void sendUpdate(JobView &view);
+    void scheduleUpdate(KJob *job, const QString &key, const QVariant &value);
+
+    void updateDestUrl(KJob *job);
+
+    void requestView(KJob *job, const QString &desktopEntry);
+
+    QHash<KJob *, JobView> jobViews;
+    QTimer updateTimer;
+
+    QMetaObject::Connection serverRegisteredConnection;
+};
+
+void KUiServerV2JobTrackerPrivate::scheduleUpdate(KJob *job, const QString 
&key, const QVariant &value)
+{
+    auto &view = jobViews[job];
+    view.currentState[key] = value;
+    view.pendingUpdates[key] = value;
+
+    if (!updateTimer.isActive()) {
+        updateTimer.start();
+    }
+}
+
+void KUiServerV2JobTrackerPrivate::sendAllUpdates()
+{
+    for (auto it = jobViews.begin(), end = jobViews.end(); it != end; ++it) {
+        sendUpdate(it.value());
+    }
+}
+
+void KUiServerV2JobTrackerPrivate::sendUpdate(JobView &view)
+{
+    if (!view.jobView) {
+        return;
+    }
+
+    const QVariantMap updates = view.pendingUpdates;
+    if (updates.isEmpty()) {
+        return;
+    }
+
+    view.jobView->update(updates);
+    view.pendingUpdates.clear();
+}
+
+void KUiServerV2JobTrackerPrivate::updateDestUrl(KJob *job)
+{
+    const QVariant destUrl = job->property("destUrl");
+    scheduleUpdate(job, QStringLiteral("destUrl"), 
job->property("destUrl").toString());
+}
+
+void KUiServerV2JobTrackerPrivate::requestView(KJob *job, const QString 
&desktopEntry)
+{
+    QPointer<KJob> jobGuard = job;
+    auto &view = jobViews[job];
+
+    QVariantMap hints = view.currentState;
+    // Tells Plasma to show the job view right away, since the delay is always 
handled on our side
+    hints.insert(QStringLiteral("immediate"), true);
+    // Must not clear currentState as only Plasma 5.22+ will use properties 
from "hints",
+    // there must still be a full update() call for earlier versions!
+
+    auto reply = serverProxy()->uiserver()->requestView(desktopEntry, 
job->capabilities(), hints);
+
+    QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, q);
+    QObject::connect(watcher, &QDBusPendingCallWatcher::finished, q, [this, 
watcher, jobGuard, job] {
+        QDBusPendingReply<QDBusObjectPath> reply = *watcher;
+        watcher->deleteLater();
+
+        if (reply.isError()) {
+            qCWarning(KJOBWIDGETS) << "Failed to register job with 
KUiServerV2JobTracker" << reply.error().message();
+            jobViews.remove(job);
+            return;
+        }
+
+        const QString viewObjectPath = reply.value().path();
+        auto *jobView = new 
org::kde::JobViewV3(QStringLiteral("org.kde.JobViewServer"), viewObjectPath, 
QDBusConnection::sessionBus());
+
+        auto &view = jobViews[job];
+
+        if (jobGuard) {
+            QObject::connect(jobView, &org::kde::JobViewV3::cancelRequested, 
job, [job] {
+                job->kill(KJob::EmitResult);
+            });
+            QObject::connect(jobView, &org::kde::JobViewV3::suspendRequested, 
job, &KJob::suspend);
+            QObject::connect(jobView, &org::kde::JobViewV3::resumeRequested, 
job, &KJob::resume);
+
+            view.jobView = jobView;
+        }
+
+        // Now send the full current job state over
+        jobView->update(view.currentState);
+        // which also contains all pending updates
+        view.pendingUpdates.clear();
+
+        // Job was deleted or finished in the meantime
+        if (!jobGuard || 
view.currentState.value(QStringLiteral("terminated")).toBool()) {
+            const uint errorCode = 
view.currentState.value(QStringLiteral("errorCode")).toUInt();
+            const QString errorMessage = 
view.currentState.value(QStringLiteral("errorMessage")).toString();
+
+            jobView->terminate(errorCode, errorMessage, QVariantMap() 
/*hints*/);
+            delete jobView;
+
+            jobViews.remove(job);
+        }
+    });
+}
+
+KUiServerV2JobTracker::KUiServerV2JobTracker(QObject *parent)
+    : KJobTrackerInterface(parent)
+    , d(new KUiServerV2JobTrackerPrivate(this))
+{
+    qDBusRegisterMetaType<qulonglong>();
+}
+
+KUiServerV2JobTracker::~KUiServerV2JobTracker()
+{
+    if (!d->jobViews.isEmpty()) {
+        qCWarning(KJOBWIDGETS) << "A KUiServerV2JobTracker instance contains"
+                               << d->jobViews.size() << "stalled jobs";
+    }
+
+    delete d;
+}
+
+void KUiServerV2JobTracker::registerJob(KJob *job)
+{
+    if (d->jobViews.contains(job)) {
+        return;
+    }
+
+    QString desktopEntry = job->property("desktopFileName").toString();
+    if (desktopEntry.isEmpty()) {
+        desktopEntry = QGuiApplication::desktopFileName();
+    }
+
+    if (desktopEntry.isEmpty()) {
+        qCWarning(KJOBWIDGETS) << "Cannot register a job with 
KUiServerV2JobTracker without QGuiApplication::desktopFileName";
+        return;
+    }
+
+    // Watch the server registering/unregistering and re-register the jobs as 
needed
+    if (!d->serverRegisteredConnection) {
+        d->serverRegisteredConnection = connect(serverProxy(), 
&KSharedUiServerV2Proxy::serverRegistered, this, [this]() {
+            const auto staleViews = d->jobViews;
+
+            // Delete the old views, remove the old struct but keep the state,
+            // register the job again (which checks for presence, hence 
removing first)
+            // and then restore its previous state, which is safe because the 
DBus
+            // is async and is only processed once event loop returns
+            for (auto it = staleViews.begin(), end = staleViews.end(); it != 
end; ++it) {
+                KJob *job = it.key();
+                const JobView &view = it.value();
+
+                const auto oldState = view.currentState;
+
+                delete view.jobView;
+                d->jobViews.remove(job);
+
+                registerJob(job);
+
+                d->jobViews[job].currentState = oldState;
+            }
+        });
+    }
+
+    d->updateDestUrl(job);
+
+    if (job->property("immediateProgressReporting").toBool()) {
+        d->requestView(job, desktopEntry);
+    } else {
+        QPointer<KJob> jobGuard = job;
+
+        QTimer *delayTimer = new QTimer();
+        delayTimer->setSingleShot(true);
+        connect(delayTimer, &QTimer::timeout, this, [this, job, jobGuard, 
desktopEntry] {
+            auto &view = d->jobViews[job];
+            if (view.delayTimer) {
+                view.delayTimer->deleteLater();
+                view.delayTimer = nullptr;
+            }
+
+            if (jobGuard) {
+                d->requestView(job, desktopEntry);
+            }
+        });
+
+        d->jobViews[job].delayTimer = delayTimer;
+        delayTimer->start(500);
+    }
+
+    KJobTrackerInterface::registerJob(job);
+}
+
+void KUiServerV2JobTracker::unregisterJob(KJob *job)
+{
+    KJobTrackerInterface::unregisterJob(job);
+    finished(job);
+}
+
+void KUiServerV2JobTracker::finished(KJob *job)
+{
+    d->updateDestUrl(job);
+
+    // send all pending updates before terminating to ensure state is correct
+    auto &view = d->jobViews[job];
+    d->sendUpdate(view);
+
+    if (view.delayTimer) {
+        delete view.delayTimer;
+        d->jobViews.remove(job);
+    } else if (view.jobView) {
+        view.jobView->terminate(static_cast<uint>(job->error()),
+                                job->error() ? job->errorText() : QString(),
+                                QVariantMap() /*hints*/);
+        delete view.jobView;
+        d->jobViews.remove(job);
+    } else {
+        // Remember that the job finished in the meantime and
+        // terminate the JobView once it arrives
+        d->scheduleUpdate(job, QStringLiteral("terminated"), true);
+        if (job->error()) {
+            d->scheduleUpdate(job, QStringLiteral("errorCode"), 
static_cast<uint>(job->error()));
+            d->scheduleUpdate(job, QStringLiteral("errorMessage"),  
job->errorText());
+        }
+    }
+}
+
+void KUiServerV2JobTracker::suspended(KJob *job)
+{
+    d->scheduleUpdate(job, QStringLiteral("suspended"), true);
+}
+
+void KUiServerV2JobTracker::resumed(KJob *job)
+{
+    d->scheduleUpdate(job, QStringLiteral("suspended"), false);
+}
+
+void KUiServerV2JobTracker::description(KJob *job, const QString &title,
+                                      const QPair<QString, QString> &field1,
+                                      const QPair<QString, QString> &field2)
+{
+    d->scheduleUpdate(job, QStringLiteral("title"), title);
+
+    d->scheduleUpdate(job, QStringLiteral("descriptionLabel1"), field1.first);
+    d->scheduleUpdate(job, QStringLiteral("descriptionValue1"), field1.second);
+
+    d->scheduleUpdate(job, QStringLiteral("descriptionLabel2"), field2.first);
+    d->scheduleUpdate(job, QStringLiteral("descriptionValue2"), field2.second);
+}
+
+void KUiServerV2JobTracker::infoMessage(KJob *job, const QString &plain, const 
QString &rich)
+{
+    Q_UNUSED(rich);
+    d->scheduleUpdate(job, QStringLiteral("infoMessage"), plain);
+}
+
+void KUiServerV2JobTracker::totalAmount(KJob *job, KJob::Unit unit, qulonglong 
amount)
+{
+    switch (unit) {
+    case KJob::Bytes:
+        d->scheduleUpdate(job, QStringLiteral("totalBytes"), amount);
+        break;
+    case KJob::Files:
+        d->scheduleUpdate(job, QStringLiteral("totalFiles"), amount);
+        break;
+    case KJob::Directories:
+        d->scheduleUpdate(job, QStringLiteral("totalDirectories"), amount);
+        break;
+    case KJob::Items:
+        d->scheduleUpdate(job, QStringLiteral("totalItems"), amount);
+        break;
+    }
+}
+
+void KUiServerV2JobTracker::processedAmount(KJob *job, KJob::Unit unit, 
qulonglong amount)
+{
+    switch (unit) {
+    case KJob::Bytes:
+        d->scheduleUpdate(job, QStringLiteral("processedBytes"), amount);
+        break;
+    case KJob::Files:
+        d->scheduleUpdate(job, QStringLiteral("processedFiles"), amount);
+        break;
+    case KJob::Directories:
+        d->scheduleUpdate(job, QStringLiteral("processedDirectories"), amount);
+        break;
+    case KJob::Items:
+        d->scheduleUpdate(job, QStringLiteral("processedItems"), amount);
+        break;
+    }
+}
+
+void KUiServerV2JobTracker::percent(KJob *job, unsigned long percent)
+{
+    d->scheduleUpdate(job, QStringLiteral("percent"), 
static_cast<uint>(percent));
+}
+
+void KUiServerV2JobTracker::speed(KJob *job, unsigned long speed)
+{
+    d->scheduleUpdate(job, QStringLiteral("speed"), 
static_cast<qulonglong>(speed));
+}
+
+KSharedUiServerV2Proxy::KSharedUiServerV2Proxy()
+    : m_uiserver(new 
org::kde::JobViewServerV2(QStringLiteral("org.kde.JobViewServer"), 
QStringLiteral("/JobViewServer"), QDBusConnection::sessionBus()))
+    , m_watcher(new 
QDBusServiceWatcher(QStringLiteral("org.kde.JobViewServer"), 
QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange))
+{
+    connect(m_watcher.get(), &QDBusServiceWatcher::serviceOwnerChanged, this, 
&KSharedUiServerV2Proxy::uiserverOwnerChanged);
+
+    // cleanup early enough to avoid issues with dbus at application exit
+    // see e.g. https://phabricator.kde.org/D2545
+    qAddPostRoutine([]() {
+        serverProxy->m_uiserver.reset();
+        serverProxy->m_watcher.reset();
+    });
+}
+
+KSharedUiServerV2Proxy::~KSharedUiServerV2Proxy()
+{
+
+}
+
+org::kde::JobViewServerV2 *KSharedUiServerV2Proxy::uiserver()
+{
+    return m_uiserver.get();
+}
+
+void KSharedUiServerV2Proxy::uiserverOwnerChanged(const QString &serviceName, 
const QString &oldOwner, const QString &newOwner)
+{
+    Q_UNUSED(serviceName);
+    Q_UNUSED(oldOwner);
+
+    if (!newOwner.isEmpty()) { // registered
+        Q_EMIT serverRegistered();
+    } else if (newOwner.isEmpty()) { // unregistered
+        Q_EMIT serverUnregistered();
+    }
+}
+
+#include "moc_kuiserverv2jobtracker.cpp"
+#include "moc_kuiserverv2jobtracker_p.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker.h 
new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker.h
--- old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker.h  1970-01-01 
01:00:00.000000000 +0100
+++ new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker.h  2021-04-04 
13:44:46.000000000 +0200
@@ -0,0 +1,76 @@
+/*
+    This file is part of the KDE project
+    SPDX-FileCopyrightText: 2021 Kai Uwe Broulik <k...@broulik.de>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#ifndef KUISERVERV2JOBTRACKER_H
+#define KUISERVERV2JOBTRACKER_H
+
+#include <kjobwidgets_export.h>
+#include <kjobtrackerinterface.h>
+
+class KJob;
+class KUiServerV2JobTrackerPrivate;
+
+/**
+ * @class KUiServerV2JobTracker kuiserverv2jobtracker.h KUiServerV2JobTracker
+ *
+ * The interface to implement to track the progresses of a job.
+ *
+ * @since 5.81
+ */
+class KJOBWIDGETS_EXPORT KUiServerV2JobTracker : public KJobTrackerInterface
+{
+    Q_OBJECT
+
+public:
+    /**
+     * Creates a new KJobTrackerInterface
+     *
+     * @param parent the parent object
+     */
+    explicit KUiServerV2JobTracker(QObject *parent = nullptr);
+
+    /**
+     * Destroys a KJobTrackerInterface
+     */
+    ~KUiServerV2JobTracker() override;
+
+    /**
+     * Register a new job in this tracker.
+     *
+     * @param job the job to register
+     */
+    void registerJob(KJob *job) override;
+
+    /**
+     * Unregister a job from this tracker.
+     *
+     * @param job the job to unregister
+     */
+    void unregisterJob(KJob *job) override;
+
+protected Q_SLOTS:
+    /**
+     * The following slots are inherited from KJobTrackerInterface.
+     */
+    void finished(KJob *job) override;
+    void suspended(KJob *job) override;
+    void resumed(KJob *job) override;
+    virtual void description(KJob *job, const QString &title,
+                             const QPair<QString, QString> &field1,
+                             const QPair<QString, QString> &field2) override;
+    void infoMessage(KJob *job, const QString &plain, const QString &rich) 
override;
+    void totalAmount(KJob *job, KJob::Unit unit, qulonglong amount) override;
+    void processedAmount(KJob *job, KJob::Unit unit, qulonglong amount) 
override;
+    void percent(KJob *job, unsigned long percent) override;
+    void speed(KJob *job, unsigned long value) override;
+
+private:
+    KUiServerV2JobTrackerPrivate *const d;
+
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker_p.h 
new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker_p.h
--- old/kjobwidgets-5.80.0/src/kuiserverv2jobtracker_p.h        1970-01-01 
01:00:00.000000000 +0100
+++ new/kjobwidgets-5.81.0/src/kuiserverv2jobtracker_p.h        2021-04-04 
13:44:46.000000000 +0200
@@ -0,0 +1,38 @@
+/*
+    This file is part of the KDE project
+    SPDX-FileCopyrightText: 2021 Kai Uwe Broulik <k...@broulik.de>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#ifndef KUISERVERV2JOBTRACKER_P_H
+#define KUISERVERV2JOBTRACKER_P_H
+
+#include <memory>
+
+#include <QDBusServiceWatcher>
+
+#include "jobviewserverv2interface.h"
+
+class Q_DECL_HIDDEN KSharedUiServerV2Proxy : public QObject
+{
+    Q_OBJECT
+
+public:
+    KSharedUiServerV2Proxy();
+    ~KSharedUiServerV2Proxy();
+
+    org::kde::JobViewServerV2 *uiserver();
+
+Q_SIGNALS:
+    void serverRegistered();
+    void serverUnregistered();
+
+private:
+    void uiserverOwnerChanged(const QString &serviceName, const QString 
&oldOwner, const QString &newOwner);
+
+    std::unique_ptr<org::kde::JobViewServerV2> m_uiserver;
+    std::unique_ptr<QDBusServiceWatcher> m_watcher;
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/org.kde.JobViewServerV2.xml 
new/kjobwidgets-5.81.0/src/org.kde.JobViewServerV2.xml
--- old/kjobwidgets-5.80.0/src/org.kde.JobViewServerV2.xml      1970-01-01 
01:00:00.000000000 +0100
+++ new/kjobwidgets-5.81.0/src/org.kde.JobViewServerV2.xml      2021-04-04 
13:44:46.000000000 +0200
@@ -0,0 +1,23 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+<node>
+  <interface name="org.kde.JobViewServerV2">
+    <method name="requestView">
+      <!-- The desktop entry of the application, e.g. "org.kde.dolphin" -->
+      <arg name="desktopEntry" type="s" direction="in"/>
+
+      <!-- 'capabilities' is used as a bit field:
+           0x0001 means that the user should be able to cancel the job
+           0x0002 means that the user should be able to suspend/resume the job
+       -->
+      <arg name="capabilities" type="i" direction="in"/>
+
+      <!-- Custom hints for the server, used for future extension -->
+      <arg name="hints" type="a{sv}" direction="in"/>
+
+      <arg name="trackerPath" type="o" direction="out"/>
+
+      <annotation name="org.qtproject.QtDBus.QtTypeName.In2" 
value="QVariantMap"/>
+    </method>
+  </interface>
+</node>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kjobwidgets-5.80.0/src/org.kde.JobViewV3.xml 
new/kjobwidgets-5.81.0/src/org.kde.JobViewV3.xml
--- old/kjobwidgets-5.80.0/src/org.kde.JobViewV3.xml    1970-01-01 
01:00:00.000000000 +0100
+++ new/kjobwidgets-5.81.0/src/org.kde.JobViewV3.xml    2021-04-04 
13:44:46.000000000 +0200
@@ -0,0 +1,28 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+<node>
+  <interface name="org.kde.JobViewV3">
+
+    <method name="terminate">
+      <!-- The error code why the job view was terminated.
+        0 means no error. An error can be e.g. ERR_USER_CANCELED -->
+      <arg name="errorCode" type="u" direction="in"/>
+      <!-- The user-visible error message, e.g. "Network connection lost" -->
+      <arg name="errorMessage" type="s" direction="in"/>
+      <!-- Custom hints for the server, used for future extension -->
+      <arg name="hints" type="a{sv}" direction="in"/>
+      <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
+      <annotation name="org.qtproject.QtDBus.QtTypeName.In2" 
value="QVariantMap"/>
+    </method>
+
+    <method name="update">
+      <arg name="properties" type="a{sv}" direction="in"/>
+      <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
+      <annotation name="org.qtproject.QtDBus.QtTypeName.In0" 
value="QVariantMap"/>
+    </method>
+
+    <signal name="suspendRequested"/>
+    <signal name="resumeRequested"/>
+    <signal name="cancelRequested"/>
+  </interface>
+</node>

Reply via email to