Hello community,

here is the log from the commit of package knotifications for 
openSUSE:Leap:15.2 checked in at 2020-02-16 18:27:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/knotifications (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.knotifications.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "knotifications"

Sun Feb 16 18:27:12 2020 rev:60 rq:773936 version:5.67.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/knotifications/knotifications.changes  
2020-01-19 15:49:38.569779339 +0100
+++ 
/work/SRC/openSUSE:Leap:15.2/.knotifications.new.26092/knotifications.changes   
    2020-02-16 18:28:10.482713422 +0100
@@ -1,0 +2,23 @@
+Sun Feb  2 18:07:05 UTC 2020 - Christophe Giboudeaux <[email protected]>
+
+- Replace %make_jobs with %cmake_build.
+
+-------------------------------------------------------------------
+Sun Feb  2 14:32:53 UTC 2020 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.67.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.67.0.php
+- Changes since 5.66.0:
+  * Add new signal for default action activation
+  * Drop dependency to KF5Codecs by using the new
+    stripRichText function
+  * Strip richtext on Windows
+  * Reduce dependencies on Windows
+  * Adapt to Qt 5.14 Android changes
+  * Don't use KWindowSystem on Android
+  * Deprecate raiseWidget
+  * Port KNotification from KWindowSystem
+
+-------------------------------------------------------------------

Old:
----
  knotifications-5.66.0.tar.xz
  knotifications-5.66.0.tar.xz.sig

New:
----
  knotifications-5.67.0.tar.xz
  knotifications-5.67.0.tar.xz.sig

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

Other differences:
------------------
++++++ knotifications.spec ++++++
--- /var/tmp/diff_new_pack.lgB6V0/_old  2020-02-16 18:28:10.774713575 +0100
+++ /var/tmp/diff_new_pack.lgB6V0/_new  2020-02-16 18:28:10.778713577 +0100
@@ -17,14 +17,14 @@
 
 
 %define lname   libKF5Notifications5
-%define _tar_path 5.66
+%define _tar_path 5.67
 # 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:           knotifications
-Version:        5.66.0
+Version:        5.67.0
 Release:        0
 Summary:        KDE Desktop notifications
 License:        LGPL-2.1-or-later
@@ -41,20 +41,19 @@
 BuildRequires:  fdupes
 BuildRequires:  kf5-filesystem
 BuildRequires:  pkgconfig
-BuildRequires:  cmake(KF5Codecs) >= %{_kf5_bugfix_version}
 BuildRequires:  cmake(KF5Config) >= %{_kf5_bugfix_version}
 BuildRequires:  cmake(KF5CoreAddons) >= %{_kf5_bugfix_version}
 BuildRequires:  cmake(KF5WindowSystem) >= %{_kf5_bugfix_version}
-BuildRequires:  cmake(Qt5DBus) >= 5.11.0
-BuildRequires:  cmake(Qt5Test) >= 5.11.0
-BuildRequires:  cmake(Qt5TextToSpeech) >= 5.11.0
-BuildRequires:  cmake(Qt5Widgets) >= 5.11.0
-BuildRequires:  cmake(Qt5X11Extras) >= 5.11.0
+BuildRequires:  cmake(Qt5DBus) >= 5.12.0
+BuildRequires:  cmake(Qt5Test) >= 5.12.0
+BuildRequires:  cmake(Qt5TextToSpeech) >= 5.12.0
+BuildRequires:  cmake(Qt5Widgets) >= 5.12.0
+BuildRequires:  cmake(Qt5X11Extras) >= 5.12.0
 BuildRequires:  pkgconfig(dbusmenu-qt5)
 BuildRequires:  pkgconfig(libcanberra)
 BuildRequires:  pkgconfig(x11)
 %if %{with lang}
-BuildRequires:  cmake(Qt5LinguistTools) >= 5.11.0
+BuildRequires:  cmake(Qt5LinguistTools) >= 5.12.0
 %endif
 
 %description
@@ -77,8 +76,8 @@
 Group:          Development/Libraries/KDE
 Requires:       %{lname} = %{version}
 Requires:       extra-cmake-modules
-Requires:       cmake(Qt5DBus) >= 5.11.0
-Requires:       cmake(Qt5Widgets) >= 5.11.0
+Requires:       cmake(Qt5DBus) >= 5.12.0
+Requires:       cmake(Qt5Widgets) >= 5.12.0
 
 %description devel
 KNotification is used to notify the user of an event. It covers feedback and
@@ -91,7 +90,7 @@
 
 %build
   %cmake_kf5 -d build
-  %make_jobs
+  %cmake_build
 
 %install
   %kf5_makeinstall -C build


++++++ knotifications-5.66.0.tar.xz -> knotifications-5.67.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/CMakeLists.txt 
new/knotifications-5.67.0/CMakeLists.txt
--- old/knotifications-5.66.0/CMakeLists.txt    2020-01-04 11:11:14.000000000 
+0100
+++ new/knotifications-5.67.0/CMakeLists.txt    2020-02-02 13:51:54.000000000 
+0100
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.5)
 
