diff options
author | Robert Griebl <robert.griebl@qt.io> | 2023-05-23 14:27:03 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2023-05-23 15:41:08 +0200 |
commit | 4c7191924f1abe8e4d6467f7aee7361962324bec (patch) | |
tree | 23644ea10534185787fd8d8ee4c8c9e9e92e513f | |
parent | c4f24b8435a52d2df7c00383688a10af721adfa4 (diff) |
Fix the isClickable/isAcknowledgeable mess in NotificationManager
The client side Notification object's API naming was changed from
'isClickable' to 'isAcknowledgeable', but we somehow forgot to do the
same for the server side.
This patch adds a new role, but also keeps the legacy one for
backwards compatibility.
Change-Id: Ia8503bb5fd966d9017f4090f9a6ca4ea1b131dfd
Task-number: QTBUG-113620
Pick-to: 6.5
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
-rw-r--r-- | qmltypes/QtApplicationManager/plugins.qmltypes | 2 | ||||
-rw-r--r-- | src/manager-lib/notificationmanager.cpp | 21 | ||||
-rw-r--r-- | src/notification-lib/notification.h | 2 |
3 files changed, 14 insertions, 11 deletions
diff --git a/qmltypes/QtApplicationManager/plugins.qmltypes b/qmltypes/QtApplicationManager/plugins.qmltypes index befa8dee..14502933 100644 --- a/qmltypes/QtApplicationManager/plugins.qmltypes +++ b/qmltypes/QtApplicationManager/plugins.qmltypes @@ -245,7 +245,7 @@ Module { } Signal { name: "acknowledgeableChanged" - Parameter { name: "clickable"; type: "bool"; } + Parameter { name: "acknowledgeable"; type: "bool"; } } Signal { name: "timeoutChanged" diff --git a/src/manager-lib/notificationmanager.cpp b/src/manager-lib/notificationmanager.cpp index ebdd410d..667b64bc 100644 --- a/src/manager-lib/notificationmanager.cpp +++ b/src/manager-lib/notificationmanager.cpp @@ -91,9 +91,10 @@ \li bool \li See the client side documentation of Notification::dismissOnAction \row - \li \c isClickable + \li \c isAcknowledgeable \li bool - \li See the client side documentation of Notification::clickable + \li See the client side documentation of Notification::acknowledgeable + For backwards compatibility, \c isClickable can also be used to refer to this role. \row \li \c isSytemNotification \li url @@ -151,7 +152,8 @@ enum Roles Actions, DismissOnAction, - IsClickable, + IsAcknowledgeable, + IsClickable, // legacy, replaced by IsAcknowledgeable IsSystemNotification, IsShowingProgress, @@ -178,7 +180,6 @@ struct NotificationData QVariantList actions; // list of single element maps: <id (as string) --> text (as string)> bool dismissOnAction; bool isSticky; - bool isClickable; bool isSystemNotification; bool isShowingProgress; qreal progress; @@ -268,6 +269,7 @@ NotificationManager::NotificationManager(QObject *parent) d->roleNames.insert(ShowActionsAsIcons, "showActionsAsIcons"); d->roleNames.insert(Actions, "actions"); d->roleNames.insert(DismissOnAction, "dismissOnAction"); + d->roleNames.insert(IsAcknowledgeable, "isAcknowledgeable"); d->roleNames.insert(IsClickable, "isClickable"); d->roleNames.insert(IsSystemNotification, "isSytemNotification"); d->roleNames.insert(IsShowingProgress, "isShowingProgress"); @@ -287,13 +289,13 @@ int NotificationManager::rowCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; - return d->notifications.count(); + return int(d->notifications.count()); } QVariant NotificationManager::data(const QModelIndex &index, int role) const { if (index.parent().isValid() || !index.isValid()) - return QVariant(); + return { }; const NotificationData *n = d->notifications.at(index.row()); @@ -326,7 +328,8 @@ QVariant NotificationManager::data(const QModelIndex &index, int role) const } case DismissOnAction: return n->dismissOnAction; - case IsClickable: + case IsClickable: // legacy + case IsAcknowledgeable: return n->actions.contains(QVariantMap { { qSL("default"), QString() } }); case IsSystemNotification: return n->isSystemNotification; @@ -341,7 +344,7 @@ QVariant NotificationManager::data(const QModelIndex &index, int role) const case Extended: return n->extended; } - return QVariant(); + return { }; } QHash<int, QByteArray> NotificationManager::roleNames() const @@ -574,7 +577,7 @@ uint NotificationManager::notifyHelper(const QString &app_name, uint id, bool re n->extended = convertFromDBusVariant(hints.value(qSL("x-pelagicore-extended"))).toMap(); if (replaces) { - QModelIndex idx = index(d->notifications.indexOf(n), 0); + QModelIndex idx = index(int(d->notifications.indexOf(n)), 0); emit dataChanged(idx, idx); static const auto nChanged = QMetaMethod::fromSignal(&NotificationManager::notificationChanged); if (isSignalConnected(nChanged)) { diff --git a/src/notification-lib/notification.h b/src/notification-lib/notification.h index 59ae7c8a..46685955 100644 --- a/src/notification-lib/notification.h +++ b/src/notification-lib/notification.h @@ -94,7 +94,7 @@ signals: void imageChanged(const QUrl &image); void categoryChanged(const QString &category); void priorityChanged(int priority); - void acknowledgeableChanged(bool clickable); + void acknowledgeableChanged(bool acknowledgeable); void timeoutChanged(int timeout); void stickyChanged(bool sticky); void showProgressChanged(bool showProgress); |