diff --git a/src/knotification.h b/src/knotification.h --- a/src/knotification.h +++ b/src/knotification.h @@ -278,7 +278,13 @@ * @since 5.58 * @sa setUrgency */ - enum Urgency { DefaultUrgency = -1, LowUrgency, NormalUrgency, CriticalUrgency }; + enum Urgency { + DefaultUrgency = -1, + LowUrgency = 10, + NormalUrgency = 50, + HighUrgency = 70, + CriticalUrgency = 90 + }; /** * Create a new notification. diff --git a/src/knotificationmanager.cpp b/src/knotificationmanager.cpp --- a/src/knotificationmanager.cpp +++ b/src/knotificationmanager.cpp @@ -319,6 +319,8 @@ n->setUrgency(KNotification::LowUrgency); } else if (urgency == QLatin1String("Normal")) { n->setUrgency(KNotification::NormalUrgency); + } else if (urgency == QLatin1String("High")) { + n->setUrgency(KNotification::HighUrgency); } else if (urgency == QLatin1String("Critical")) { n->setUrgency(KNotification::CriticalUrgency); } diff --git a/src/notifybypopup.cpp b/src/notifybypopup.cpp --- a/src/notifybypopup.cpp +++ b/src/notifybypopup.cpp @@ -712,8 +712,26 @@ hintsMap[QStringLiteral("desktop-entry")] = qApp->desktopFileName(); } - if (notification->urgency() != KNotification::DefaultUrgency) { - hintsMap[QStringLiteral("urgency")] = static_cast(notification->urgency()); + int urgency = -1; + switch (notification->urgency()) { + case KNotification::DefaultUrgency: + break; + case KNotification::LowUrgency: + urgency = 0; + break; + case KNotification::NormalUrgency: + Q_FALLTHROUGH(); + // galago notifications only know low, normal, critical + case KNotification::HighUrgency: + urgency = 1; + break; + case KNotification::CriticalUrgency: + urgency = 2; + break; + } + + if (urgency > -1) { + hintsMap[QStringLiteral("urgency")] = urgency; } const QVariantMap hints = notification->hints();