-set(KF5_VERSION "5.66.0") # handled by release scripts
-set(KF5_DEP_VERSION "5.66.0") # handled by release scripts
+set(KF5_VERSION "5.67.0") # handled by release scripts
+set(KF5_DEP_VERSION "5.67.0") # handled by release scripts
 project(KNotifications VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.66.0  NO_MODULE)
+find_package(ECM 5.67.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)
 
@@ -19,6 +19,9 @@
 include(ECMQtDeclareLoggingCategory)
 include(ECMPoQmTools)
 include(ECMAddQch)
+include(ECMGenerateExportHeader)
+
+set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of 
deprecated API excluded from the build [default=0].")
 
 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt 
Assistant, Qt Creator & KDevelop)" OFF)
 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. 
Qt Assistant, Qt Creator & KDevelop)")
@@ -36,9 +39,9 @@
 
 find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets)
 
-if (NOT ANDROID)
+if (NOT ANDROID AND NOT WIN32)
     find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED DBus)
-else ()
+elseif (ANDROID)
     find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED AndroidExtras)
     find_package(Gradle REQUIRED)
 endif()
@@ -72,15 +75,19 @@
     find_package(LibSnoreToast REQUIRED)
     set_package_properties(LibSnoreToast PROPERTIES TYPE REQUIRED
                             PURPOSE     "for the Windows Toast Notifications"
-                            DESCRIPTION "A command line application, capable 
of creating 
+                            DESCRIPTION "A command line application, capable 
of creating
                                         Windows Toast notifications on Windows 
(>=)8 "
     )
     find_package(Qt5Network REQUIRED)
 endif()
 
-find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
+set(HAVE_KWINDOWSYSTEM FALSE)
+if(NOT ANDROID AND NOT WIN32)
+    find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
+    set(HAVE_KWINDOWSYSTEM TRUE)
+endif()
+
 find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
-find_package(KF5Codecs ${KF5_DEP_VERSION} REQUIRED)
 find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
 
 if (NOT WIN32 AND NOT ANDROID)
@@ -119,7 +126,7 @@
 if (NOT APPLE) # QtMac::setBadgeLabelText is deprecated
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
 endif()
-add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054100)
+add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054200)
 add_subdirectory(src)
 if (BUILD_TESTING)
     add_subdirectory(tests)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/cmake/modules/FindGradle.cmake 
new/knotifications-5.67.0/cmake/modules/FindGradle.cmake
--- old/knotifications-5.66.0/cmake/modules/FindGradle.cmake    2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/cmake/modules/FindGradle.cmake    2020-02-02 
13:51:54.000000000 +0100
@@ -85,6 +85,9 @@
         set(_aar_suffix "-release")
         set(_aar_gradleCmd "assembleRelease")
     endif()
