summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-05-23 14:27:03 +0200
committerRobert Griebl <robert.griebl@qt.io>2023-05-23 15:41:08 +0200
commit4c7191924f1abe8e4d6467f7aee7361962324bec (patch)
tree23644ea10534185787fd8d8ee4c8c9e9e92e513f
parentc4f24b8435a52d2df7c00383688a10af721adfa4 (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.qmltypes2
-rw-r--r--src/manager-lib/notificationmanager.cpp21
-rw-r--r--src/notification-lib/notification.h2
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);