diff --git a/applets/notifications/package/contents/ui/Jobs.qml b/applets/notifications/package/contents/ui/Jobs.qml --- a/applets/notifications/package/contents/ui/Jobs.qml +++ b/applets/notifications/package/contents/ui/Jobs.qml @@ -88,6 +88,7 @@ isPersistent: true, urgency: 0, configurable: false, + skipGrouping: true, // Bug 360156 actions: !error && UrlHelper.isUrlValid(message) ? ["jobUrl#" + message, i18n("Open...")] : [] }; // If the actionId contains "jobUrl#", it tries to open the "id" value (which is "message") diff --git a/dataengines/notifications/notificationaction.cpp b/dataengines/notifications/notificationaction.cpp --- a/dataengines/notifications/notificationaction.cpp +++ b/dataengines/notifications/notificationaction.cpp @@ -61,14 +61,18 @@ int expireTimeout = parameters().value(QStringLiteral("expireTimeout")).toInt(); bool isPersistent = parameters().value(QStringLiteral("isPersistent")).toBool(); + QVariantMap hints; + if (parameters().value(QStringLiteral("skipGrouping")).toBool()) { + hints.insert(QStringLiteral("x-kde-skipGrouping"), true); + } + int rv = m_engine->createNotification(parameters().value(QStringLiteral("appName")).toString(), parameters().value(QStringLiteral("appIcon")).toString(), parameters().value(QStringLiteral("summary")).toString(), parameters().value(QStringLiteral("body")).toString(), isPersistent ? 0 : expireTimeout, - QString(), - parameters().value(QStringLiteral("actions")).toStringList() - ); + parameters().value(QStringLiteral("actions")).toStringList(), + hints); setResult(rv); } else if (operationName() == QLatin1String("configureNotification")) { m_engine->configureNotification(parameters()[QStringLiteral("appRealName")].toString(), diff --git a/dataengines/notifications/notifications.operations b/dataengines/notifications/notifications.operations --- a/dataengines/notifications/notifications.operations +++ b/dataengines/notifications/notifications.operations @@ -32,6 +32,9 @@ + + diff --git a/dataengines/notifications/notificationsengine.h b/dataengines/notifications/notificationsengine.h --- a/dataengines/notifications/notificationsengine.h +++ b/dataengines/notifications/notificationsengine.h @@ -54,7 +54,7 @@ QString GetServerInformation(QString& vendor, QString& version, QString& specVersion); int createNotification(const QString &appName, const QString &appIcon, const QString &summary, - const QString &body, int timeout, const QString &appRealName, const QStringList &actions); + const QString &body, int timeout, const QStringList &actions, const QVariantMap &hints); void configureNotification(const QString &appName, const QString &eventId = QString()); diff --git a/dataengines/notifications/notificationsengine.cpp b/dataengines/notifications/notificationsengine.cpp --- a/dataengines/notifications/notificationsengine.cpp +++ b/dataengines/notifications/notificationsengine.cpp @@ -392,10 +392,8 @@ } int NotificationsEngine::createNotification(const QString &appName, const QString &appIcon, const QString &summary, - const QString &body, int timeout, const QString &appRealName, const QStringList &actions) + const QString &body, int timeout, const QStringList &actions, const QVariantMap &hints) { - QVariantMap hints; - hints.insert(QStringLiteral("x-kde-appname"), appRealName); Notify(appName, 0, appIcon, summary, body, actions, hints, timeout); return m_nextId; }