+    if (NOT Qt5Core_VERSION VERSION_LESS 5.14.0) # behavior change in Gradle 
shipped with Qt 5.14
+        set(_aar_suffix "")
+    endif()
 
     file(GLOB_RECURSE _src_files CONFIGURE_DEPENDS "*")
     add_custom_command(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/docs/Doxyfile.local 
new/knotifications-5.67.0/docs/Doxyfile.local
--- old/knotifications-5.66.0/docs/Doxyfile.local       2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/docs/Doxyfile.local       2020-02-02 
13:51:54.000000000 +0100
@@ -1 +1,8 @@
+### KApiDox Project-specific Overrides File
 EXCLUDE_PATTERNS += */notifyby*
+
+# define so that deprecated API is not skipped
+PREDEFINED += \
+    "KNOTIFICATIONS_ENABLE_DEPRECATED_SINCE(x, y)=1" \
+    "KNOTIFICATIONS_BUILD_DEPRECATED_SINCE(x, y)=1" \
+    "KNOTIFICATIONS_DEPRECATED_VERSION(x, y, t)="
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/po/zh_CN/knotifications5_qt.po 
new/knotifications-5.67.0/po/zh_CN/knotifications5_qt.po
--- old/knotifications-5.66.0/po/zh_CN/knotifications5_qt.po    2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/po/zh_CN/knotifications5_qt.po    2020-02-02 
13:51:54.000000000 +0100
@@ -13,8 +13,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2019-11-19 23:01\n"
-"Last-Translator: Guo Yunhe (guoyunhe)\n"
+"PO-Revision-Date: 2020-01-20 21:48\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -22,7 +21,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: crowdin.com\n"
 "X-Crowdin-Project: kdeorg\n"
 "X-Crowdin-Language: zh-CN\n"
 "X-Crowdin-File: /kf5-trunk/messages/frameworks/knotifications5_qt.pot\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/CMakeLists.txt 
new/knotifications-5.67.0/src/CMakeLists.txt
--- old/knotifications-5.66.0/src/CMakeLists.txt        2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/CMakeLists.txt        2020-02-02 
13:51:54.000000000 +0100
@@ -83,9 +83,18 @@
 configure_file(config-knotifications.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config-knotifications.h )
 
 add_library(KF5Notifications ${knotifications_SRCS})
-generate_export_header(KF5Notifications BASE_NAME KNotifications)
 add_library(KF5::Notifications ALIAS KF5Notifications)
 
+ecm_generate_export_header(KF5Notifications
+    EXPORT_FILE_NAME knotifications_export.h
+    BASE_NAME KNotifications
+    GROUP_BASE_NAME KF
+    VERSION ${KF5_VERSION}
+    DEPRECATED_BASE_VERSION 0
+    DEPRECATION_VERSIONS 5.67
+    EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
+)
+
 target_include_directories(KF5Notifications INTERFACE 
"$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF5}/KNotifications>")
 
 target_link_libraries(KF5Notifications PUBLIC
@@ -97,9 +106,12 @@
 target_link_libraries(KF5Notifications PRIVATE
    KF5::CoreAddons
    KF5::ConfigCore
-   KF5::WindowSystem
-   KF5::Codecs
 )
+
+if (TARGET KF5::WindowSystem)
+    target_link_libraries(KF5Notifications PRIVATE KF5::WindowSystem)
+endif()
+
 if (TARGET SnoreToast::SnoreToastActions)
   target_link_libraries(KF5Notifications PRIVATE Qt5::Network 
SnoreToast::SnoreToastActions)
 endif ()
@@ -182,6 +194,7 @@
             KNOTIFICATIONS_EXPORT
             KNOTIFICATIONS_DEPRECATED
             KNOTIFICATIONS_DEPRECATED_EXPORT
+            "KNOTIFICATIONS_DEPRECATED_VERSION(x, y, t)"
         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
         COMPONENT Devel
@@ -209,5 +222,9 @@
 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
 
 if (ANDROID)
-    install(FILES KF5Notifications-android-dependencies.xml DESTINATION 
${KDE_INSTALL_LIBDIR})
+    if (Qt5Core_VERSION VERSION_LESS 5.14.0)
+        install(FILES KF5Notifications-android-dependencies.xml DESTINATION 
${KDE_INSTALL_LIBDIR})
+    else()
+        install(FILES KF5Notifications-android-dependencies.xml DESTINATION 
${KDE_INSTALL_LIBDIR} RENAME 
KF5Notifications_${CMAKE_ANDROID_ARCH_ABI}-android-dependencies.xml)
+    endif()
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/knotifications-5.66.0/src/config-knotifications.h.cmake 
new/knotifications-5.67.0/src/config-knotifications.h.cmake
--- old/knotifications-5.66.0/src/config-knotifications.h.cmake 2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/config-knotifications.h.cmake 2020-02-02 
13:51:54.000000000 +0100
@@ -5,3 +5,5 @@
 #cmakedefine01 HAVE_XTEST
 
 #cmakedefine01 HAVE_DBUSMENUQT
+
+#cmakedefine01 HAVE_KWINDOWSYSTEM
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/knotification.cpp 
new/knotifications-5.67.0/src/knotification.cpp
--- old/knotifications-5.66.0/src/knotification.cpp     2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/knotification.cpp     2020-02-02 
13:51:54.000000000 +0100
@@ -29,8 +29,6 @@
 #include "knotification.h"
 #include "knotificationmanager_p.h"
 
-#include <kwindowsystem.h>
-
 #include <QCoreApplication>
 
 #include <QPixmap>
@@ -62,12 +60,14 @@
     bool needUpdate;
 
     Private() : id(-1), ref(0), widget(nullptr), 
urgency(KNotification::DefaultUrgency), needUpdate(false) {}
+#if KNOTIFICATIONS_BUILD_DEPRECATED_SINCE(5, 67)
     /**
      * recursive function that raise the widget. @p w
      *
      * @see raiseWidget()
      */
     static void raiseWidget(QWidget *w);
+#endif
 };
 
 KNotification::KNotification(const QString &eventId, QWidget *parent, const 
NotificationFlags &flags) :
@@ -311,6 +311,7 @@
     switch (action) {
     case 0:
         emit activated();
+        emit defaultActivated();
         break;
     case 1:
         emit action1Activated();
@@ -342,6 +343,7 @@
     }
 }
 
