diff --git a/applets/notifications/package/contents/ui/NotificationDelegate.qml b/applets/notifications/package/contents/ui/NotificationDelegate.qml --- a/applets/notifications/package/contents/ui/NotificationDelegate.qml +++ b/applets/notifications/package/contents/ui/NotificationDelegate.qml @@ -117,6 +117,7 @@ actions: model.actions created: model.created hasDefaultAction: model.hasDefaultAction + hasConfigureAction: model.hasConfigureAction urls: { // QML ListModel tries to be smart and turns our urls Array into a dict with index as key... var urls = [] diff --git a/applets/notifications/package/contents/ui/NotificationItem.qml b/applets/notifications/package/contents/ui/NotificationItem.qml --- a/applets/notifications/package/contents/ui/NotificationItem.qml +++ b/applets/notifications/package/contents/ui/NotificationItem.qml @@ -56,6 +56,7 @@ property ListModel actions: ListModel { } property bool hasDefaultAction: false + property bool hasConfigureAction: false readonly property bool dragging: thumbnailStripLoader.item ? thumbnailStripLoader.item.dragging : false @@ -211,7 +212,13 @@ iconSource: "configure" - onClicked: configure() + onClicked: { + if (notificationItem.hasConfigureAction) { + notificationItem.action("settings"); + } else { + configure() + } + } } PlasmaComponents.ToolButton { diff --git a/applets/notifications/package/contents/ui/NotificationPopup.qml b/applets/notifications/package/contents/ui/NotificationPopup.qml --- a/applets/notifications/package/contents/ui/NotificationPopup.qml +++ b/applets/notifications/package/contents/ui/NotificationPopup.qml @@ -113,6 +113,7 @@ configurable: notificationProperties.configurable && !Settings.isMobile ? true : false urls: notificationProperties.urls || [] hasDefaultAction: notificationProperties.hasDefaultAction || false + hasConfigureAction: notificationProperties.hasConfigureAction || false width: Math.round(23 * units.gridUnit) maximumTextHeight: theme.mSize(theme.defaultFont).height * 10 diff --git a/applets/notifications/package/contents/ui/Notifications.qml b/applets/notifications/package/contents/ui/Notifications.qml --- a/applets/notifications/package/contents/ui/Notifications.qml +++ b/applets/notifications/package/contents/ui/Notifications.qml @@ -179,8 +179,12 @@ _data["hasDefaultAction"] = false if (data["actions"] && data["actions"].length % 2 == 0) { for (var i = 0; i < data["actions"].length; i += 2) { - if (data["actions"][i] == "default") { // The default action is not shown, but we want to know it's there + var action = data["actions"][i] + if (action == "default") { // The default action is not shown, but we want to know it's there _data["hasDefaultAction"] = true + } else if (action == "settings") { // configure icon in the notification for custom notification settings + _data["hasConfigureAction"] = true; + _data["configurable"] = true; } else { actions.push({ id: data["actions"][i],