Skip to content

Commit

Permalink
Fixes: NB#276863 - [TASK] Notifications timestamps and sorting in loc…
Browse files Browse the repository at this point in the history
…k screen.

RevBy: Vesa Halttunen

Details: Introduces a new dbus API for adding, removing and updating notifications.
Old dbus API for notifications is deprecated.
  • Loading branch information
Janne Sakko committed Oct 10, 2011
1 parent 4d6c2e3 commit 065dbaf
Show file tree
Hide file tree
Showing 17 changed files with 706 additions and 56 deletions.
17 changes: 17 additions & 0 deletions src/libnotificationsystem/genericnotificationparameterfactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@ class GenericNotificationParameterFactory
return QString("identifier");
}

/*!
* Returns keyname of the timestamp parameter
*/
static QString timestampKey() {
return QString("timestamp");
}

/*!
* Creates a NotificationParameter with the given event type.
*
Expand Down Expand Up @@ -130,6 +137,16 @@ class GenericNotificationParameterFactory
static NotificationParameter createIdentifierParameter(const QString &identifier) {
return NotificationParameter(identifierKey(), QVariant(identifier));
}

/*!
* Creates a NotificationParameter with timestamp value
*
* \param timestamp timestamp parameter of notification
* \return the related NotificationParameter
*/
static NotificationParameter createTimestampParameter(uint timestamp) {
return NotificationParameter(timestampKey(), QVariant(timestamp));
}
};

#endif // GENERICNOTIFICATIONPARAMETERFACTORY_H
1 change: 0 additions & 1 deletion src/libnotificationsystem/notification.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ int Notification::timeout() const
return timeout_;
}


QDataStream &operator<<(QDataStream &datastream, const Notification &notification)
{
datastream << notification.notificationId_;
Expand Down
1 change: 0 additions & 1 deletion src/libnotificationsystem/notification.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ class Notification
*/
int timeout() const;


friend QDataStream &operator<<(QDataStream &, const Notification &);
friend QDataStream &operator>>(QDataStream &, Notification &);

Expand Down
1 change: 0 additions & 1 deletion src/libnotificationsystem/notificationgroup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ void NotificationGroup::updateParameters(const NotificationParameters &parameter
parameters_.update(parameters);
}


QDataStream &operator<<(QDataStream &datastream, const NotificationGroup &notificationGroup)
{
datastream << notificationGroup.groupId_;
Expand Down
54 changes: 54 additions & 0 deletions src/systemui/notifications/dbusinterfacenotificationsource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
#include "dbusinterfacenotificationsource.h"
#include "dbusinterfacenotificationsourceadaptor.h"
#include "mnotificationproxy.h"
#include "notificationwidgetparameterfactory.h"
#include "genericnotificationparameterfactory.h"

Q_DECLARE_METATYPE(MNotificationProxy)
Q_DECLARE_METATYPE(MNotificationWithIdentifierProxy)
Expand All @@ -29,6 +31,11 @@ Q_DECLARE_METATYPE(QList<MNotificationProxy>)
Q_DECLARE_METATYPE(QList<MNotificationWithIdentifierProxy>)
Q_DECLARE_METATYPE(QList<MNotificationGroupProxy>)
Q_DECLARE_METATYPE(QList<MNotificationGroupWithIdentifierProxy>)
Q_DECLARE_METATYPE(QList<NotificationParameters>)
Q_DECLARE_METATYPE(MNotificationProxyWithParameters)
Q_DECLARE_METATYPE(QList<MNotificationProxyWithParameters>)
Q_DECLARE_METATYPE(MNotificationGroupProxyWithParameters)
Q_DECLARE_METATYPE(QList<MNotificationGroupProxyWithParameters>)

DBusInterfaceNotificationSource::DBusInterfaceNotificationSource(NotificationManagerInterface &interface)
: NotificationSource(interface)
Expand All @@ -46,6 +53,11 @@ DBusInterfaceNotificationSource::DBusInterfaceNotificationSource(NotificationMan
qDBusRegisterMetaType<QList<MNotificationGroupProxy> >();
qDBusRegisterMetaType<MNotificationGroupWithIdentifierProxy>();
qDBusRegisterMetaType<QList<MNotificationGroupWithIdentifierProxy> >();
qDBusRegisterMetaType<QList<NotificationParameters> >();
qDBusRegisterMetaType<MNotificationProxyWithParameters>();
qDBusRegisterMetaType<QList<MNotificationProxyWithParameters> >();
qDBusRegisterMetaType<MNotificationGroupProxyWithParameters>();
qDBusRegisterMetaType<QList<MNotificationGroupProxyWithParameters> >();

new DBusInterfaceNotificationSourceAdaptor(this);
}
Expand Down Expand Up @@ -178,3 +190,45 @@ uint DBusInterfaceNotificationSource::notificationCountInGroup(uint notification
{
return manager.notificationCountInGroup(notificationUserId, groupId);
}

uint DBusInterfaceNotificationSource::addNotification(uint notificationUserId, uint groupId, const NotificationParameters &parameters)
{
return manager.addNotification(notificationUserId, parameters, groupId);
}

bool DBusInterfaceNotificationSource::updateNotification(uint notificationUserId, uint notificationId, const NotificationParameters &parameters)
{
return manager.updateNotification(notificationUserId, notificationId, parameters);
}

uint DBusInterfaceNotificationSource::addGroup(uint notificationUserId, const NotificationParameters &parameters)
{
return manager.addGroup(notificationUserId, parameters);
}

bool DBusInterfaceNotificationSource::updateGroup(uint notificationUserId, uint groupId, const NotificationParameters &parameters)
{
return manager.updateGroup(notificationUserId, groupId, parameters);
}

QList<MNotificationProxyWithParameters> DBusInterfaceNotificationSource::notificationListWithNotificationParameters(uint notificationUserId)
{
QList<MNotificationProxyWithParameters> userNotifications;

foreach (const Notification &notification, manager.notificationList(notificationUserId)) {
userNotifications.append(MNotificationProxyWithParameters(notification));
}

return userNotifications;
}

QList<MNotificationGroupProxyWithParameters> DBusInterfaceNotificationSource::notificationGroupListWithNotificationParameters(uint notificationUserId)
{
QList<MNotificationGroupProxyWithParameters> userGroups;

foreach (const NotificationGroup &group, manager.notificationGroupList(notificationUserId)) {
userGroups.append(MNotificationGroupProxyWithParameters(group));
}

return userGroups;
}
Loading

0 comments on commit 065dbaf

Please sign in to comment.