+#if KNOTIFICATIONS_BUILD_DEPRECATED_SINCE(5, 67)
 void KNotification::raiseWidget()
 {
     if (!d->widget) {
@@ -350,16 +352,15 @@
 
     Private::raiseWidget(d->widget);
 }
+#endif
 
+#if KNOTIFICATIONS_BUILD_DEPRECATED_SINCE(5, 67)
 void KNotification::Private::raiseWidget(QWidget *w)
 {
     //TODO  this function is far from finished.
     if (w->isTopLevel()) {
         w->raise();
-        KWindowSystem::activateWindow(w->winId());
-#if defined(Q_OS_MACOS)
         w->activateWindow();
-#endif
     } else {
         QWidget *pw = w->parentWidget();
         raiseWidget(pw);
@@ -369,6 +370,7 @@
         }
     }
 }
+#endif
 
 static QString defaultComponentName()
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/knotification.h 
new/knotifications-5.67.0/src/knotification.h
--- old/knotifications-5.66.0/src/knotification.h       2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/knotification.h       2020-02-02 
13:51:54.000000000 +0100
@@ -256,7 +256,7 @@
         /**
          * Sends a hint to Plasma to skip grouping for this notification
          *
-         * @since: 5.18
+         * @since 5.18
          */
         SkipGrouping = 0x10,
 
