Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xdg-desktop-portal-kde for openSUSE:Factory checked in at 2023-01-06 17:04:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xdg-desktop-portal-kde (Old) and /work/SRC/openSUSE:Factory/.xdg-desktop-portal-kde.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xdg-desktop-portal-kde" Fri Jan 6 17:04:22 2023 rev:110 rq:1056056 version:5.26.5 Changes: -------- --- /work/SRC/openSUSE:Factory/xdg-desktop-portal-kde/xdg-desktop-portal-kde.changes 2022-11-30 15:00:12.457456159 +0100 +++ /work/SRC/openSUSE:Factory/.xdg-desktop-portal-kde.new.1563/xdg-desktop-portal-kde.changes 2023-01-06 17:04:40.415884141 +0100 @@ -1,0 +2,11 @@ +Wed Jan 4 14:06:24 UTC 2023 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.26.5 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.26.5 +- Changes since 5.26.4: + * notifications: Properly communicate the triggered action (kde#462278) + * notification: Trigger org.freedesktop.Application.Activate* as spec'd + +------------------------------------------------------------------- Old: ---- xdg-desktop-portal-kde-5.26.4.tar.xz xdg-desktop-portal-kde-5.26.4.tar.xz.sig New: ---- xdg-desktop-portal-kde-5.26.5.tar.xz xdg-desktop-portal-kde-5.26.5.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xdg-desktop-portal-kde.spec ++++++ --- /var/tmp/diff_new_pack.qEoXH4/_old 2023-01-06 17:04:41.923892610 +0100 +++ /var/tmp/diff_new_pack.qEoXH4/_new 2023-01-06 17:04:41.927892633 +0100 @@ -1,7 +1,7 @@ # # spec file for package xdg-desktop-portal-kde # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ %define kf5_version 5.98.0 Name: xdg-desktop-portal-kde -Version: 5.26.4 +Version: 5.26.5 Release: 0 Summary: QT/KF5 backend for xdg-desktop-portal License: LGPL-2.1-or-later ++++++ xdg-desktop-portal-kde-5.26.4.tar.xz -> xdg-desktop-portal-kde-5.26.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/CMakeLists.txt new/xdg-desktop-portal-kde-5.26.5/CMakeLists.txt --- old/xdg-desktop-portal-kde-5.26.4/CMakeLists.txt 2022-11-29 12:53:01.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/CMakeLists.txt 2023-01-03 19:58:44.000000000 +0100 @@ -2,7 +2,7 @@ set(CMAKE_C_STANDARD 99) -set(PROJECT_VERSION "5.26.4") +set(PROJECT_VERSION "5.26.5") set(PROJECT_VERSION_MAJOR 5) project(xdg-desktop-portal-kde VERSION ${PROJECT_VERSION}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/data/org.freedesktop.Application.xml new/xdg-desktop-portal-kde-5.26.5/data/org.freedesktop.Application.xml --- old/xdg-desktop-portal-kde-5.26.4/data/org.freedesktop.Application.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/data/org.freedesktop.Application.xml 2023-01-03 19:58:44.000000000 +0100 @@ -0,0 +1,17 @@ +<interface name='org.freedesktop.Application'> + <method name='Activate'> + <arg type='a{sv}' name='platform_data' direction='in'/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap"/> + </method> + <method name='Open'> + <arg type='as' name='uris' direction='in'/> + <arg type='a{sv}' name='platform_data' direction='in'/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> + </method> + <method name='ActivateAction'> + <arg type='s' name='action_name' direction='in'/> + <arg type='av' name='parameter' direction='in'/> + <arg type='a{sv}' name='platform_data' direction='in'/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap"/> + </method> +</interface> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/po/ca@valencia/xdg-desktop-portal-kde.po new/xdg-desktop-portal-kde-5.26.5/po/ca@valencia/xdg-desktop-portal-kde.po --- old/xdg-desktop-portal-kde-5.26.4/po/ca@valencia/xdg-desktop-portal-kde.po 2022-11-29 12:53:04.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/po/ca@valencia/xdg-desktop-portal-kde.po 2023-01-03 19:58:47.000000000 +0100 @@ -46,7 +46,7 @@ #: src/appchooserdialog.cpp:34 #, kde-format msgid "Select an application to open '%1'" -msgstr "Seleccioneu una aplicació per obrir «%1»" +msgstr "Seleccioneu una aplicació per a obrir «%1»" #: src/background.cpp:83 #, kde-format @@ -309,22 +309,22 @@ #: src/waylandintegration.cpp:271 #, kde-format msgid "Recording window \"%1\"..." -msgstr "S'està enregistrant la finestra «%1»..." +msgstr "S'està gravant la finestra «%1»..." #: src/waylandintegration.cpp:281 #, kde-format msgid "Recording screen \"%1\"..." -msgstr "S'està enregistrant la pantalla «%1»..." +msgstr "S'està gravant la pantalla «%1»..." #: src/waylandintegration.cpp:298 #, kde-format msgid "Recording workspace..." -msgstr "S'està enregistrant l'espai de treball..." +msgstr "S'està gravant l'espai de treball..." #: src/waylandintegration.cpp:310 #, kde-format msgid "Recording virtual output '%1'..." -msgstr "S'està enregistrant l'eixida virtual «%1»..." +msgstr "S'està gravant l'eixida virtual «%1»..." #: src/waylandintegration.cpp:329 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/po/fr/xdg-desktop-portal-kde.po new/xdg-desktop-portal-kde-5.26.5/po/fr/xdg-desktop-portal-kde.po --- old/xdg-desktop-portal-kde-5.26.4/po/fr/xdg-desktop-portal-kde.po 2022-11-29 12:53:08.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/po/fr/xdg-desktop-portal-kde.po 2023-01-03 19:58:51.000000000 +0100 @@ -14,7 +14,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Lokalize 22.11.80\n" +"X-Generator: Lokalize 22.11.90\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/po/ia/xdg-desktop-portal-kde.po new/xdg-desktop-portal-kde-5.26.5/po/ia/xdg-desktop-portal-kde.po --- old/xdg-desktop-portal-kde-5.26.4/po/ia/xdg-desktop-portal-kde.po 2022-11-29 12:53:11.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/po/ia/xdg-desktop-portal-kde.po 2023-01-03 19:58:54.000000000 +0100 @@ -7,7 +7,7 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-09-29 02:17+0000\n" -"PO-Revision-Date: 2022-03-21 22:32+0100\n" +"PO-Revision-Date: 2022-12-18 22:20+0100\n" "Last-Translator: giovanni <g.s...@tiscali.it>\n" "Language-Team: Interlingua <kde-i18n-...@kde.org>\n" "Language: ia\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 21.12.3\n" +"X-Generator: Lokalize 22.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" @@ -41,7 +41,7 @@ #: src/appchooserdialog.cpp:34 #, kde-format msgid "Select an application to open '%1'" -msgstr "" +msgstr "Selige un application pro aperir '%1'" #: src/background.cpp:83 #, kde-format @@ -87,18 +87,16 @@ msgstr "Permitte" #: src/dynamiclauncher.cpp:76 -#, fuzzy, kde-format -#| msgid "Select application" +#, kde-format msgctxt "@title" msgid "Add Web Applicationâ¦" -msgstr "Selige application" +msgstr "Adde application Web" #: src/dynamiclauncher.cpp:81 -#, fuzzy, kde-format -#| msgid "Select application" +#, kde-format msgctxt "@title" msgid "Add Applicationâ¦" -msgstr "Selige application" +msgstr "Adde Application..." #: src/filechooser.cpp:369 #, kde-format @@ -128,7 +126,7 @@ #: src/outputsmodel.cpp:22 #, kde-format msgid "New Virtual Output" -msgstr "" +msgstr "Nove Exito Virtual" #: src/outputsmodel.cpp:28 src/screencastwidget.cpp:24 #, kde-format @@ -311,10 +309,9 @@ msgstr "Registrante spatio de labor..." #: src/waylandintegration.cpp:310 -#, fuzzy, kde-format -#| msgid "Recording window \"%1\"..." +#, kde-format msgid "Recording virtual output '%1'..." -msgstr "Registrante fenestra \"%1\"..." +msgstr "Registrante exito virtual \"%1\"..." #: src/waylandintegration.cpp:329 #, kde-format @@ -325,7 +322,7 @@ #, kde-format msgctxt "@action:inmenu stops screen/window recording" msgid "Stop Recording" -msgstr "" +msgstr "Stoppa Registrar" #: src/waylandintegration.cpp:494 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/po/it/xdg-desktop-portal-kde.po new/xdg-desktop-portal-kde-5.26.5/po/it/xdg-desktop-portal-kde.po --- old/xdg-desktop-portal-kde-5.26.4/po/it/xdg-desktop-portal-kde.po 2022-11-29 12:53:11.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/po/it/xdg-desktop-portal-kde.po 2023-01-03 19:58:54.000000000 +0100 @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 22.08.2\n" +"X-Generator: Lokalize 23.03.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/po/zh_CN/xdg-desktop-portal-kde.po new/xdg-desktop-portal-kde-5.26.5/po/zh_CN/xdg-desktop-portal-kde.po --- old/xdg-desktop-portal-kde-5.26.4/po/zh_CN/xdg-desktop-portal-kde.po 2022-11-29 12:53:24.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/po/zh_CN/xdg-desktop-portal-kde.po 2023-01-03 19:59:05.000000000 +0100 @@ -3,7 +3,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-09-29 02:17+0000\n" -"PO-Revision-Date: 2022-11-19 14:51\n" +"PO-Revision-Date: 2023-01-02 07:16\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/src/CMakeLists.txt new/xdg-desktop-portal-kde-5.26.5/src/CMakeLists.txt --- old/xdg-desktop-portal-kde-5.26.4/src/CMakeLists.txt 2022-11-29 12:53:01.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/src/CMakeLists.txt 2023-01-03 19:58:44.000000000 +0100 @@ -187,6 +187,8 @@ set_source_files_properties(../data/org.kde.KIOFuse.VFS.xml PROPERTIES NO_NAMESPACE TRUE) qt_add_dbus_interface(xdg_desktop_portal_kde_SRCS ../data/org.kde.KIOFuse.VFS.xml fuse_interface) +qt_add_dbus_interface(xdg_desktop_portal_kde_SRCS ../data/org.freedesktop.Application.xml fdo_application_interface) + target_sources(xdg-desktop-portal-kde PRIVATE ${xdg_desktop_portal_kde_SRCS}) target_link_libraries(xdg-desktop-portal-kde diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-kde-5.26.4/src/notification.cpp new/xdg-desktop-portal-kde-5.26.5/src/notification.cpp --- old/xdg-desktop-portal-kde-5.26.4/src/notification.cpp 2022-11-29 12:53:01.000000000 +0100 +++ new/xdg-desktop-portal-kde-5.26.5/src/notification.cpp 2023-01-03 19:58:44.000000000 +0100 @@ -12,9 +12,13 @@ #include <QDBusMessage> #include <QDBusMetaType> +#include "fdo_application_interface.h" #include "notification_debug.h" #include "portalicon.h" +using Action = QPair<QString, QVariant>; +Q_DECLARE_METATYPE(QList<Action>); + NotificationPortal::NotificationPortal(QObject *parent) : QDBusAbstractAdaptor(parent) { @@ -75,6 +79,8 @@ notify->setDefaultAction(notification.value(QStringLiteral("default-action")).toString()); } + QList<Action> actionValues = { + {notification.value(QStringLiteral("default-action")).toString(), notification.value(QStringLiteral("default-action-target"))}}; if (notification.contains(QStringLiteral("buttons"))) { QList<QVariantMap> buttons; QDBusArgument dbusArgument = notification.value(QStringLiteral("buttons")).value<QDBusArgument>(); @@ -83,17 +89,20 @@ } QStringList actions; + for (const QVariantMap &button : qAsConst(buttons)) { actions << button.value(QStringLiteral("label")).toString(); + + actionValues.append({button.value(QStringLiteral("action")).toString(), button.value(QStringLiteral("target"))}); } if (!actions.isEmpty()) { notify->setActions(actions); } } - notify->setHint(QStringLiteral("desktop-entry"), app_id); + notify->setProperty("actionValues", QVariant::fromValue<QList<Action>>(actionValues)); notify->setProperty("app_id", app_id); notify->setProperty("id", id); connect(notify, static_cast<void (KNotification::*)(uint)>(&KNotification::activated), this, &NotificationPortal::notificationActivated); @@ -103,6 +112,14 @@ m_notifications.insert(QStringLiteral("%1:%2").arg(app_id, id), notify); } +static QString appPathFromId(const QString &app_id) +{ + QString ret = QLatin1Char('/') + app_id; + ret.replace('.', '/'); + ret.replace('-', '_'); + return ret; +} + void NotificationPortal::notificationActivated(uint action) { KNotification *notify = qobject_cast<KNotification *>(sender()); @@ -113,17 +130,43 @@ const QString appId = notify->property("app_id").toString(); const QString id = notify->property("id").toString(); + const auto actionValues = notify->property("actionValues").value<QList<Action>>(); + QVariantMap platformData; + if (!notify->xdgActivationToken().isEmpty()) { + platformData = { + {QStringLiteral("activation-token"), notify->xdgActivationToken()}, + + // apparently gtk uses "desktop-startup-id" + {QStringLiteral("desktop-startup-id"), notify->xdgActivationToken()}, + }; + } qCDebug(XdgDesktopPortalKdeNotification) << "Notification activated:"; qCDebug(XdgDesktopPortalKdeNotification) << " app_id: " << appId; qCDebug(XdgDesktopPortalKdeNotification) << " id: " << id; - qCDebug(XdgDesktopPortalKdeNotification) << " action: " << action; + qCDebug(XdgDesktopPortalKdeNotification) << " action: " << action << actionValues; + + const auto ourAction = actionValues.value(action); + + QVariantList params; + if (ourAction.second.isValid()) { + params += ourAction.second; + } - QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/org/freedesktop/portal/desktop"), - QStringLiteral("org.freedesktop.impl.portal.Notification"), - QStringLiteral("ActionInvoked")); - message << appId << id << QString::number(action) << QVariantList(); - QDBusConnection::sessionBus().send(message); + OrgFreedesktopApplicationInterface iface("org.freedesktop.Application", appPathFromId(appId), QDBusConnection::sessionBus()); + if (id.startsWith("app.") && iface.isValid()) { + iface.ActivateAction(id.mid(4), params, platformData); + } else { + if (iface.isValid()) { + iface.Activate(platformData); + } + + QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/org/freedesktop/portal/desktop"), + QStringLiteral("org.freedesktop.impl.portal.Notification"), + QStringLiteral("ActionInvoked")); + message << appId << id << ourAction.first << params; + QDBusConnection::sessionBus().send(message); + } } void NotificationPortal::RemoveNotification(const QString &app_id, const QString &id)