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/8204

Thank You,
vesuri

[This message was auto-generated]

---

Request # 8204:

Messages from BOSS:

State: review at 2013-02-26T16:13:28 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,9 @@
+* Tue Feb 26 2013 Vesa Halttunen <[email protected]> - 0.9.6
+- Expose notification priority in the Notification class (from Vesa)
+
+* 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.6.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.6
 Release:    1
 Group:      System/Libraries
 License:    LGPLv2.1

other changes:
--------------

++++++ lipstick-0.9.3.tar.bz2 -> lipstick-0.9.6.tar.bz2
--- doc/src/notifications.dox
+++ doc/src/notifications.dox
@@ -42,6 +42,7 @@
  *   - The service supports the following Nemo specific hints:
  *       - \c x-nemo-icon: icon ID or path for the notification. If the string 
begins with a / it's interpreted to be an absolute path. Otherwise it's 
interpreted to be an icon ID, in which case the icon with the given ID is 
fetched from the theme.
  *       - \c x-nemo-item-count: the number of items represented by this 
notification. For example, a single notification can represent four missed 
calls by setting the count to 4.
+ *       - \c x-nemo-priority: the priority of the notification as an integer. 
Priorities can be used by UI implementations to group notifications in a 
specific order, for example.
  *       - \c x-nemo-timestamp: the timestamp for the notification. Should be 
set to the time when the event the notification is related to has occurred, not 
when the notification itself was sent.
  *       - \c x-nemo-preview-icon: icon ID to use in the preview banner for 
the notification, if any.
  *       - \c x-nemo-preview-body: body text to be shown in the preview banner 
for the notification, if any.
--- 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,8 @@
     QString oldPreviewSummary = previewSummary();
     QString oldPreviewBody = previewBody();
     int oldUrgency = urgency();
+    int oldItemCount = itemCount();
+    int oldPriority = priority();
 
     hints_ = hints;
 
@@ -150,6 +152,14 @@
     if (oldUrgency != urgency()) {
         emit urgencyChanged();
     }
+
+    if (oldItemCount != itemCount()) {
+        emit itemCountChanged();
+    }
+
+    if (oldPriority != priority()) {
+        emit priorityChanged();
+    }
 }
 
 int Notification::expireTimeout() const
@@ -192,6 +202,16 @@
     return hints_.value(NotificationManager::HINT_URGENCY).toInt();
 }
 
+int Notification::itemCount() const
+{
+    return hints_.value(NotificationManager::HINT_ITEM_COUNT).toInt();
+}
+
+int Notification::priority() const
+{
+    return hints_.value(NotificationManager::HINT_PRIORITY).toInt();
+}
+
 QDBusArgument &operator<<(QDBusArgument &argument, const Notification 
&notification)
 {
     argument.beginStructure();
--- src/notifications/notification.h
+++ src/notifications/notification.h
@@ -42,6 +42,8 @@
     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)
+    Q_PROPERTY(int priority READ priority NOTIFY priorityChanged)
 
 public:
     /*!
@@ -129,6 +131,12 @@
     //! Returns the urgency of the notification
     int urgency() const;
 
+    //! Returns the item count of the notification
+    int itemCount() const;
+
+    //! Returns the priority of the notification
+    int priority() const;
+
     //! \internal
     /*!
      * Creates a copy of an existing representation of a notification.
@@ -175,6 +183,12 @@
     //! Sent when the urgency has been modified
     void urgencyChanged();
 
+    //! Sent when the item count has been modified
+    void itemCountChanged();
+
+    //! Sent when the priority has been modified
+    void priorityChanged();
+
 private:
     //! Name of the application sending the notification
     QString appName_;
--- src/notifications/notificationmanager.cpp
+++ src/notifications/notificationmanager.cpp
@@ -55,6 +55,7 @@
 const char *NotificationManager::HINT_Y = "y";
 const char *NotificationManager::HINT_ICON = "x-nemo-icon";
 const char *NotificationManager::HINT_ITEM_COUNT = "x-nemo-item-count";
+const char *NotificationManager::HINT_PRIORITY = "x-nemo-priority";
 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";
--- src/notifications/notificationmanager.h
+++ src/notifications/notificationmanager.h
@@ -70,6 +70,9 @@
     //! Nemo hint: Item count represented by the notification.
     static const char *HINT_ITEM_COUNT;
 
+    //! Nemo hint: Priority level of the notification.
+    static const char *HINT_PRIORITY;
+
     //! Nemo hint: Timestamp of the notification.
     static const char *HINT_TIMESTAMP;
 
--- src/src.pro
+++ src/src.pro
@@ -3,7 +3,7 @@
 
 TEMPLATE = lib
 TARGET = lipstick
-VERSION = 0.9.3
+VERSION = 0.9.6
 
 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,8 @@
 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_PRIORITY = "x-nemo-priority";
 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,14 @@
     QString previewSummary = "previewSummary1";
     QString previewBody = "previewBody1";
     int urgency = 1;
+    int itemCount = 1;
+    int priority = 1;
     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_PRIORITY, priority);
     hints.insert(NotificationManager::HINT_PREVIEW_ICON, previewIcon);
     hints.insert(NotificationManager::HINT_PREVIEW_SUMMARY, previewSummary);
     hints.insert(NotificationManager::HINT_PREVIEW_BODY, previewBody);
@@ -54,6 +58,8 @@
     QCOMPARE(notification.previewSummary(), previewSummary);
     QCOMPARE(notification.previewBody(), previewBody);
     QCOMPARE(notification.urgency(), urgency);
+    QCOMPARE(notification.itemCount(), itemCount);
+    QCOMPARE(notification.priority(), priority);
 
     appName = "appName2";
     appIcon = "appIcon2";
@@ -63,9 +69,13 @@
     previewSummary = "previewSummary2";
     previewBody = "previewBody2";
     urgency = 2;
+    itemCount = 2;
+    priority = 2;
     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_PRIORITY, priority);
     hints.insert(NotificationManager::HINT_PREVIEW_ICON, previewIcon);
     hints.insert(NotificationManager::HINT_PREVIEW_SUMMARY, previewSummary);
     hints.insert(NotificationManager::HINT_PREVIEW_BODY, previewBody);
@@ -89,6 +99,8 @@
     QCOMPARE(notification.previewSummary(), previewSummary);
     QCOMPARE(notification.previewBody(), previewBody);
     QCOMPARE(notification.urgency(), urgency);
+    QCOMPARE(notification.itemCount(), itemCount);
+    QCOMPARE(notification.priority(), priority);
 }
 
 void Ut_Notification::testIcon_data()
--- tests/ut_notificationfeedbackplayer/ut_notificationfeedbackplayer.cpp
+++ tests/ut_notificationfeedbackplayer/ut_notificationfeedbackplayer.cpp
@@ -21,6 +21,8 @@
 
 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_PRIORITY = "x-nemo-priority";
 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,8 @@
 
 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_PRIORITY = "x-nemo-priority";
 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.6
 Release: 1
 Group: System/Libraries
 License: LGPLv2.1



Reply via email to