@@ -567,6 +567,13 @@
      * Emitted only when the default activation has occurred
      */
     void activated();
+
+    /**
+     * Emitted when the default action has been activated.
+     * @since 5.67
+     */
+    void defaultActivated();
+
     /**
      * Emitted when an action has been activated.
      *
@@ -619,11 +626,15 @@
      */
     void close();
 
+#if KNOTIFICATIONS_ENABLE_DEPRECATED_SINCE(5, 67)
     /**
      * @brief Raise the widget.
      * This will change the desktop, activate the window, and the tab if 
needed.
+     * @deprecated since 5.67, use QWindow raise + requestActivate instead.
      */
+    KNOTIFICATIONS_DEPRECATED_VERSION(5, 67, "Use QWindow raise + 
requestActivate instead")
     void raiseWidget();
+#endif
 
     /**
      * The notification will automatically be closed if all presentations are 
finished.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/knotificationplugin.h 
new/knotifications-5.67.0/src/knotificationplugin.h
--- old/knotifications-5.66.0/src/knotificationplugin.h 2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/knotificationplugin.h 2020-02-02 
13:51:54.000000000 +0100
@@ -23,6 +23,8 @@
 #define KNOTIFICATIONPLUGIN_H
 
 #include <QObject>
+#include <QTextDocumentFragment>
+
 #include <KPluginFactory>
 
 #include "knotifications_export.h"
@@ -94,6 +96,11 @@
         */
     void finish(KNotification *notification);
 
+    static inline QString stripRichText(const QString &s)
+    {
+        return QTextDocumentFragment::fromHtml(s).toPlainText();
+    }
+
 Q_SIGNALS:
     /**
         * the presentation is finished.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/kpassivepopup.cpp 
new/knotifications-5.67.0/src/kpassivepopup.cpp
--- old/knotifications-5.66.0/src/kpassivepopup.cpp     2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/kpassivepopup.cpp     2020-02-02 
13:51:54.000000000 +0100
@@ -41,7 +41,9 @@
 #include <netwm.h>
 #endif
 
+#if HAVE_KWINDOWSYSTEM
 #include <kwindowinfo.h>
+#endif
 
 static const int DEFAULT_POPUP_TYPE = KPassivePopup::Boxed;
 static const int DEFAULT_POPUP_TIME = 6 * 1000;
@@ -471,12 +473,14 @@
                 target = widget->geometry();
             }
         }
+#if HAVE_KWINDOWSYSTEM
         if (target.isNull()) {
             KWindowInfo info(d->window, NET::WMGeometry);
             if (info.valid()) {
                 target = info.geometry();
             }
         }
+#endif
     }
     if (target.isNull()) {
         target = QRect(defaultLocation(), QSize(0, 0));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/notifybypopup.cpp 
new/knotifications-5.67.0/src/notifybypopup.cpp
--- old/knotifications-5.66.0/src/notifybypopup.cpp     2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/notifybypopup.cpp     2020-02-02 
13:51:54.000000000 +0100
@@ -42,7 +42,6 @@
 #include <QXmlStreamReader>
 #include <QMap>
 #include <QHash>
-#include <QXmlStreamEntityResolver>
 #include <QPointer>
 #include <QMutableListIterator>
 #include <QThread>
@@ -52,7 +51,6 @@
 #include <QScreen>
 
 #include <kconfiggroup.h>
-#include <KCodecs/KCharsets>
 
 static const char dbusServiceName[] = "org.freedesktop.Notifications";
 static const char dbusInterfaceName[] = "org.freedesktop.Notifications";
@@ -66,13 +64,7 @@
      * Fills the KPassivePopup with data
      */
     void fillPopup(KPassivePopup *popup, KNotification *notification, const 
KNotifyConfig &config);
-    /**
-     * Removes HTML from a given string. Replaces line breaks with \n and
-     * HTML entities by their 'normal forms'.
-     * @param string the HTML to remove.
-     * @return the cleaned string.
-     */
-    QString stripHtml(const QString &text);
+
     /**
      * Sends notification to DBus "org.freedesktop.notifications" interface.
      * @param id knotify-sid identifier of notification
@@ -140,16 +132,6 @@
 
 
     NotifyByPopup * const q;
-
-    /**
-     * A class for resolving HTML entities in XML documents (used
-     * during HTML stripping)
-     */
-    class HtmlEntityResolver : public QXmlStreamEntityResolver
-    {
-        QString resolveUndeclaredEntity(const QString &name) override;
-    };
-
 };
 
 
