[meego-commits] 15314: Changes to devel:qt-mtf/meegotouch-systemui
Miroslav Safr
no_reply at build.meego.com
Mon Mar 28 08:29:35 UTC 2011
Hi,
I have made the following changes to meegotouch-systemui in project devel:qt-mtf. Please review and accept ASAP.
Thank You,
Miroslav Safr
[This message was auto-generated]
---
Request #15314:
submit: home:msafr/meegotouch-systemui(r3) -> devel:qt-mtf/meegotouch-systemui
Message:
* Thu Mar 24 2011 Miroslav Safr <miroslav.safr at tieto.com.com> - 0.20.13
- BMC#8108 - [N900] Volume control does not work
- added dependency on QtOpenGL because we use QMeeGoLivePixmap
- BMC#8267 - There is only Settings icon displayed in drop down menu.
- BMC#9677 - [1.2: daily] No sound volume settings in device.
State: new 2011-03-28T01:29:29 msafr
Comment: None
changes files:
--------------
--- meegotouch-systemui.changes
+++ meegotouch-systemui.changes
@@ -0,0 +1,6 @@
+* Thu Mar 24 2011 Miroslav Safr <miroslav.safr at tieto.com.com> - 0.20.13
+- BMC#8108 - [N900] Volume control does not work
+- added dependency on QtOpenGL because we use QMeeGoLivePixmap
+- BMC#8267 - There is only Settings icon displayed in drop down menu.
+- BMC#9677 - [1.2: daily] No sound volume settings in device.
+
old:
----
meegotouch-systemui-0.20.12.tar.bz2
new:
----
meegotouch-systemui-0.20.13.tar.bz2
spec files:
-----------
--- meegotouch-systemui.spec
+++ meegotouch-systemui.spec
@@ -7,7 +7,7 @@
Name: meegotouch-systemui
Summary: System UI daemon
-Version: 0.20.12
+Version: 0.20.13
Release: 1
Group: System/Desktop
License: LGPLv2.1
@@ -18,6 +18,7 @@
Source100: meegotouch-systemui.yaml
Requires: %{name}-screenlock-padlock
BuildRequires: pkgconfig(QtGui)
+BuildRequires: pkgconfig(QtOpenGL)
BuildRequires: pkgconfig(contextsubscriber-1.0)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dbus-glib-1)
other changes:
--------------
++++++ meegotouch-systemui-0.20.12.tar.bz2 -> meegotouch-systemui-0.20.13.tar.bz2
--- debian/changelog
+++ debian/changelog
@@ -1,3 +1,12 @@
+system-ui (0.20.13-1) unstable; urgency=low
+
+ * Fixes: NB#229338 - Status menu doesn't load Bluetooth plugin
+ * Fixes: NB#231918 - Notification is shown even if no summary or body given.
+ * Fixes: NB#223556 - Impossible to detect cleared notification groups
+ * Fixes: NB#208457 - Pop-up notification for new message is not displayed on device
+
+ -- Jarkko Markkanen <ext-jarkko.3.markkanen at nokia.com> Wed, 09 Mar 2011 09:00:00 +0200
+
system-ui (0.20.12-1) unstable; urgency=low
* Low power mode fixes
--- debian/control
+++ debian/control
@@ -6,7 +6,8 @@
libqmsystem2-dev, libaegis-crypto-dev, libresourceqt-dev,
libcontextsubscriber-dev, libngf-dev, libxcomposite-dev, libxext-dev,
libdbus-1-dev, libdbus-glib-1-dev, libglib2.0-dev,
- aegis-builder (>= 1.4), libduicontrolpanel-dev
+ aegis-builder (>= 1.4), libduicontrolpanel-dev,
+ libqt4-meegographicssystemhelper-dev
Standards-Version: 3.8.0
Package: system-ui
--- src/libnotificationsystem/notificationmanagerinterface.h
+++ src/libnotificationsystem/notificationmanagerinterface.h
@@ -146,6 +146,15 @@
virtual QList<NotificationGroup> notificationGroupListWithIdentifiers(uint notificationUserId) = 0;
/*!
+ * Returns amount of notifications in a given group
+ *
+ * \param notificationUserId the ID of the user of notifications
+ * \param groupId the group ID
+ * \return amount of notifications in given group
+ */
+ virtual uint notificationCountInGroup(uint notificationUserId, uint groupId) = 0;
+
+ /*!
* Returns the qObject that implements the manager for signal connections.
*
* \return the qObject that implements the manager
--- src/systemui/notifications/dbusinterfacenotificationsource.cpp
+++ src/systemui/notifications/dbusinterfacenotificationsource.cpp
@@ -173,3 +173,8 @@
return userGroups;
}
+
+uint DBusInterfaceNotificationSource::notificationCountInGroup(uint notificationUserId, uint groupId)
+{
+ return manager.notificationCountInGroup(notificationUserId, groupId);
+}
--- src/systemui/notifications/dbusinterfacenotificationsource.h
+++ src/systemui/notifications/dbusinterfacenotificationsource.h
@@ -277,6 +277,15 @@
* \return list of notification groups with associated identifiers that belong to notificationUserId
*/
QList<MNotificationGroupWithIdentifierProxy> notificationGroupListWithIdentifiers(uint notificationUserId);
+
+ /*!
+ * Returns amount of notifications in a given group
+ *
+ * \param notificationUserId the ID of the user of notifications
+ * \param groupId the group ID
+ * \return amount of notifications in given group
+ */
+ uint notificationCountInGroup(uint notificationUserId, uint groupId);
};
#endif // DBUSINTERFACENOTIFICATIONSOURCE_H
--- src/systemui/notifications/mcompositornotificationsink.cpp
+++ src/systemui/notifications/mcompositornotificationsink.cpp
@@ -79,7 +79,7 @@
void MCompositorNotificationSink::addNotification(const Notification ¬ification)
{
- if (!canAddNotification(notification)) {
+ if (!canAddNotification(notification) || !containsText(notification)) {
return;
}
--- src/systemui/notifications/notificationareasink.cpp
+++ src/systemui/notifications/notificationareasink.cpp
@@ -179,9 +179,8 @@
if (infoBanner == NULL) {
// Seems like the infoBanner is NULL. So it means that the group banner was removed, but group is alive. Recreate the banner.
infoBanner = createGroupBanner(groupId, notificationGroupParameters.value(groupId));
- } else {
- infoBanner->setBannerTimeStamp(QDateTime::fromTime_t(notification.parameters().value("timestamp").toUInt()));
}
+ infoBanner->setBannerTimeStamp(QDateTime::fromTime_t(notification.parameters().value("timestamp").toUInt()));
if (infoBanner != NULL && infoBanner->parentItem() == NULL) {
// Add the group to the notification area if this is the first notification to the group
--- src/systemui/notifications/notificationmanager.cpp
+++ src/systemui/notifications/notificationmanager.cpp
@@ -622,3 +622,14 @@
{
return this;
}
+
+uint NotificationManager::notificationCountInGroup(uint notificationUserId, uint groupId)
+{
+ uint amount = 0;
+ foreach(const Notification & notification, notificationContainer.values()) {
+ if (notification.groupId() == groupId && notification.userId() == notificationUserId) {
+ amount++;
+ }
+ }
+ return amount;
+}
--- src/systemui/notifications/notificationmanager.h
+++ src/systemui/notifications/notificationmanager.h
@@ -96,6 +96,7 @@
QList<Notification> notificationListWithIdentifiers(uint notificationUserId);
QList<NotificationGroup> notificationGroupList(uint notificationUserId);
QList<NotificationGroup> notificationGroupListWithIdentifiers(uint notificationUserId);
+ uint notificationCountInGroup(uint notificationUserId, uint groupId);
//! \reimp_end
/*!
--- src/systemui/notifications/notificationmanager.xml
+++ src/systemui/notifications/notificationmanager.xml
@@ -152,5 +152,10 @@
<arg name="result" type="a(usssssus)" direction="out"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="QList < MNotificationGroupWithIdentifierProxy > "/>
</method>
+ <method name="notificationCountInGroup">
+ <arg name="notificationUserId" type="u" direction="in"/>
+ <arg name="groupId" type="u" direction="in"/>
+ <arg name="result" type="u" direction="out"/>
+ </method>
</interface>
</node>
--- src/systemui/notifications/widgetnotificationsink.cpp
+++ src/systemui/notifications/widgetnotificationsink.cpp
@@ -81,6 +81,11 @@
return infoBanner;
}
+bool WidgetNotificationSink::containsText(const Notification ¬ification)
+{
+ return !(infoBannerTitleText(notification.parameters()).isEmpty() && infoBannerGenericText(notification.parameters()).isEmpty());
+}
+
void WidgetNotificationSink::updateTitles(MBanner *infoBanner)
{
if (privacySetting != NULL && privacySetting->value().toBool()) {
--- src/systemui/notifications/widgetnotificationsink.h
+++ src/systemui/notifications/widgetnotificationsink.h
@@ -113,6 +113,13 @@
MBanner *createInfoBanner(Notification::NotificationType type, uint groupId, const NotificationParameters ¶meters);
/*!
+ * Check whether the notification contains text.
+ * \param notification The notification object to represent with the MBanner.
+ * \return \c true if the notification contains text, \c false otherwise
+ */
+ bool containsText(const Notification ¬ification);
+
+ /*!
* Updates the titles in a banner based on the current privacy mode.
*
* \param infoBanner the MBanner to update
--- src/systemui/statusarea/statusarearenderer.cpp
+++ src/systemui/statusarea/statusarearenderer.cpp
@@ -30,12 +30,17 @@
#include <QDebug>
#include <QX11Info>
#include "x11wrapper.h"
+#include <QMeeGoLivePixmap>
+#include <QMeeGoGraphicsSystemHelper>
+
+// Update the pixmap 5 times per second at most
+static const int ACCUMULATION_INTERVAL = 200;
StatusAreaRenderer::StatusAreaRenderer(QObject *parent) :
QObject(parent),
scene(new QGraphicsScene),
statusArea(new StatusArea),
- statusAreaPixmap(NULL),
+ statusAreaLivePixmap(NULL),
#ifdef HAVE_QMSYSTEM
displayState(new MeeGo::QmDisplayState()),
#endif
@@ -48,15 +53,17 @@
connect(this, SIGNAL(statusIndicatorMenuVisibilityChanged(bool)), statusArea, SIGNAL(statusIndicatorMenuVisibilityChanged(bool)));
// Get signaled when the scene changes
- connect(scene, SIGNAL(changed(QList<QRectF>)), this, SLOT(sceneChanged(QList<QRectF>)));
+ connect(scene, SIGNAL(changed(QList<QRectF>)), this, SLOT(accumulateSceneChanges(QList<QRectF>)));
#ifdef HAVE_QMSYSTEM
connect(displayState, SIGNAL(displayStateChanged(MeeGo::QmDisplayState::DisplayState)), this, SLOT(setSceneRender(MeeGo::QmDisplayState::DisplayState)));
setSceneRender(displayState->get());
#endif
setSizeFromStyle();
- if(!createSharedPixmapHandle()) {
+ if(!createSharedPixmapHandle() || !createBackPixmap()) {
qWarning() << "Shared Pixmap was not created. Status area will not render";
}
+
+ connect(&accumulationTimer, SIGNAL(timeout()), this, SLOT(renderAccumulatedRegion()));
}
void StatusAreaRenderer::setSizeFromStyle()
@@ -75,11 +82,34 @@
Pixmap pixmap = X11Wrapper::XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(),
statusAreaWidth, 2*statusAreaHeight, QX11Info::appDepth());
- QApplication::syncX();
- statusAreaPixmap = new QPixmap();
- *statusAreaPixmap = QPixmap::fromX11Pixmap(pixmap, QPixmap::ExplicitlyShared);
- if (!statusAreaPixmap->isNull()) {
+ statusAreaPixmap = QPixmap::fromX11Pixmap(pixmap, QPixmap::ExplicitlyShared);
+
+ if (!statusAreaPixmap.isNull()) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool StatusAreaRenderer::createBackPixmap()
+{
+ if (statusAreaLivePixmap) {
+ delete statusAreaLivePixmap;
+ statusAreaLivePixmap = NULL;
+ }
+
+ if (QMeeGoGraphicsSystemHelper::isRunningMeeGo()) {
+ // FIXME: Round up to the nearest multiple of eight until NB#231246 is fixed
+ int livePixmapWidth = (statusAreaWidth / 8 + 1) * 8;
+
+ statusAreaLivePixmap = QMeeGoLivePixmap::livePixmapWithSize(livePixmapWidth, statusAreaHeight*2, QMeeGoLivePixmap::Format_ARGB32_Premultiplied);
+ backPixmap = QPixmap::fromX11Pixmap(statusAreaLivePixmap->handle(), QPixmap::ExplicitlyShared);
+ } else {
+ backPixmap = QPixmap(statusAreaWidth, statusAreaHeight*2);
+ }
+
+ if (!backPixmap.isNull()) {
return true;
} else {
return false;
@@ -88,7 +118,7 @@
uint StatusAreaRenderer::sharedPixmapHandle()
{
- return static_cast<quint32> (statusAreaPixmap->handle());
+ return static_cast<quint32> (statusAreaPixmap.handle());
}
StatusAreaRenderer::~StatusAreaRenderer()
@@ -96,9 +126,12 @@
scene->removeItem(statusArea);
delete statusArea;
- if (statusAreaPixmap != NULL) {
- Pixmap pixmap = statusAreaPixmap->handle();
- delete statusAreaPixmap;
+ if (statusAreaLivePixmap != NULL) {
+ delete statusAreaLivePixmap;
+ }
+
+ if (!statusAreaPixmap.isNull()) {
+ Pixmap pixmap = statusAreaPixmap.handle();
if (pixmap != 0) {
X11Wrapper::XFreePixmap(QX11Info::display(), pixmap);
}
@@ -109,25 +142,63 @@
#endif
}
-void StatusAreaRenderer::sceneChanged(const QList<QRectF> ®ion)
+void StatusAreaRenderer::accumulateSceneChanges(const QList<QRectF> ®ion)
+{
+ foreach(const QRectF & r, region) {
+ accumulatedRegion = accumulatedRegion.united(r);
+ }
+
+ if (renderScene && !accumulationTimer.isActive()) {
+ accumulationTimer.setSingleShot(true);
+ accumulationTimer.start(ACCUMULATION_INTERVAL);
+ }
+}
+
+void StatusAreaRenderer::renderAccumulatedRegion()
{
- if (!region.empty() && !statusAreaPixmap->isNull() && renderScene) {
- QPainter painter(statusAreaPixmap);
- QRectF changeRect(0,0,0,0);
- foreach(const QRectF & r, region) {
- changeRect = changeRect.united(r);
+ if (!accumulatedRegion.isEmpty() && !statusAreaPixmap.isNull() && !backPixmap.isNull()) {
+
+ if (statusAreaLivePixmap && !QMeeGoGraphicsSystemHelper::isRunningMeeGo()) {
+ QMeeGoGraphicsSystemHelper::switchToMeeGo();
}
// Don't draw areas that are outside the pixmap
- if(changeRect.intersects(statusAreaPixmap->rect())) {
- QRectF sourceRect = changeRect.intersected(statusAreaPixmap->rect());
- if (painter.isActive()) {
+ if(accumulatedRegion.intersects(statusAreaPixmap.rect())) {
+ QPainter painter;
+ QRectF sourceRect = accumulatedRegion.intersected(statusAreaPixmap.rect());
+ QImage *image = NULL;
+
+ if (statusAreaLivePixmap) {
+ image = statusAreaLivePixmap->lock();
+
+ // FIXME: This shouldn't be needed after NB#231260 is fixed
+ if (image->isNull()) {
+ createBackPixmap();
+ image = statusAreaLivePixmap->lock();
+ }
+
+ painter.begin(image);
+ } else {
+ painter.begin(&backPixmap);
+ }
+
+ if(painter.isActive()) {
painter.fillRect(sourceRect, QColor(Qt::black));
scene->render(&painter, sourceRect, sourceRect);
- QApplication::syncX();
}
+ painter.end();
+
+ if (statusAreaLivePixmap) {
+ statusAreaLivePixmap->release(image);
+ }
+
+ painter.begin(&statusAreaPixmap);
+ painter.drawPixmap(sourceRect, backPixmap, sourceRect);
+ painter.end();
}
}
+
+ accumulatedRegion = QRectF(0.0f, 0.0f, 0.0f, 0.0f);
}
#ifdef HAVE_QMSYSTEM
--- src/systemui/statusarea/statusarearenderer.h
+++ src/systemui/statusarea/statusarearenderer.h
@@ -21,6 +21,7 @@
#define STATUSAREARENDERER_H_
#include <MNamespace>
+#include <QTimer>
#ifdef HAVE_QMSYSTEM
#include "qmdisplaystate.h"
@@ -28,6 +29,7 @@
class QGraphicsScene;
class StatusArea;
+class QMeeGoLivePixmap;
/*!
* StatusAreaRenderer renders the contents of the scene to a shared pixmap which is then shown by libmeegotouch.
@@ -57,9 +59,14 @@
private slots:
/*!
- * \brief A slot for notifying that the scene has changed and needs to be painted
+ * \brief Combine the given regions into one and start a timer to draw the region
*/
- virtual void sceneChanged(const QList<QRectF> ®ion);
+ virtual void accumulateSceneChanges(const QList<QRectF> ®ion);
+
+ /*!
+ * \brief Render the changed region of the status area
+ */
+ void renderAccumulatedRegion();
#ifdef HAVE_QMSYSTEM
/*!
@@ -83,11 +90,18 @@
StatusArea *statusArea;
//! Shared Pixmap between libmeegotouch and systemui for the status area.
- QPixmap* statusAreaPixmap;
+ QPixmap statusAreaPixmap;
+ //! Back buffer pixmap - the content is first rendered here and then copied to the shared pixmap
+ QPixmap backPixmap;
+ // Used for better performance if MeeGo graphics system is available, wrapped by backPixmap
+ QMeeGoLivePixmap* statusAreaLivePixmap;
//! Creates a shared pixmap for status area
bool createSharedPixmapHandle();
+ //! Creates the back buffer pixmap
+ bool createBackPixmap();
+
//! set the status bar size with information from style
void setSizeFromStyle();
@@ -103,6 +117,11 @@
//! Keep track whether scene should render or not
bool renderScene;
+ //! A single shot timer started when the scene changes
+ QTimer accumulationTimer;
+ //! Changes in the scene are combined to this rect
+ QRectF accumulatedRegion;
+
#ifdef UNIT_TEST
friend class Ut_StatusAreaRenderer;
#endif
--- src/systemui/statusarea/statusareaview.cpp
+++ src/systemui/statusarea/statusareaview.cpp
@@ -178,8 +178,8 @@
layout->addItem(landscapeProfileIndicator);
layout->addItem(landscapeInputMethodIndicator);
layout->addItem(landscapeCallIndicator);
- layout->addItem(landscapeClock);
layout->addItem(landscapeAlarmIndicator);
+ layout->addItem(landscapeClock);
return layout;
}
@@ -204,8 +204,8 @@
layout->addItem(portraitPresenceIndicator);
layout->addItem(portraitProfileIndicator);
layout->addItem(portraitCallIndicator);
- layout->addItem(portraitClock);
layout->addItem(portraitAlarmIndicator);
+ layout->addItem(portraitClock);
return layout;
}
--- src/systemui/statusarea/statusindicator.cpp
+++ src/systemui/statusarea/statusindicator.cpp
@@ -215,6 +215,7 @@
void PhoneNetworkTypeStatusIndicator::setNetworkType()
{
QString postFix = "";
+ QString postFixPacketData = "";
QString dataTechnology = cellularDataTechnology->value().toString(); // gprs egprs umts hspa
QString state = connectionState->value().toString(); // disconnected connecting connected
QString connection = connectionType->value().toString(); // GPRS WLAN
@@ -229,27 +230,34 @@
if (connection == "WLAN") {
postFix = "WLAN";
- } else if (dataTechnology == "gprs") {
- postFix = "2G";
+ }
+ if (dataTechnology == "gprs") {
+ postFixPacketData = "2G";
} else if (dataTechnology == "egprs") {
- postFix = "25G";
+ postFixPacketData = "25G";
} else if (dataTechnology == "umts") {
- postFix = "3G";
+ postFixPacketData = "3G";
} else if (dataTechnology == "hspa") {
- postFix = "35G";
+ postFixPacketData = "35G";
}
- if (state == "connecting") {
- postFix += "Connecting";
- animateIfPossible = true;
- } else if (data) { // TODO: when wlan transfer info available from context fw, add here
+ // if wlan connected and packet data active e.g. when sending mms
+ if (data) {
+ postFix += postFixPacketData;
postFix += "Active";
- animateIfPossible = false;
+ animateIfPossible = (connection == "WLAN");
} else {
- animateIfPossible = false;
+ if (postFix.isEmpty()) {
+ postFix = postFixPacketData;
+ }
+ if (state == "connecting") {
+ postFix += "Connecting";
+ animateIfPossible = true;
+ } else {
+ animateIfPossible = false;
+ }
}
- // TODO: add suspended state here when available from context fw (postFix: Suspended)
- // TODO: when wlan transfer info available swap with wlan and gprs if both active at the same time
+
setStyleNameAndUpdate(metaObject()->className() + postFix);
updateAnimationStatus();
--- src/systemui/statusarea/statusindicatoranimationview.cpp
+++ src/systemui/statusarea/statusindicatoranimationview.cpp
@@ -22,7 +22,6 @@
#include <MTheme>
#include <QGraphicsLinearLayout>
#include <QTimeLine>
-#include <QDebug>
StatusIndicatorAnimationView::StatusIndicatorAnimationView(StatusIndicator *controller) :
MWidgetView(controller),
@@ -172,10 +171,6 @@
if (animationFrame < images.count() && images[animationFrame] == NULL) {
// Load the image if it has not been loaded yet
images[animationFrame] = MTheme::pixmapCopy(imageList.at(animationFrame), style()->useIconSize() ? QSize(0, 0) : style()->preferredSize());
-
- if (!(style()->preferredSize() == style()->minimumSize() && style()->preferredSize() == style()->maximumSize())) {
- qWarning() << "Status indicators don't support cases where preferred size is not equal to minimum and maximum size!";
- }
}
}
--- src/systemui/statusarea/statusindicatorlabelstyle.h
+++ src/systemui/statusarea/statusindicatorlabelstyle.h
@@ -27,6 +27,11 @@
{
Q_OBJECT
M_STYLE(StatusIndicatorLabelStyle)
+
+ //! Text eliding
+ M_STYLE_ATTRIBUTE(bool, textElide, TextElide)
+ //! Word wrapping
+ M_STYLE_ATTRIBUTE(bool, wordWrap, WordWrap)
};
class StatusIndicatorLabelStyleContainer : public MWidgetStyleContainer
--- src/systemui/statusarea/statusindicatorlabelview.cpp
+++ src/systemui/statusarea/statusindicatorlabelview.cpp
@@ -67,4 +67,13 @@
}
}
+void StatusIndicatorLabelView::applyStyle()
+{
+ MWidgetView::applyStyle();
+
+ label->setTextElide(style()->textElide());
+ label->setWordWrap(style()->wordWrap());
+ label->setSizePolicy(QSizePolicy::Preferred, style()->wordWrap() ? QSizePolicy::MinimumExpanding : QSizePolicy::Preferred, QSizePolicy::Label);
+}
+
M_REGISTER_VIEW_NEW(StatusIndicatorLabelView, StatusIndicator)
--- src/systemui/statusarea/statusindicatorlabelview.h
+++ src/systemui/statusarea/statusindicatorlabelview.h
@@ -57,6 +57,7 @@
protected:
//! \reimp
virtual void setupModel();
+ virtual void applyStyle();
//! \reimp_end
private:
--- src/systemui/statusindicatormenu/statusindicatormenudropdownview.cpp
+++ src/systemui/statusindicatormenu/statusindicatormenudropdownview.cpp
@@ -119,9 +119,9 @@
settingsPluginsExtensionArea = new MApplicationExtensionArea("com.meego.core.MStatusIndicatorMenuExtensionInterface/1.0");
connect(settingsPluginsExtensionArea, SIGNAL(extensionInstantiated(MApplicationExtensionInterface*)), controller, SLOT(setStatusIndicatorMenuInterface(MApplicationExtensionInterface*)));
settingsPluginsExtensionArea->setObjectName("StatusIndicatorMenuTopRowExtensionArea");
- settingsPluginsExtensionArea->setInProcessFilter(QRegExp("/statusindicatormenu-(alarms|internetconnection|presence|profile).desktop$"));
+ settingsPluginsExtensionArea->setInProcessFilter(QRegExp("/statusindicatormenu-(volume|alarms|internetconnection|presence|profile).desktop$"));
settingsPluginsExtensionArea->setOutOfProcessFilter(QRegExp("$^"));
- settingsPluginsExtensionArea->setOrder((QStringList() << "statusindicatormenu-alarms.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop" << "statusindicatormenu-profile.desktop"));
+ settingsPluginsExtensionArea->setOrder((QStringList() << "statusindicatormenu-volume.desktop" << "statusindicatormenu-alarms.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop" << "statusindicatormenu-profile.desktop"));
// Create a button for accessing the full settings
//% "Settings"
--- src/systemui/statusindicatormenu/statusindicatormenuverticalview.cpp
+++ src/systemui/statusindicatormenu/statusindicatormenuverticalview.cpp
@@ -38,9 +38,14 @@
connect(extensionArea, SIGNAL(extensionInstantiated(MApplicationExtensionInterface*)), controller, SLOT(setStatusIndicatorMenuInterface(MApplicationExtensionInterface*)));
connect(extensionArea, SIGNAL(extensionInstantiated(MApplicationExtensionInterface*)), this, SLOT(setExtensionLayoutPosition(MApplicationExtensionInterface*)));
extensionArea->setObjectName("StatusIndicatorMenuExtensionArea");
- extensionArea->setInProcessFilter(QRegExp("/statusindicatormenu-(call|transfer|profile|internetconnection|presence).desktop$"));
+ extensionArea->setInProcessFilter(QRegExp("/statusindicatormenu-(profile|call|internetconnection|bluetooth|presence|transfer).desktop$"));
extensionArea->setOutOfProcessFilter(QRegExp("$^"));
- extensionArea->setOrder((QStringList() << "statusindicatormenu-call.desktop" << "statusindicatormenu-transfer.desktop" << "statusindicatormenu-profile.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop"));
+ extensionArea->setOrder((QStringList() << "statusindicatormenu-profile.desktop"
+ << "statusindicatormenu-call.desktop"
+ << "statusindicatormenu-internetconnection.desktop"
+ << "statusindicatormenu-bluetooth.desktop"
+ << "statusindicatormenu-presence.desktop"
+ << "statusindicatormenu-transfer.desktop"));
extensionArea->init();
// Put the extension area to a horizontal layout
--- src/systemui/statusindicatormenu/statusindicatormenuwindow.cpp
+++ src/systemui/statusindicatormenu/statusindicatormenuwindow.cpp
@@ -73,7 +73,13 @@
connect(menuWidget, SIGNAL(showRequested()), this, SLOT(makeVisible()));
connect(menuWidget, SIGNAL(hideRequested()), menuWidget, SLOT(disappear()));
- connect(menuWidget, SIGNAL(disappeared()), this, SLOT(hide()));
+ connect(menuWidget, SIGNAL(disappeared()), this, SLOT(hideWindow()));
+}
+
+void StatusIndicatorMenuWindow::hideWindow()
+{
+ hide();
+ emit visibilityChanged(false);
}
void StatusIndicatorMenuWindow::displayActive()
@@ -84,8 +90,6 @@
void StatusIndicatorMenuWindow::displayInActive()
{
- emit visibilityChanged(false);
-
if (menuWidget && menuWidget->sceneWindowState() != MSceneWindow::Disappeared) {
sceneManager()->disappearSceneWindowNow(menuWidget);
}
@@ -94,7 +98,7 @@
// Note: Dialogs and notifications won't close it anyways,
// as they are not supposed to be full screen and don't completely
// obstruct the status menu window fully.
- hide();
+ hideWindow();
}
void StatusIndicatorMenuWindow::makeVisible()
--- src/systemui/statusindicatormenu/statusindicatormenuwindow.h
+++ src/systemui/statusindicatormenu/statusindicatormenuwindow.h
@@ -74,6 +74,9 @@
private slots:
+ //! Hides window and sends visibilityChanged signal
+ void hideWindow();
+
//! Slot when window becomes top window
void displayActive();
--- src/systemui/systemui.pro
+++ src/systemui/systemui.pro
@@ -13,7 +13,7 @@
CONFIG += meegotouch \
link_pkgconfig
-QT += dbus gui
+QT += dbus gui meegographicssystemhelper
INCLUDEPATH += ../libnotificationsystem
QMAKE_LIBDIR += ../../lib
--- tests/stubs/notificationmanager_stub.h
+++ tests/stubs/notificationmanager_stub.h
@@ -66,6 +66,7 @@
virtual QList<Notification> notifications();
virtual QList<NotificationGroup> groups();
virtual void doRemoveGroup(uint groupId);
+ virtual uint notificationCountInGroup(uint notificationUserId, uint groupId);
};
// 2. IMPLEMENT STUB
@@ -283,6 +284,15 @@
stubMethodEntered("doRemoveGroup");
}
+uint NotificationManagerStub::notificationCountInGroup(uint notificationUserId, uint groupId)
+{
+ QList<ParameterBase*> params;
+ params.append(new Parameter<uint>(notificationUserId));
+ params.append(new Parameter<uint>(groupId));
+ stubMethodEntered("notificationCountInGroup");
+ return stubReturnValue<uint>("notificationCountInGroup");
+}
+
// 3. CREATE A STUB INSTANCE
NotificationManagerStub gDefaultNotificationManagerStub;
NotificationManagerStub* gNotificationManagerStub = &gDefaultNotificationManagerStub;
@@ -430,4 +440,9 @@
gNotificationManagerStub->doRemoveGroup(groupId);
}
+uint NotificationManager::notificationCountInGroup(uint notificationUserId, uint groupId)
+{
+ return gNotificationManagerStub->notificationCountInGroup(notificationUserId, groupId);
+}
+
#endif
--- tests/stubs/statusarearenderer_stub.h
+++ tests/stubs/statusarearenderer_stub.h
@@ -11,7 +11,9 @@
public:
virtual void StatusAreaRendererConstructor(QObject *parent);
virtual void StatusAreaRendererDestructor();
- virtual void sceneChanged(const QList<QRectF> ®ion);
+ virtual void accumulateSceneChanges(const QList<QRectF> ®ion);
+ virtual void renderAccumulatedRegion();
+ virtual bool createBackPixmap();
#ifdef HAVE_QMSYSTEM
virtual void setSceneRender(MeeGo::QmDisplayState::DisplayState state);
#endif
@@ -28,10 +30,10 @@
void StatusAreaRendererStub::StatusAreaRendererDestructor() {
}
-void StatusAreaRendererStub::sceneChanged(const QList<QRectF> ®ion) {
+void StatusAreaRendererStub::accumulateSceneChanges(const QList<QRectF> ®ion) {
QList<ParameterBase*> params;
params.append( new Parameter<const QList<QRectF> & >(region));
- stubMethodEntered("sceneChanged",params);
+ stubMethodEntered("accumulateSceneChanges",params);
}
#ifdef HAVE_QMSYSTEM
@@ -52,10 +54,18 @@
return stubReturnValue<bool>("createSharedPixmapHandle");
}
+bool StatusAreaRendererStub::createBackPixmap() {
+ stubMethodEntered("createBackPixmap");
+ return stubReturnValue<bool>("createBackPixmap");
+}
+
void StatusAreaRendererStub::setSizeFromStyle() {
stubMethodEntered("setSizeFromStyle");
}
+void StatusAreaRendererStub::renderAccumulatedRegion() {
+ stubMethodEntered("renderAccumulatedRegion");
+}
// 3. CREATE A STUB INSTANCE
@@ -72,8 +82,8 @@
gStatusAreaRendererStub->StatusAreaRendererDestructor();
}
-void StatusAreaRenderer::sceneChanged(const QList<QRectF> ®ion) {
- gStatusAreaRendererStub->sceneChanged(region);
+void StatusAreaRenderer::accumulateSceneChanges(const QList<QRectF> ®ion) {
+ gStatusAreaRendererStub->accumulateSceneChanges(region);
}
#ifdef HAVE_QMSYSTEM
@@ -91,9 +101,17 @@
return gStatusAreaRendererStub->createSharedPixmapHandle();
}
+bool StatusAreaRenderer::createBackPixmap() {
+ return gStatusAreaRendererStub->createBackPixmap();
+}
+
void StatusAreaRenderer::setSizeFromStyle() {
gStatusAreaRendererStub->setSizeFromStyle();
}
+void StatusAreaRenderer::renderAccumulatedRegion() {
+ gStatusAreaRendererStub->renderAccumulatedRegion();
+}
+
#endif
--- tests/stubs/statusindicatormenuwindow_stub.h
+++ tests/stubs/statusindicatormenuwindow_stub.h
@@ -21,6 +21,7 @@
virtual void resetMenuWidget();
virtual void mousePressEvent(QMouseEvent*);
virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void hideWindow();
#ifdef HAVE_QMSYSTEM
virtual void setWindowStateAccordingToDeviceLockState(MeeGo::QmLocks::Lock what, MeeGo::QmLocks::State how);
#endif
@@ -79,6 +80,10 @@
}
#endif
+void StatusIndicatorMenuWindowStub::hideWindow() {
+ stubMethodEntered("hideWindow");
+}
+
// 3. CREATE A STUB INSTANCE
StatusIndicatorMenuWindowStub gDefaultStatusIndicatorMenuWindowStub;
StatusIndicatorMenuWindowStub* gStatusIndicatorMenuWindowStub = &gDefaultStatusIndicatorMenuWindowStub;
@@ -127,4 +132,8 @@
}
#endif
+void StatusIndicatorMenuWindow::hideWindow() {
+ gStatusIndicatorMenuWindowStub->hideWindow();
+}
+
#endif
--- tests/tests.pro
+++ tests/tests.pro
@@ -1,6 +1,8 @@
TEMPLATE = subdirs
include(../shared.pri)
+QT += meegographicssystemhelper
+
#
# Please note that there are several ways to temprorarily disable one or more
# tests. Using the new XML generator script it is possible to put a 'disabled'
--- tests/ut_dbusinterfacenotificationsource/ut_dbusinterfacenotificationsource.cpp
+++ tests/ut_dbusinterfacenotificationsource/ut_dbusinterfacenotificationsource.cpp
@@ -108,6 +108,11 @@
return 1;
}
+uint DBusInterfaceNotificationSourceAdaptor::notificationCountInGroup(uint, uint)
+{
+ return 1;
+}
+
QList<uint> DBusInterfaceNotificationSourceAdaptor::notificationIdList(uint notificationUserId)
{
QList<uint> tmp;
@@ -458,4 +463,10 @@
QCOMPARE(params.value(NotificationWidgetParameterFactory::actionKey()), QVariant(""));
}
+void Ut_DBusInterfaceNotificationSource::testNotificationCountInGroup()
+{
+ source->notificationCountInGroup(1, 1);
+ QCOMPARE(gDefaultNotificationManagerStub.stubCallCount("notificationCountInGroup"), 1);
+}
+
QTEST_APPLESS_MAIN(Ut_DBusInterfaceNotificationSource)
--- tests/ut_dbusinterfacenotificationsource/ut_dbusinterfacenotificationsource.h
+++ tests/ut_dbusinterfacenotificationsource/ut_dbusinterfacenotificationsource.h
@@ -70,6 +70,7 @@
void testNotificationGroupListWithIdentifiers();
//Test updating group with empty strings
void testUpdateGroupWithEmptyStrings();
+ void testNotificationCountInGroup();
private:
// Notification manager interface used by the test subject
--- tests/ut_mcompositornotificationsink/ut_mcompositornotificationsink.cpp
+++ tests/ut_mcompositornotificationsink/ut_mcompositornotificationsink.cpp
@@ -167,6 +167,11 @@
return tmp;
}
+uint MockNotificationManager::notificationCountInGroup(uint, uint)
+{
+ return 0;
+}
+
QObject* MockNotificationManager::qObject()
{
return NULL;
--- tests/ut_mcompositornotificationsink/ut_mcompositornotificationsink.h
+++ tests/ut_mcompositornotificationsink/ut_mcompositornotificationsink.h
@@ -62,6 +62,7 @@
QList<Notification> notifications() const;
QList<NotificationGroup> groups() const;
+ uint notificationCountInGroup(uint notificationUserId, uint groupId);
uint nextAvailableNotificationID;
QList<Notification> notificationContainer;
--- tests/ut_notificationareasink/ut_notificationareasink.cpp
+++ tests/ut_notificationareasink/ut_notificationareasink.cpp
@@ -370,7 +370,7 @@
TestNotificationParameters groupParameters(GROUP_SUMMARY, GROUP_BODY, GROUP_ICON, GROUP_ACTION);
emit addGroup(GROUP_ID, groupParameters);
- TestNotificationParameters notificationParameters(NOTIFICATION_SUMMARY, NOTIFICATION_BODY, NOTIFICATION_ICON, NOTIFICATION_ACTION);
+ TestNotificationParameters notificationParameters(NOTIFICATION_SUMMARY, NOTIFICATION_BODY, NOTIFICATION_ICON, NOTIFICATION_ACTION, 12345);
emit addNotification(Notification(NOTIFICATION_ID, GROUP_ID, 2, notificationParameters, Notification::ApplicationEvent, 1000));
emit(removeNotification(NOTIFICATION_ID));
@@ -384,6 +384,8 @@
MBanner *banner = bannerCatcher.banners.at(0);
// The banner should have the notification group's data
QCOMPARE(banner->title(), GROUP_BODY);
+ // The banner should have the timestamp of the previous notification
+ QCOMPARE(timestamps[0].toTime_t(), (uint)12345);
}
void Ut_NotificationAreaSink::testUpdateGroup()
--- tests/ut_notificationmanager/ut_notificationmanager.cpp
+++ tests/ut_notificationmanager/ut_notificationmanager.cpp
@@ -1553,4 +1553,19 @@
QCOMPARE(notifications.at(1).notificationId(), id1);
}
+void Ut_NotificationManager::testNotificationCountInGroup()
+{
+ uint groupId1 = manager->addGroup(0, NotificationParameters());
+ uint groupId2 = manager->addGroup(0, NotificationParameters());
+
+ // Add two notifications to 1st group
+ manager->addNotification(0, NotificationParameters(), groupId1);
+ manager->addNotification(0, NotificationParameters(), groupId1);
+
+ // Add a notification to 2nd group
+ manager->addNotification(0, NotificationParameters(), groupId2);
+
+ QCOMPARE(manager->notificationCountInGroup(0, groupId1), (uint)2);
+}
+
QTEST_MAIN(Ut_NotificationManager)
--- tests/ut_notificationmanager/ut_notificationmanager.h
+++ tests/ut_notificationmanager/ut_notificationmanager.h
@@ -150,6 +150,8 @@
void testNotificationIsUpdatedWhenEventTypeIsUpdated();
+ void testNotificationCountInGroup();
+
};
#endif // UT_NOTIFICATIONMANAGER_H
--- tests/ut_statusarearenderer/ut_statusarearenderer.cpp
+++ tests/ut_statusarearenderer/ut_statusarearenderer.cpp
@@ -20,8 +20,9 @@
#include <MOnDisplayChangeEvent>
#include "statusarearenderer.h"
#include "statusarea_stub.h"
+#include "statusareastyle.h"
+#include <QMeeGoGraphicsSystemHelper>
-QPixmap *statusAreaPixmap = NULL;
bool Ut_StatusAreaRenderer_Scene_Render_Called = false;
bool Ut_StatusAreaRenderer_Scene_SendEvent_Called = false;
QRectF rectReceived(0,0,0,0);
@@ -49,7 +50,11 @@
Q_UNUSED(type);
Q_UNUSED(orientation);
Q_UNUSED(parent);
- return NULL;
+ return new MStyle;
+}
+
+MStyle::MStyle()
+{
}
#ifdef HAVE_QMSYSTEM
@@ -78,7 +83,7 @@
void QGraphicsScene::render(QPainter *painter, const QRectF &target, const QRectF &source, Qt::AspectRatioMode aspectRatioMode)
{
Ut_StatusAreaRenderer_Scene_Render_Called = true;
- rectReceived= source;
+ rectReceived = source;
Q_UNUSED(target);
Q_UNUSED(painter);
Q_UNUSED(aspectRatioMode);
@@ -95,11 +100,118 @@
return true;
}
+QSize gStatusAreaSize(30, 80);
+
+const QSize& MWidgetStyle::preferredSize() const
+{
+ return gStatusAreaSize;
+}
+
+bool gTimerStarted = false;
+bool gTimerEmitTimeoutImmediately = true;
+bool gTimerActive = false;
+int gTimerInterval;
+
+void QTimer::start(int interval)
+{
+ gTimerStarted = true;
+ gTimerInterval = interval;
+
+ if (gTimerEmitTimeoutImmediately) {
+ emit timeout();
+ } else {
+ // QTimer::isActive returns true if id != 0
+ id = 1;
+ }
+}
+
+bool gTimerStopped = false;
+void QTimer::stop()
+{
+ gTimerStopped = true;
+ id = 0;
+}
+
+QLatin1String gGraphicsSystemName("meego");
+
+QString QMeeGoGraphicsSystemHelper::runningGraphicsSystemName()
+{
+ return gGraphicsSystemName;
+}
+
+bool QMeeGoGraphicsSystemHelper::isRunningMeeGo()
+{
+ return (runningGraphicsSystemName() == QLatin1String("meego"));
+}
+
+void QMeeGoGraphicsSystemHelper::switchToMeeGo()
+{
+}
+
+void QMeeGoGraphicsSystemHelper::switchToRaster()
+{
+}
+
+static QImage* gLivePixmapLockedImage = (QImage*)(0xfeedbeef);
+
+bool QImage::isNull() const
+{
+ return false;
+}
+
+QImage* QMeeGoLivePixmap::lock(QMeeGoFenceSync*)
+{
+ return gLivePixmapLockedImage;
+}
+
+void QMeeGoLivePixmap::release(QImage*)
+{
+}
+
+QList<QPaintDevice*> gPainterPaintDevices;
+
+bool QPainter::begin(QPaintDevice *device)
+{
+ gPainterPaintDevices.append(device);
+
+ return true;
+}
+
+bool QPainter::end()
+{
+ return true;
+}
+
+bool QPainter::isActive() const
+{
+ return true;
+}
+
+void QPainter::fillRect(const QRectF &, const QColor &)
+{
+}
+
+const QPixmap* gPainterSourcePixmap;
+
+void QPainter::drawPixmap(const QRectF &, const QPixmap &pixmap, const QRectF &)
+{
+ gPainterSourcePixmap = &pixmap;
+}
+
+
void Ut_StatusAreaRenderer::init()
{
+ gTimerStopped = false;
+ gTimerStarted = false;
+ gTimerEmitTimeoutImmediately = true;
+ gTimerInterval = 0;
+
+ gPainterPaintDevices.clear();
+ gPainterSourcePixmap = NULL;
+
+ gGraphicsSystemName = QLatin1String("meego");
+
statusAreaRenderer = new StatusAreaRenderer();
- statusAreaPixmap = new QPixmap(30,80);
- statusAreaRenderer->statusAreaPixmap = statusAreaPixmap;
}
void Ut_StatusAreaRenderer::cleanup()
@@ -129,10 +241,9 @@
QList<QRectF> rectList;
QRectF rect1(0,0,30,80);
rectList.append(rect1);
- connect(this, SIGNAL(changed(QList<QRectF>)), statusAreaRenderer, SLOT(sceneChanged(QList<QRectF>)));
+ connect(this, SIGNAL(changed(QList<QRectF>)), statusAreaRenderer, SLOT(accumulateSceneChanges(QList<QRectF>)));
emit changed(rectList);
QCOMPARE(Ut_StatusAreaRenderer_Scene_Render_Called, true);
- QCOMPARE(Ut_StatusAreaRenderer_syncX_Called, true);
// Test when rect has no intersection with pixmap
Ut_StatusAreaRenderer_Scene_Render_Called = false;
@@ -142,7 +253,6 @@
rectList.append(rect2);
emit changed(rectList);
QCOMPARE(Ut_StatusAreaRenderer_Scene_Render_Called, false);
- QCOMPARE(Ut_StatusAreaRenderer_syncX_Called, false);
// Test when two rects called then scene render called with complete intersection rect( final rect should be Rect1 U Rect2 Intersectin sharedPixmapRect)
rectList.pop_front();
@@ -152,7 +262,6 @@
rectList.append(rect4);
emit changed(rectList);
QCOMPARE(Ut_StatusAreaRenderer_Scene_Render_Called, true);
- QCOMPARE(Ut_StatusAreaRenderer_syncX_Called, true);
QRectF unitedRect = rect3.united(rect4) ;
QRectF expectedRect = unitedRect.intersected(QRectF(0,0,30,80));
QCOMPARE(rectReceived,expectedRect);
@@ -170,7 +279,7 @@
QList<QRectF>* RenderTestsHelper::setupRenderTests(Ut_StatusAreaRenderer* testClass, StatusAreaRenderer* statusAreaRenderer)
{
setupRect();
- QObject::connect(testClass, SIGNAL(changed(QList<QRectF>)), statusAreaRenderer, SLOT(sceneChanged(QList<QRectF>)));
+ QObject::connect(testClass, SIGNAL(changed(QList<QRectF>)), statusAreaRenderer, SLOT(accumulateSceneChanges(QList<QRectF>)));
#ifdef HAVE_QMSYSTEM
QObject::connect(testClass, SIGNAL(displayStateChanged(MeeGo::QmDisplayState::DisplayState)), statusAreaRenderer, SLOT(setSceneRender(MeeGo::QmDisplayState::DisplayState)));
#endif
@@ -261,8 +370,61 @@
void Ut_StatusAreaRenderer::testSharedPixmapHandle()
{
- uint handle = static_cast<quint32> (statusAreaRenderer->statusAreaPixmap->handle());
+ uint handle = static_cast<quint32> (statusAreaRenderer->statusAreaPixmap.handle());
QCOMPARE(handle, statusAreaRenderer->sharedPixmapHandle());
}
+void Ut_StatusAreaRenderer::testAccumulationTimer()
+{
+ gTimerEmitTimeoutImmediately = false;
+
+ RenderTestsHelper helper;
+ QList<QRectF>* rectList = helper.setupRenderTests(this, statusAreaRenderer);
+
+ gTimerStarted = false;
+ QCOMPARE(statusAreaRenderer->accumulationTimer.isActive(), false);
+
+ emit changed(*rectList);
+ QCOMPARE(gTimerStarted, true);
+ QCOMPARE(statusAreaRenderer->accumulationTimer.isActive(), true);
+
+ gTimerStarted = false;
+ emit changed(*rectList);
+ QCOMPARE(gTimerStarted, false);
+ QCOMPARE(statusAreaRenderer->accumulationTimer.isActive(), true);
+}
+
+void Ut_StatusAreaRenderer::testRenderingWithMeeGo()
+{
+ RenderTestsHelper helper;
+ QList<QRectF>* rectList = helper.setupRenderTests(this, statusAreaRenderer);
+ emit changed(*rectList);
+
+ QCOMPARE(statusAreaRenderer->backPixmap.handle(), statusAreaRenderer->statusAreaLivePixmap->handle());
+ QCOMPARE(statusAreaRenderer->backPixmap.size().height(), gStatusAreaSize.height() * 2);
+
+ QCOMPARE(gPainterPaintDevices.at(0), gLivePixmapLockedImage);
+ QCOMPARE(gPainterPaintDevices.at(1), &statusAreaRenderer->statusAreaPixmap);
+ QCOMPARE(gPainterSourcePixmap, &statusAreaRenderer->backPixmap);
+}
+
+void Ut_StatusAreaRenderer::testRenderingWithoutMeeGo()
+{
+ delete statusAreaRenderer;
+ gGraphicsSystemName = QLatin1String("not_meego");
+ statusAreaRenderer = new StatusAreaRenderer;
+
+ QCOMPARE(statusAreaRenderer->statusAreaLivePixmap, static_cast<QMeeGoLivePixmap*>(0) );
+ QCOMPARE(statusAreaRenderer->backPixmap.size().width(), gStatusAreaSize.width());
+ QCOMPARE(statusAreaRenderer->backPixmap.size().height(), gStatusAreaSize.height() * 2);
+
+ RenderTestsHelper helper;
+ QList<QRectF>* rectList = helper.setupRenderTests(this, statusAreaRenderer);
+ emit changed(*rectList);
+
+ QCOMPARE(gPainterPaintDevices.at(0), &statusAreaRenderer->backPixmap);
+ QCOMPARE(gPainterPaintDevices.at(1), &statusAreaRenderer->statusAreaPixmap);
+ QCOMPARE(gPainterSourcePixmap, &statusAreaRenderer->backPixmap);
+}
+
QTEST_MAIN(Ut_StatusAreaRenderer)
--- tests/ut_statusarearenderer/ut_statusarearenderer.h
+++ tests/ut_statusarearenderer/ut_statusarearenderer.h
@@ -54,6 +54,12 @@
void testSceneChanged();
// Test shared pixmap handle
void testSharedPixmapHandle();
+
+ void testAccumulationTimer();
+
+ void testRenderingWithMeeGo();
+ void testRenderingWithoutMeeGo();
+
#ifdef HAVE_QMSYSTEM
// Test rendering happens when display state is on
void testSceneRenderControlDisplayStateOn();
--- tests/ut_statusarearenderer/ut_statusarearenderer.pro
+++ tests/ut_statusarearenderer/ut_statusarearenderer.pro
@@ -5,6 +5,8 @@
PKGCONFIG += xcomposite
PKGCONFIG += glib-2.0
+QT += meegographicssystemhelper
+
# unit test and unit classes
SOURCES += \
ut_statusarearenderer.cpp \
--- tests/ut_statusindicator/ut_statusindicator.cpp
+++ tests/ut_statusindicator/ut_statusindicator.cpp
@@ -268,7 +268,10 @@
QTest::newRow("gprs connection type and 35g tech active") << true << QString("hspa") << QString("GPRS") << QString("connected") << QString("35GActive");
QTest::newRow("wlan connection type and wlan tech not active") << false << QString("") << QString("WLAN") << QString("connected") << QString("WLAN");
QTest::newRow("wlan connection type and wlan tech connecting") << false << QString("") << QString("WLAN") << QString("connecting") << QString("WLANConnecting");
-// QTest::newRow("wlan connection type and wlan tech active") << true << QString("") << QStringU("WLAN") << QString("connected") << QStringU("WLANActive"); //wlan activity not supported yet
+ QTest::newRow("wlan connected and 2g packet data active") << true << QString("gprs") << QString("WLAN") << QString("connected") << QString("WLAN2GActive");
+ QTest::newRow("wlan connected and 25g packet data active") << true << QString("egprs") << QString("WLAN") << QString("connected") << QString("WLAN25GActive");
+ QTest::newRow("wlan connected and 3g packet data active") << true << QString("umts") << QString("WLAN") << QString("connected") << QString("WLAN3GActive");
+ QTest::newRow("wlan connected and 35g packet data active") << true << QString("hspa") << QString("WLAN") << QString("connected") << QString("WLAN35GActive");
}
--- tests/ut_statusindicatormenudropdownview/ut_statusindicatormenudropdownview.cpp
+++ tests/ut_statusindicatormenudropdownview/ut_statusindicatormenudropdownview.cpp
@@ -369,10 +369,10 @@
void Ut_StatusIndicatorMenuDropDownView::testTopRowInitialization()
{
foreach (const MApplicationExtensionAreaProperties &props, gMApplicationExtensionAreaProperties) {
- if (props.mInProcessFilter == QRegExp("/statusindicatormenu-(alarms|internetconnection|presence|profile).desktop$")) {
+ if (props.mInProcessFilter == QRegExp("/statusindicatormenu-(volume|alarms|internetconnection|presence|profile).desktop$")) {
QCOMPARE(props.mInterface, QString("com.meego.core.MStatusIndicatorMenuExtensionInterface/1.0"));
QCOMPARE(props.mOutOfProcessFilter, QRegExp("$^"));
- QCOMPARE(props.mOrder, ((QStringList() << "statusindicatormenu-alarms.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop" << "statusindicatormenu-profile.desktop")));
+ QCOMPARE(props.mOrder, ((QStringList() << "statusindicatormenu-volume.desktop" << "statusindicatormenu-alarms.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop" << "statusindicatormenu-profile.desktop")));
return;
}
}
--- tests/ut_statusindicatormenuverticalview/ut_statusindicatormenuverticalview.cpp
+++ tests/ut_statusindicatormenuverticalview/ut_statusindicatormenuverticalview.cpp
@@ -196,9 +196,15 @@
void Ut_StatusIndicatorMenuVerticalView::testExtensionAreaInitialization()
{
QCOMPARE(mApplicationExtensionAreaInterface, QString("com.meego.core.MStatusIndicatorMenuExtensionInterface/1.0"));
- QCOMPARE(mApplicationExtensionAreaInProcessFilterDuringInit, QRegExp("/statusindicatormenu-(call|transfer|profile|internetconnection|presence).desktop$"));
+ QCOMPARE(mApplicationExtensionAreaInProcessFilterDuringInit,
+ QRegExp("/statusindicatormenu-(profile|call|internetconnection|bluetooth|presence|transfer).desktop$"));
QCOMPARE(mApplicationExtensionAreaOutOfProcessFilterDuringInit, QRegExp("$^"));
- QCOMPARE(mApplicationExtensionAreaOrderDuringInit, ((QStringList() << "statusindicatormenu-call.desktop" << "statusindicatormenu-transfer.desktop" << "statusindicatormenu-profile.desktop" << "statusindicatormenu-internetconnection.desktop" << "statusindicatormenu-presence.desktop")));
+ QCOMPARE(mApplicationExtensionAreaOrderDuringInit, (QStringList() << "statusindicatormenu-profile.desktop"
+ << "statusindicatormenu-call.desktop"
+ << "statusindicatormenu-internetconnection.desktop"
+ << "statusindicatormenu-bluetooth.desktop"
+ << "statusindicatormenu-presence.desktop"
+ << "statusindicatormenu-transfer.desktop"));
}
void Ut_StatusIndicatorMenuVerticalView::testLayoutPositions()
--- tests/ut_statusindicatormenuwindow/ut_statusindicatormenuwindow.cpp
+++ tests/ut_statusindicatormenuwindow/ut_statusindicatormenuwindow.cpp
@@ -130,7 +130,7 @@
QVERIFY(disconnect(statusIndicatorMenuWindow->menuWidget, SIGNAL(showRequested()), statusIndicatorMenuWindow, SLOT(makeVisible())));
QVERIFY(disconnect(statusIndicatorMenuWindow->menuWidget, SIGNAL(hideRequested()), statusIndicatorMenuWindow->menuWidget, SLOT(disappear())));
- QVERIFY(disconnect(statusIndicatorMenuWindow->menuWidget, SIGNAL(disappeared()), statusIndicatorMenuWindow, SLOT(hide())));
+ QVERIFY(disconnect(statusIndicatorMenuWindow->menuWidget, SIGNAL(disappeared()), statusIndicatorMenuWindow, SLOT(hideWindow())));
}
void Ut_StatusIndicatorMenuWindow::testMakeVisible_data()
@@ -254,6 +254,17 @@
QCOMPARE(statusIndicatorMenuWindow->menuWidget->sceneWindowState(), MSceneWindow::Disappeared);
}
+void Ut_StatusIndicatorMenuWindow::testWhenStatusIndicatorMenuIsDisappearedThenWindowIsHidden()
+{
+ QSignalSpy spy(statusIndicatorMenuWindow, SIGNAL(visibilityChanged(bool)));
+ QVERIFY(disconnect(statusIndicatorMenuWindow->menuWidget, SIGNAL(disappeared()), statusIndicatorMenuWindow, SLOT(hideWindow())));
+ statusIndicatorMenuWindow->hideWindow();
+
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toBool(), false);
+ QCOMPARE(statusIndicatorMenuWindow->isVisible(), false);
+}
+
#ifdef HAVE_QMSYSTEM
void Ut_StatusIndicatorMenuWindow::testQmLocksSignalConnectionWhenDeviceLocked()
{
--- tests/ut_statusindicatormenuwindow/ut_statusindicatormenuwindow.h
+++ tests/ut_statusindicatormenuwindow/ut_statusindicatormenuwindow.h
@@ -58,6 +58,7 @@
void testStatusIndicatorMenuAppearsAfterEnteringDisplay();
void testStatusIndicatorMenuIsClosedWhenStatusBarIsTapped();
void testWhenWindowAlreadyOnDisplayThenMenuWidgetAppearsWithoutDisplayEnterSignal();
+ void testWhenStatusIndicatorMenuIsDisappearedThenWindowIsHidden();
#ifdef HAVE_QMSYSTEM
void testQmLocksSignalConnectionWhenDeviceLocked();
--- tests/ut_widgetnotificationsink/ut_widgetnotificationsink.cpp
+++ tests/ut_widgetnotificationsink/ut_widgetnotificationsink.cpp
@@ -571,4 +571,14 @@
QCOMPARE(ret, false);
}
+void Ut_WidgetNotificationSink::testNotificationShownOnlyIfItContainsText()
+{
+ TestNotificationParameters parameters("", "", "");
+ bool ret1( m_subject->containsText(Notification(3, 1, 0, parameters, Notification::ApplicationEvent, 1020)) );
+ QCOMPARE(false, ret1);
+ TestNotificationParameters parameters2("title", "subtitle", "buttonicon1");
+ bool ret2( m_subject->containsText(Notification(3, 1, 0, parameters2, Notification::ApplicationEvent, 1020)) );
+ QCOMPARE(true, ret2);
+}
+
QTEST_APPLESS_MAIN(Ut_WidgetNotificationSink)
--- tests/ut_widgetnotificationsink/ut_widgetnotificationsink.h
+++ tests/ut_widgetnotificationsink/ut_widgetnotificationsink.h
@@ -71,6 +71,7 @@
void testPrivacySettingValueEmittedWhenHonoringChanges();
void testPrivacySettingValueEmittedWhenPrivacySettingChanges();
void testWhenNotificationsCreatedAreNotClickableWhenClickingThemDoesNotWork();
+ void testNotificationShownOnlyIfItContainsText();
private:
// Helper for the "test clicking when not user removable" cases
--- themes/style/statusarea.css
+++ themes/style/statusarea.css
@@ -56,8 +56,8 @@
MLabelStyle#StatusAreaLandscapeClockLabel {
font: $FONT_SMALL;
color: #FFFFFF;
- margin-left: 0;
- margin-right: 0;
+ margin-left: 0.3mm;
+ margin-right: 0.1mm;
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
@@ -71,8 +71,8 @@
MLabelStyle#StatusAreaPortraitClockLabel {
font: $FONT_SMALL;
color: #FFFFFF;
- margin-left: 0;
- margin-right: 0;
+ margin-left: 0.3mm;
+ margin-right: 0.1mm;
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
@@ -104,7 +104,7 @@
maximum-size: 0 1.8mm;
/* The number of milliseconds in which the images in imageList are animated */
animation-duration: 3000;
- use-icon-size: false;
+ use-icon-size: true;
}
StatusIndicatorAnimationStyle:icon {
@@ -136,6 +136,8 @@
preferred-size: -1 3.6mm;
minimum-size: 0 3.6mm;
maximum-size: -1 3.6mm;
+ text-elide: true;
+ word-wrap: false;
}
MLabelStyle#StatusIndicatorLabel {
@@ -184,173 +186,145 @@
padding-bottom: 0;
preferred-size: -1 3.6mm;
minimum-size: 0 3.6mm;
- maximum-size: 17.0mm 3.6mm;
+ maximum-size: 30.0mm 3.6mm;
}
StatusIndicatorIconStyle#PhoneNetworkSignalStrengthStatusIndicator {
/* The list of IDs of the images to be shown in the status indicator when signal strength is available, separated by spaces */
image-list: "icon-s-status-network0 icon-s-status-network1 icon-s-status-network2 icon-s-status-network3 icon-s-status-network4 icon-s-status-network5";
- preferred-size: 1.4mm 1.8mm;
- minimum-size: 1.4mm 1.8mm;
- maximum-size: 1.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkSignalStrengthStatusIndicatorNoSIM {
image-list: "icon-s-status-no-simcard";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkSignalStrengthStatusIndicatorNoNetwork {
image-list: "icon-s-status-no-gsm-connection";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkSignalStrengthStatusIndicatorOffline {
image-list: "icon-s-status-offline";
- preferred-size: 2.1mm 1.8mm;
- minimum-size: 2.1mm 1.8mm;
- maximum-size: 2.1mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator2G {
image-list: "icon-s-status-gsm";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator25G {
image-list: "icon-s-status-25g";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator3G {
image-list: "icon-s-status-3g";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator35G {
image-list: "icon-s-status-35g";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator2GActive {
image-list: "icon-s-status-gsm-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator25GActive {
image-list: "icon-s-status-25g-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator3GActive {
image-list: "icon-s-status-3g-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator35GActive {
image-list: "icon-s-status-35g-active";
- preferred-size: 1.8mm 1.8mm;
- minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
-}
-
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator2GSuspended {
- image-list: "icon-s-status-gsm-suspended";
- preferred-size: 1.8mm 1.8mm;
- minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
-}
-
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator25GSuspended {
- image-list: "icon-s-status-25g-suspended";
- preferred-size: 1.8mm 1.8mm;
- minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
-}
-
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator3GSuspended {
- image-list: "icon-s-status-3g-suspended";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
-}
-
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator35GSuspended {
- image-list: "icon-s-status-35g-suspended";
- preferred-size: 1.8mm 1.8mm;
- minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator2GConnecting {
image-list: "icon-s-status-gsm icon-s-status-gsm-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator25GConnecting {
image-list: "icon-s-status-25g icon-s-status-25g-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator3GConnecting {
image-list: "icon-s-status-3g icon-s-status-3g-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator35GConnecting {
image-list: "icon-s-status-35g icon-s-status-35g-active";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator2GWLAN {
- image-list: "icon-s-status-gsm icon-s-status-wlan-active";
- preferred-size: 1.8mm 1.8mm;
+StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLAN2GActive {
+ image-list: "icon-s-status-gsm-active icon-s-status-wlan";
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator25GWLAN {
- image-list: "icon-s-status-25g icon-s-status-wlan-active";
- preferred-size: 1.8mm 1.8mm;
+StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLAN25GActive {
+ image-list: "icon-s-status-25g-active icon-s-status-wlan";
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator3GWLAN {
- image-list: "icon-s-status-3g icon-s-status-wlan-active";
- preferred-size: 1.8mm 1.8mm;
+StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLAN3GActive {
+ image-list: "icon-s-status-3g-active icon-s-status-wlan";
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
-StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicator35GWLAN {
- image-list: "icon-s-status-35g icon-s-status-wlan-active";
+StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLAN35GActive {
+ image-list: "icon-s-status-35g-active icon-s-status-wlan";
preferred-size: 1.8mm 1.8mm;
minimum-size: 1.8mm 1.8mm;
maximum-size: 1.8mm 1.8mm;
@@ -359,58 +333,58 @@
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLAN {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-wlan";
- preferred-size: 2.4mm 1.8mm;
- minimum-size: 2.4mm 1.8mm;
- maximum-size: 2.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLANActive {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-wlan-active";
- preferred-size: 2.4mm 1.8mm;
- minimum-size: 2.4mm 1.8mm;
- maximum-size: 2.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PhoneNetworkTypeStatusIndicatorWLANConnecting {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-wlan icon-s-status-wlan-active";
- preferred-size: 2.4mm 1.8mm;
- minimum-size: 2.4mm 1.8mm;
- maximum-size: 2.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#BatteryStatusIndicatorLevel {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-battery-verylow icon-s-status-battery-low icon-s-status-battery1 icon-s-status-battery2 icon-s-status-battery3 icon-s-status-battery4 icon-s-status-battery5 icon-s-status-battery6 icon-s-status-battery7 icon-s-status-battery8";
- preferred-size: 2.9mm 1.8mm;
- minimum-size: 2.9mm 1.8mm;
- maximum-size: 2.9mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#BatteryStatusIndicatorCharging {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-battery-verylow icon-s-status-battery-low icon-s-status-battery1 icon-s-status-battery2 icon-s-status-battery3 icon-s-status-battery4 icon-s-status-battery5 icon-s-status-battery6 icon-s-status-battery7 icon-s-status-battery8";
- preferred-size: 2.9mm 1.8mm;
- minimum-size: 2.9mm 1.8mm;
- maximum-size: 2.9mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
animation-duration: 10000;
}
StatusIndicatorIconStyle#BatteryStatusIndicatorPowerSave {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-powersave-verylow icon-s-status-powersave-low icon-s-status-powersave1 icon-s-status-powersave2 icon-s-status-powersave3 icon-s-status-powersave4 icon-s-status-powersave5 icon-s-status-powersave6 icon-s-status-powersave7 icon-s-status-powersave8";
- preferred-size: 2.9mm 1.8mm;
- minimum-size: 2.9mm 1.8mm;
- maximum-size: 2.9mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#BatteryStatusIndicatorPowerSaveCharging {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-powersave-verylow icon-s-status-powersave-low icon-s-status-powersave1 icon-s-status-powersave2 icon-s-status-powersave3 icon-s-status-powersave4 icon-s-status-powersave5 icon-s-status-powersave6 icon-s-status-powersave7 icon-s-status-powersave8";
- preferred-size: 2.9mm 1.8mm;
- minimum-size: 2.9mm 1.8mm;
- maximum-size: 2.9mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
animation-duration: 10000;
}
@@ -425,9 +399,9 @@
StatusIndicatorIconStyle#AlarmStatusIndicatorSet {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-alarm";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
padding-top: 0.1mm;
padding-bottom: 0.1mm;
margin-top: 0;
@@ -445,17 +419,17 @@
StatusIndicatorIconStyle#BluetoothStatusIndicatorOn {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-bluetooth";
- preferred-size: 1.4mm 1.8mm;
- minimum-size: 1.4mm 1.8mm;
- maximum-size: 1.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#BluetoothStatusIndicatorActive {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-bluetooth-active";
- preferred-size: 1.4mm 1.8mm;
- minimum-size: 1.4mm 1.8mm;
- maximum-size: 1.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#CallStatusIndicator {
@@ -469,17 +443,17 @@
StatusIndicatorIconStyle#CallStatusIndicatorRinging {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-call-initiating1 icon-s-status-call-initiating2";
- preferred-size: 2.4mm 1.8mm;
- minimum-size: 2.4mm 1.8mm;
- maximum-size: 2.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#CallStatusIndicatorOngoing {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-cellular icon-s-status-ongoing-muted";
- preferred-size: 2.4mm 1.8mm;
- minimum-size: 2.4mm 1.8mm;
- maximum-size: 2.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#ProfileStatusIndicator {
@@ -493,9 +467,9 @@
StatusIndicatorIconStyle#ProfileStatusIndicatorSilent {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-silent";
- preferred-size: 1.4mm 1.8mm;
- minimum-size: 1.4mm 1.8mm;
- maximum-size: 1.4mm 1.8mm;
+ preferred-size: -1 1.8mm;
+ minimum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
/* "Offline" presence, no indicator */
@@ -509,23 +483,23 @@
StatusIndicatorIconStyle#PresenceStatusIndicatorAvailable {
image-list: "icon-s-status-presence-online";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PresenceStatusIndicatorBusy {
image-list: "icon-s-status-presence-busy";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#PresenceStatusIndicatorAway {
image-list: "icon-s-status-presence-away";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#GPSStatusIndicator {
@@ -539,24 +513,24 @@
StatusIndicatorIconStyle#GPSStatusIndicatorOn {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-gps-on";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#GPSStatusIndicatorSearch {
/* The list of IDs of the images to be shown in the status indicator separated by spaces */
image-list: "icon-s-status-gps-searching icon-s-status-gps-on";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#NotificationStatusIndicatorOn {
image-list: "icon-s-status-notifier";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#NotificationStatusIndicator {
@@ -575,23 +549,23 @@
StatusIndicatorIconStyle#TransferStatusIndicatorLive {
image-list: "icon-s-status-transfer-content";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#TransferStatusIndicatorFail {
image-list: "icon-s-status-transfer-error";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#TransferStatusIndicatorPending {
image-list: "icon-s-status-transfer-pending";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
StatusIndicatorIconStyle#CallForwardingStatusIndicator {
@@ -603,8 +577,8 @@
StatusIndicatorIconStyle#CallForwardingStatusIndicatorSet {
image-list: "icon-s-status-call-diverted";
- preferred-size: 1.8mm 1.8mm;
+ preferred-size: -1 1.8mm;
minimum-size: 1.8mm 1.8mm;
- maximum-size: 1.8mm 1.8mm;
+ maximum-size: 5.0mm 1.8mm;
}
++++++ meegotouch-systemui.yaml
--- meegotouch-systemui.yaml
+++ meegotouch-systemui.yaml
@@ -1,6 +1,6 @@
Name: meegotouch-systemui
Summary: System UI daemon
-Version: 0.20.12
+Version: 0.20.13
Release: 1
Group: System/Desktop
License: LGPLv2.1
@@ -16,6 +16,7 @@
- expat-devel
PkgConfigBR:
- QtGui
+ - QtOpenGL
- contextsubscriber-1.0
- dbus-1
- dbus-glib-1
More information about the MeeGo-commits
mailing list