I have made the following changes intended for : CE:UX:MTF / lipstick Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below.
https://build.pub.meego.com//request/show/8201 Thank You, vesuri [This message was auto-generated] --- Request # 8201: Messages from BOSS: State: review at 2013-02-26T11:25:33 by bossbot Reviews: accepted by bossbot : Prechecks succeeded. new for CE-maintainers : Please replace this text with a review and approve/reject the review (not the SR). BOSS will take care of the rest Changes: submit: home:vesuri:branches:CE:UX:MTF / lipstick -> CE:UX:MTF / lipstick changes files: -------------- --- lipstick.changes +++ lipstick.changes @@ -0,0 +1,6 @@ +* Tue Feb 26 2013 Vesa Halttunen <[email protected]> - 0.9.5 +- Expose notification item count in the Notification class (from Vesa) + +* Thu Feb 21 2013 Robin Burchell <[email protected]> - 0.9.4 +- Remove StatusBar component. Fixes NEMO#340. (from Robin) + old: ---- lipstick-0.9.3.tar.bz2 new: ---- lipstick-0.9.5.tar.bz2 spec files: ----------- --- lipstick.spec +++ lipstick.spec @@ -9,7 +9,7 @@ # << macros Summary: QML toolkit for homescreen creation -Version: 0.9.3 +Version: 0.9.5 Release: 1 Group: System/Libraries License: LGPLv2.1 other changes: -------------- ++++++ lipstick-0.9.3.tar.bz2 -> lipstick-0.9.5.tar.bz2 --- plugin/lipstickplugin.cpp +++ plugin/lipstickplugin.cpp @@ -20,7 +20,6 @@ #include <components/launchermodel.h> #include <components/switchermodel.h> #include <components/switcherpixmapitem.h> -#include <components/statusbar.h> #include <components/windowmanager.h> #include <components/windowinfo.h> #include <notifications/notificationpreviewpresenter.h> @@ -42,7 +41,6 @@ qmlRegisterType<LauncherModel>("org.nemomobile.lipstick", 0, 1, "LauncherModel"); qmlRegisterType<SwitcherModel>("org.nemomobile.lipstick", 0, 1, "SwitcherModel"); qmlRegisterType<SwitcherPixmapItem>("org.nemomobile.lipstick", 0, 1, "SwitcherPixmapItem"); - qmlRegisterType<StatusBar>("org.nemomobile.lipstick", 0, 1, "StatusBar"); qmlRegisterType<NotificationListModel>("org.nemomobile.lipstick", 0, 1, "NotificationListModel"); qmlRegisterType<Notification>("org.nemomobile.lipstick", 0, 1, "Notification"); qmlRegisterType<LauncherItem>("org.nemomobile.lipstick", 0, 1, "LauncherItem"); --- src/components/statusbar.cpp +++ src/components/statusbar.cpp @@ -1,262 +0,0 @@ - -// This file is part of lipstick, a QML desktop library -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License version 2.1 as published by the Free Software Foundation -// and appearing in the file LICENSE.LGPL included in the packaging -// of this file. -// -// This code is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// Copyright (c) 2012, Timur Kristóf <[email protected]> - -#include "statusbar.h" - -#include <QPainter> -#include <QX11Info> -#include <QTouchEvent> -#include <QDBusInterface> -#include <QDBusConnection> -#include <QGraphicsScene> -#include <QGraphicsSceneMouseEvent> -#include <QGraphicsSceneContextMenuEvent> -#include <QGraphicsView> -#include <QTimer> - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Xatom.h> -#include <X11/extensions/Xcomposite.h> -#include <X11/extensions/Xdamage.h> - -// Define this if you'd like to see debug messages from the status bar -#ifdef DEBUG_STATUSBAR -#define STATUSBAR_DEBUG(things) qDebug() << Q_FUNC_INFO << things -#else -#define STATUSBAR_DEBUG(things) -#endif - -// Fetches the shared status bar pixmap -static QPixmap fetchSharedPixmap() -{ - static Atom propertyWindowAtom = 0; - static Atom pixmapHandleAtom = 0; - - // This contains the statusbar window - if (propertyWindowAtom == 0) - propertyWindowAtom = XInternAtom(QX11Info::display(), "_MEEGOTOUCH_STATUSBAR_PROPERTY_WINDOW", False); - - // This contains the shared pixmap - if (pixmapHandleAtom == 0) - pixmapHandleAtom = XInternAtom(QX11Info::display(), "_MEEGOTOUCH_STATUSBAR_PIXMAP", False); - - // Some common variables - Atom actualType = 0; - int actualFormat = 0; - unsigned long nitems = 0; - unsigned long bytesAfter = 0; - unsigned char *data = 0; - int status = 0; - - // Getting the status bar window - status = XGetWindowProperty(QX11Info::display(), - QX11Info::appRootWindow(), - propertyWindowAtom, - 0, - 1, - False, - XA_WINDOW, - &actualType, - &actualFormat, - &nitems, - &bytesAfter, - &data); - - Window window(0); - if (status == Success && data != None) - { - window = *(Window *)data; - XFree(data); - } - - // Getting the shared pixmap from the status bar window - status = XGetWindowProperty(QX11Info::display(), - window, - pixmapHandleAtom, - 0, - 1, - False, - XA_PIXMAP, - &actualType, - &actualFormat, - &nitems, - &bytesAfter, - &data); - - QPixmap result; - - if (status == Success) - { - quint32 handle = *((unsigned long*)data); - - if (actualType == XA_PIXMAP && actualFormat == 32 && handle != 0) - { - result = QPixmap::fromX11Pixmap(handle, QPixmap::ExplicitlyShared); - // TODO: we should register for damage events for this pixmap and repaint when they arrive - // (perhaps create an XEventListener fromt his class too?) - } - - XFree(data); - } - - return result; -} - -StatusBar::StatusBar(QDeclarativeItem *parent) : - QDeclarativeItem(parent) -{ - setFlag(QGraphicsItem::ItemHasNoContents, false); - setAcceptedMouseButtons(Qt::LeftButton); - setImplicitHeight(36); - QTimer::singleShot(0, this, SLOT(initializeStatusBar())); -} - -void StatusBar::initializeStatusBar() -{ - _sharedPixmap = fetchSharedPixmap(); - - if (_sharedPixmap.isNull()) - { - QTimer::singleShot(1000, this, SLOT(initializeStatusBar())); - return; - } - - setImplicitHeight(_sharedPixmap.height() / 2); - updateXThings(); -} - -void StatusBar::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - Q_UNUSED(option) - Q_UNUSED(widget) - - if (_sharedPixmap.isNull()) - { - STATUSBAR_DEBUG("the shared pixmap is null, can't draw it!"); - painter->setPen(QColor(Qt::black)); - painter->drawRect(0, 0, width(), height()); - return; - } - - // Info: The shared pixmap contains both the portrait and the landscape mode status bars below each other. - // Landscape is on top, portrait on bottom. They have the same height. - // All we need is check the orientation here and set the source rect accordingly. - - painter->drawPixmap(QRectF(0, 0, width(), height()), _sharedPixmap, QRectF(0, _isPortrait ? height() : 0, width(), height())); -} - -bool StatusBar::isPortrait() const -{ - return _isPortrait; -} - -void StatusBar::updateXThings() -{ - // Statusbar rect - QPointF p = mapToScene(0, 0); - unsigned long data[4] = { (unsigned long)p.x(), (unsigned long)p.y(), (unsigned long)width(), (unsigned long)height() }; - STATUSBAR_DEBUG("statusbar geo:" << (int)p.x() << (int)p.y() << (int)width() << (int)height()); - - // Orientation angle - int angle = isPortrait() ? 270 : 0; - STATUSBAR_DEBUG("orientation angle:" << angle); - - if (!this->scene() || this->scene()->views().length() == 0) - { - STATUSBAR_DEBUG("Something's not ok, trying to get back here later"); - QTimer::singleShot(0, this, SLOT(updateXThings())); - return; - } - - // Stuff for X - QWidget *activeWindow = this->scene()->views().at(0); - Display *dpy = QX11Info::display(); - - STATUSBAR_DEBUG("starting to set X properties"); - - // Setting the status bar geometry atom (probably not necessary here) - Atom statusBarGeometryAtom = XInternAtom(dpy, "_MEEGOTOUCH_MSTATUSBAR_GEOMETRY", False); - XChangeProperty(dpy, activeWindow->winId(), statusBarGeometryAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)data, 4); - STATUSBAR_DEBUG("called XChangeProperty for _MEEGOTOUCH_MSTATUSBAR_GEOMETRY"); - - // Setting the orientation angle atom (sysuid uses this to determine what orientation it should draw itself) - Atom orientationAngleAtom = XInternAtom(dpy, "_MEEGOTOUCH_ORIENTATION_ANGLE", False); - XChangeProperty(dpy, activeWindow->winId(), orientationAngleAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&angle, 1); - STATUSBAR_DEBUG("called XChangeProperty for _MEEGOTOUCH_ORIENTATION_ANGLE"); - - update(); -} - -void StatusBar::setIsPortrait(bool value) -{ - // If there is no change, don't bother - if (_isPortrait == value) - return; - - _isPortrait = value; - updateXThings(); - - emit isPortraitChanged(); -} - -void StatusBar::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - event->accept(); -} - -void StatusBar::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - event->accept(); - - QDBusInterface interface("com.meego.core.MStatusIndicatorMenu", - "/statusindicatormenu", - "com.meego.core.MStatusIndicatorMenu", - QDBusConnection::sessionBus()); - - interface.call(QDBus::NoBlock, "open"); -} - -void StatusBar::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) -{ - event->accept(); -} - -void StatusBar::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - event->accept(); -} - -void StatusBar::hoverEnterEvent(QGraphicsSceneHoverEvent *event) -{ - event->accept(); -} - -void StatusBar::hoverMoveEvent(QGraphicsSceneHoverEvent *event) -{ - event->accept(); -} - -void StatusBar::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) -{ - event->accept(); -} - -void StatusBar::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) -{ - event->accept(); -} - --- src/components/statusbar.h +++ src/components/statusbar.h @@ -1,63 +0,0 @@ - -// This file is part of lipstick, a QML desktop library -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License version 2.1 as published by the Free Software Foundation -// and appearing in the file LICENSE.LGPL included in the packaging -// of this file. -// -// This code is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// Copyright (c) 2012, Timur Kristóf <[email protected]> - -#ifndef STATUSBAR_H -#define STATUSBAR_H - -#include <QDeclarativeItem> -#include <QPixmap> -#include "lipstickglobal.h" - -class LIPSTICK_EXPORT StatusBar : public QDeclarativeItem -{ - Q_OBJECT - Q_PROPERTY(bool isPortrait READ isPortrait WRITE setIsPortrait NOTIFY isPortraitChanged) - - QPixmap _sharedPixmap; - bool _isPortrait; - -private slots: - void updateXThings(); - -public: - explicit StatusBar(QDeclarativeItem *parent = 0); - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); - void updateSharedPixmap(); - bool isPortrait() const; - void setIsPortrait(bool value); - - // we reimplement pretty much all virtuals, to prevent anything - // propegating to items (like MouseArea) underneath us. - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void hoverEnterEvent(QGraphicsSceneHoverEvent *event); - void hoverMoveEvent(QGraphicsSceneHoverEvent *event); - void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); - void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); - - -private slots: - void initializeStatusBar(); - -signals: - void isPortraitChanged(); - -}; - -#endif // STATUSBAR_H --- src/notifications/notification.cpp +++ src/notifications/notification.cpp @@ -124,6 +124,7 @@ QString oldPreviewSummary = previewSummary(); QString oldPreviewBody = previewBody(); int oldUrgency = urgency(); + int oldItemCount = itemCount(); hints_ = hints; @@ -150,6 +151,10 @@ if (oldUrgency != urgency()) { emit urgencyChanged(); } + + if (oldItemCount != itemCount()) { + emit itemCountChanged(); + } } int Notification::expireTimeout() const @@ -192,6 +197,11 @@ return hints_.value(NotificationManager::HINT_URGENCY).toInt(); } +int Notification::itemCount() const +{ + return hints_.value(NotificationManager::HINT_ITEM_COUNT).toInt(); +} + QDBusArgument &operator<<(QDBusArgument &argument, const Notification ¬ification) { argument.beginStructure(); --- src/notifications/notification.h +++ src/notifications/notification.h @@ -42,6 +42,7 @@ Q_PROPERTY(QString previewSummary READ previewSummary NOTIFY previewSummaryChanged) Q_PROPERTY(QString previewBody READ previewBody NOTIFY previewBodyChanged) Q_PROPERTY(int urgency READ urgency NOTIFY urgencyChanged) + Q_PROPERTY(int itemCount READ itemCount NOTIFY itemCountChanged) public: /*! @@ -129,6 +130,9 @@ //! Returns the urgency of the notification int urgency() const; + //! Returns the item count of the notification + int itemCount() const; + //! \internal /*! * Creates a copy of an existing representation of a notification. @@ -175,6 +179,9 @@ //! Sent when the urgency has been modified void urgencyChanged(); + //! Sent when the item count has been modified + void itemCountChanged(); + private: //! Name of the application sending the notification QString appName_; --- src/src.pro +++ src/src.pro @@ -3,7 +3,7 @@ TEMPLATE = lib TARGET = lipstick -VERSION = 0.9.3 +VERSION = 0.9.5 DEFINES += LIPSTICK_BUILD_LIBRARY VERSION=\\\"$$VERSION\\\" @@ -25,7 +25,6 @@ components/launchermodel.h \ components/switchermodel.h \ components/switcherpixmapitem.h \ - components/statusbar.h \ components/windowmanager.h \ notifications/notificationmanager.h \ notifications/notification.h \ @@ -76,7 +75,6 @@ components/launchermodel.cpp \ components/switchermodel.cpp \ components/switcherpixmapitem.cpp \ - components/statusbar.cpp \ components/windowmanager.cpp \ notifications/notificationmanager.cpp \ notifications/notificationmanageradaptor.cpp \ --- tests/stubs/notification_stub.h +++ tests/stubs/notification_stub.h @@ -1,231 +0,0 @@ -/*************************************************************************** -** -** Copyright (C) 2012 Jolla Ltd. -** Contact: Robin Burchell <[email protected]> -** -** This file is part of lipstick. -** -** This library is free software; you can redistribute it and/or -** modify it under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation -** and appearing in the file LICENSE.LGPL included in the packaging -** of this file. -** -****************************************************************************/ -#ifndef NOTIFICATION_STUB -#define NOTIFICATION_STUB - -#include "notification.h" -#include <stubbase.h> - - -// 1. DECLARE STUB -// FIXME - stubgen is not yet finished -class NotificationStub : public StubBase { - public: - virtual void NotificationConstructor(const QString &appName, const QString &appIcon, const QString &summary, const QString &body, const QStringList &actions, const QVariantHash &hints, int expireTimeout, QObject *parent); - virtual QString appName() const; - virtual void setAppName(const QString &appName); - virtual QString appIcon() const; - virtual void setAppIcon(const QString &appIcon); - virtual QString summary() const; - virtual void setSummary(const QString &summary); - virtual QString body() const; - virtual void setBody(const QString &body); - virtual QStringList actions() const; - virtual void setActions(const QStringList &actions); - virtual QVariantHash hints() const; - virtual void setHints(const QVariantHash &hints); - virtual int expireTimeout() const; - virtual void setExpireTimeout(int expireTimeout); - virtual QString icon() const; - virtual QDateTime timestamp() const; - virtual QString localizedTimestamp() const; -}; - -// 2. IMPLEMENT STUB -void NotificationStub::NotificationConstructor(const QString &appName, const QString &appIcon, const QString &summary, const QString &body, const QStringList &actions, const QVariantHash &hints, int expireTimeout, QObject *parent) { - Q_UNUSED(appName); - Q_UNUSED(appIcon); - Q_UNUSED(summary); - Q_UNUSED(body); - Q_UNUSED(actions); - Q_UNUSED(hints); - Q_UNUSED(expireTimeout); - Q_UNUSED(parent); - -} -QString NotificationStub::appName() const { - stubMethodEntered("appName"); - return stubReturnValue<QString>("appName"); -} - -void NotificationStub::setAppName(const QString &appName) { - QList<ParameterBase*> params; - params.append( new Parameter<const QString & >(appName)); - stubMethodEntered("setAppName",params); -} - -QString NotificationStub::appIcon() const { - stubMethodEntered("appIcon"); - return stubReturnValue<QString>("appIcon"); -} - -void NotificationStub::setAppIcon(const QString &appIcon) { - QList<ParameterBase*> params; - params.append( new Parameter<const QString & >(appIcon)); - stubMethodEntered("setAppIcon",params); -} - -QString NotificationStub::summary() const { - stubMethodEntered("summary"); - return stubReturnValue<QString>("summary"); -} - -void NotificationStub::setSummary(const QString &summary) { - QList<ParameterBase*> params; - params.append( new Parameter<const QString & >(summary)); - stubMethodEntered("setSummary",params); -} - -QString NotificationStub::body() const { - stubMethodEntered("body"); - return stubReturnValue<QString>("body"); -} - -void NotificationStub::setBody(const QString &body) { - QList<ParameterBase*> params; - params.append( new Parameter<const QString & >(body)); - stubMethodEntered("setBody",params); -} - -QStringList NotificationStub::actions() const { - stubMethodEntered("actions"); - return stubReturnValue<QStringList>("actions"); -} - -void NotificationStub::setActions(const QStringList &actions) { - QList<ParameterBase*> params; - params.append( new Parameter<const QStringList & >(actions)); - stubMethodEntered("setActions",params); -} - -QVariantHash NotificationStub::hints() const { - stubMethodEntered("hints"); - return stubReturnValue<QVariantHash>("hints"); -} - -void NotificationStub::setHints(const QVariantHash &hints) { - QList<ParameterBase*> params; - params.append( new Parameter<const QVariantHash & >(hints)); - stubMethodEntered("setHints",params); -} - -int NotificationStub::expireTimeout() const { - stubMethodEntered("expireTimeout"); - return stubReturnValue<int>("expireTimeout"); -} - -void NotificationStub::setExpireTimeout(int expireTimeout) { - QList<ParameterBase*> params; - params.append( new Parameter<int >(expireTimeout)); - stubMethodEntered("setExpireTimeout",params); -} - -QString NotificationStub::icon() const { - stubMethodEntered("icon"); - return stubReturnValue<QString>("icon"); -} - -QDateTime NotificationStub::timestamp() const { - stubMethodEntered("timestamp"); - return stubReturnValue<QDateTime>("timestamp"); -} - -QString NotificationStub::localizedTimestamp() const { - stubMethodEntered("localizedTimestamp"); - return stubReturnValue<QString>("localizedTimestamp"); -} - - - -// 3. CREATE A STUB INSTANCE -NotificationStub gDefaultNotificationStub; -NotificationStub* gNotificationStub = &gDefaultNotificationStub; - - -// 4. CREATE A PROXY WHICH CALLS THE STUB -Notification::Notification(const QString &appName, const QString &appIcon, const QString &summary, const QString &body, const QStringList &actions, const QVariantHash &hints, int expireTimeout, QObject *parent) { - gNotificationStub->NotificationConstructor(appName, appIcon, summary, body, actions, hints, expireTimeout, parent); -} - -QString Notification::appName() const { - return gNotificationStub->appName(); -} - -void Notification::setAppName(const QString &appName) { - gNotificationStub->setAppName(appName); -} - -QString Notification::appIcon() const { - return gNotificationStub->appIcon(); -} - -void Notification::setAppIcon(const QString &appIcon) { - gNotificationStub->setAppIcon(appIcon); -} - -QString Notification::summary() const { - return gNotificationStub->summary(); -} - -void Notification::setSummary(const QString &summary) { - gNotificationStub->setSummary(summary); -} - -QString Notification::body() const { - return gNotificationStub->body(); -} - -void Notification::setBody(const QString &body) { - gNotificationStub->setBody(body); -} - -QStringList Notification::actions() const { - return gNotificationStub->actions(); -} - -void Notification::setActions(const QStringList &actions) { - gNotificationStub->setActions(actions); -} - -QVariantHash Notification::hints() const { - return gNotificationStub->hints(); -} - -void Notification::setHints(const QVariantHash &hints) { - gNotificationStub->setHints(hints); -} - -int Notification::expireTimeout() const { - return gNotificationStub->expireTimeout(); -} - -void Notification::setExpireTimeout(int expireTimeout) { - gNotificationStub->setExpireTimeout(expireTimeout); -} - -QString Notification::icon() const { - return gNotificationStub->icon(); -} - -QDateTime Notification::timestamp() const { - return gNotificationStub->timestamp(); -} - -QString Notification::localizedTimestamp() const { - return gNotificationStub->localizedTimestamp(); -} - - -#endif --- tests/stubs/notificationmanager_stub.h +++ tests/stubs/notificationmanager_stub.h @@ -138,6 +138,7 @@ const char *NotificationManager::HINT_CATEGORY = "category"; const char *NotificationManager::HINT_URGENCY = "urgency"; const char *NotificationManager::HINT_ICON = "x-nemo-icon"; +const char *NotificationManager::HINT_ITEM_COUNT = "x-nemo-item-count"; const char *NotificationManager::HINT_TIMESTAMP = "x-nemo-timestamp"; const char *NotificationManager::HINT_PREVIEW_ICON = "x-nemo-preview-icon"; const char *NotificationManager::HINT_PREVIEW_BODY = "x-nemo-preview-body"; --- tests/ut_notification/ut_notification.cpp +++ tests/ut_notification/ut_notification.cpp @@ -30,10 +30,12 @@ QString previewSummary = "previewSummary1"; QString previewBody = "previewBody1"; int urgency = 1; + int itemCount = 5; QStringList actions = QStringList() << "action1a" << "action1b"; QDateTime timestamp = QDateTime::currentDateTime(); QVariantHash hints; hints.insert(NotificationManager::HINT_TIMESTAMP, timestamp); + hints.insert(NotificationManager::HINT_ITEM_COUNT, itemCount); hints.insert(NotificationManager::HINT_PREVIEW_ICON, previewIcon); hints.insert(NotificationManager::HINT_PREVIEW_SUMMARY, previewSummary); hints.insert(NotificationManager::HINT_PREVIEW_BODY, previewBody); @@ -54,6 +56,7 @@ QCOMPARE(notification.previewSummary(), previewSummary); QCOMPARE(notification.previewBody(), previewBody); QCOMPARE(notification.urgency(), urgency); + QCOMPARE(notification.itemCount(), itemCount); appName = "appName2"; appIcon = "appIcon2"; @@ -63,9 +66,11 @@ previewSummary = "previewSummary2"; previewBody = "previewBody2"; urgency = 2; + itemCount = 6; actions = QStringList() << "action2a" << "action2b" << "action2c"; timestamp = QDateTime::currentDateTime(); hints.insert(NotificationManager::HINT_TIMESTAMP, timestamp); + hints.insert(NotificationManager::HINT_ITEM_COUNT, itemCount); hints.insert(NotificationManager::HINT_PREVIEW_ICON, previewIcon); hints.insert(NotificationManager::HINT_PREVIEW_SUMMARY, previewSummary); hints.insert(NotificationManager::HINT_PREVIEW_BODY, previewBody); @@ -89,6 +94,7 @@ QCOMPARE(notification.previewSummary(), previewSummary); QCOMPARE(notification.previewBody(), previewBody); QCOMPARE(notification.urgency(), urgency); + QCOMPARE(notification.itemCount(), itemCount); } void Ut_Notification::testIcon_data() --- tests/ut_notificationfeedbackplayer/ut_notificationfeedbackplayer.cpp +++ tests/ut_notificationfeedbackplayer/ut_notificationfeedbackplayer.cpp @@ -21,6 +21,7 @@ const char *NotificationManager::HINT_URGENCY = "urgency"; const char *NotificationManager::HINT_ICON = "x-nemo-icon"; +const char *NotificationManager::HINT_ITEM_COUNT = "x-nemo-item-count"; const char *NotificationManager::HINT_TIMESTAMP = "x-nemo-timestamp"; const char *NotificationManager::HINT_PREVIEW_ICON = "x-nemo-preview-icon"; const char *NotificationManager::HINT_PREVIEW_BODY = "x-nemo-preview-body"; --- tests/ut_notificationpreviewpresenter/ut_notificationpreviewpresenter.cpp +++ tests/ut_notificationpreviewpresenter/ut_notificationpreviewpresenter.cpp @@ -78,6 +78,7 @@ const char *NotificationManager::HINT_URGENCY = "urgency"; const char *NotificationManager::HINT_ICON = "x-nemo-icon"; +const char *NotificationManager::HINT_ITEM_COUNT = "x-nemo-item-count"; const char *NotificationManager::HINT_TIMESTAMP = "x-nemo-timestamp"; const char *NotificationManager::HINT_PREVIEW_ICON = "x-nemo-preview-icon"; const char *NotificationManager::HINT_PREVIEW_BODY = "x-nemo-preview-body"; ++++++ lipstick.yaml --- lipstick.yaml +++ lipstick.yaml @@ -1,6 +1,6 @@ Name: lipstick Summary: QML toolkit for homescreen creation -Version: 0.9.3 +Version: 0.9.5 Release: 1 Group: System/Libraries License: LGPLv2.1