//---------------------------------------------------------------------------------------
@@ -616,10 +598,10 @@
 
     if (!popupServerCapabilities.contains(QLatin1String("body-markup"))) {
         if (title.startsWith(QLatin1String("<html>"))) {
-            title = stripHtml(title);
+            title = q->stripRichText(title);
         }
         if (text.startsWith(QLatin1String("<html>"))) {
-            text = stripHtml(text);
+            text = q->stripRichText(text);
         }
     }
 
@@ -788,50 +770,5 @@
     }
 }
 
-QString NotifyByPopupPrivate::stripHtml(const QString &text)
-{
-    QXmlStreamReader r(QStringLiteral("<elem>") + text + 
QStringLiteral("</elem>"));
-    HtmlEntityResolver resolver;
-    r.setEntityResolver(&resolver);
-    QString result;
-    while (!r.atEnd()) {
-        r.readNext();
-        if (r.tokenType() == QXmlStreamReader::Characters) {
-            result.append(r.text());
-        } else if (r.tokenType() == QXmlStreamReader::StartElement && r.name() 
== QLatin1String("br")) {
-            result.append(QLatin1Char('\n'));
-        }
-    }
 
-    if (r.hasError()) {
-        // XML error in the given text, just return the original string
-        qCWarning(LOG_KNOTIFICATIONS) << "Notification to send to backend 
which does "
-                         "not support HTML, contains invalid XML:"
-                      << r.errorString() << "line" << r.lineNumber()
-                      << "col" << r.columnNumber();
-        return text;
-    }
-
-    return result;
-}
-
-QString 
NotifyByPopupPrivate::HtmlEntityResolver::resolveUndeclaredEntity(const QString 
&name)
-{
-    QString result = QXmlStreamEntityResolver::resolveUndeclaredEntity(name);
-
-    if (!result.isEmpty()) {
-        return result;
-    }
-
-    QChar ent = KCharsets::fromEntity(QLatin1Char('&') + name);
-
-    if (ent.isNull()) {
-        qCWarning(LOG_KNOTIFICATIONS) << "Notification to send to backend 
which does "
-                      "not support HTML, contains invalid entity: "
-                   << name;
-        ent = QLatin1Char(' ');
-    }
-
-    return QString(ent);
-}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-5.66.0/src/notifybysnore.cpp 
new/knotifications-5.67.0/src/notifybysnore.cpp
--- old/knotifications-5.66.0/src/notifybysnore.cpp     2020-01-04 
11:11:14.000000000 +0100
+++ new/knotifications-5.67.0/src/notifybysnore.cpp     2020-02-02 
13:51:54.000000000 +0100
@@ -153,11 +153,11 @@
 
     arguments << QStringLiteral("-t");
     if (!notification->title().isEmpty()) {
-        arguments << notification->title();
+        arguments << stripRichText(notification->title());
     } else {
         arguments << qApp->applicationDisplayName();
     }
-    arguments << QStringLiteral("-m") << notification->text();
+    arguments << QStringLiteral("-m") << stripRichText(notification->text());
     const QString iconPath = m_iconDir.path() + QLatin1Char('/')
                     + QString::number(notification->id()) + 
QStringLiteral(".png");
     if (!notification->pixmap().isNull()) {


Reply via email to