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)

Reply via email to