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()) {