aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Yanes <ext-adrian.yanes@nokia.com>2011-01-05 10:17:42 +0100
committerAdrian Yanes <ext-adrian.yanes@nokia.com>2011-01-05 11:40:51 +0100
commit372708ffb24d1d654fc4b177d16413956398b7a0 (patch)
tree8ae89d3a76f1b0da5eb833555bec3215d0b2a381
parent0802bdbed97bebc945aec794d45a93324e93ecac (diff)
Fixes: NB#212976 - [TASK] Full event banner is missing pressed-down state
Fixes: NB#212959 - [TASK] Short event banner is missing pressed-down state RevBy: Stanislav Ionascu Details: now the pressed style gets applied in MBanner.
-rw-r--r--src/views/mbannerview.cpp39
-rw-r--r--src/views/mbannerview_p.h2
2 files changed, 36 insertions, 5 deletions
diff --git a/src/views/mbannerview.cpp b/src/views/mbannerview.cpp
index 14286e6b..d59057c2 100644
--- a/src/views/mbannerview.cpp
+++ b/src/views/mbannerview.cpp
@@ -44,6 +44,7 @@ MBannerViewPrivate::MBannerViewPrivate() :
bannerTimeStampLabel(NULL),
prefixTimeStampLabel(NULL),
bannerTimeStampData(NULL),
+ down(false),
controller(0)
{
}
@@ -142,6 +143,20 @@ void MBannerViewPrivate::setPrefixTimeStamp(const QString &string)
prefixTimeStamp()->setText(string);
}
+void MBannerViewPrivate::refreshStyleMode()
+{
+ Q_Q(MBannerView);
+
+ if (down) {
+ q->style().setModePressed();
+ } else {
+ q->style().setModeDefault();
+ }
+
+ q->applyStyle();
+ q->update();
+}
+
void MBannerViewPrivate::updateDateFormat() const
{
Q_Q(const MBannerView);
@@ -460,18 +475,32 @@ MBannerView::~MBannerView()
void MBannerView::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
+
+ Q_D(MBannerView);
+
+ if (d->down)
+ return;
+
+ d->down = true;
+ d->refreshStyleMode();
}
void MBannerView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
Q_D(MBannerView);
- QPointF touch = event->scenePos();
- QRectF rect = d->controller->sceneBoundingRect();
+ if (!d->down)
+ return;
- if (rect.contains(touch)) {
- d->controller->click();
- }
+ d->down = false;
+ d->refreshStyleMode();
+
+ QPointF touch = event->scenePos();
+ QRectF rect = d->controller->sceneBoundingRect();
+
+ if (rect.contains(touch)) {
+ d->controller->click();
+ }
}
void MBannerView::setupModel()
diff --git a/src/views/mbannerview_p.h b/src/views/mbannerview_p.h
index 0b567a47..a35baf1d 100644
--- a/src/views/mbannerview_p.h
+++ b/src/views/mbannerview_p.h
@@ -58,6 +58,7 @@ public:
void setBannerTimeStamp(const QDateTime& date);
void setPrefixTimeStamp(const QString& string);
void updateDateFormat() const;
+ void refreshStyleMode();
protected:
MLayout * layout;
@@ -82,6 +83,7 @@ protected:
MLabel *bannerTimeStampLabel;
MLabel *prefixTimeStampLabel;
QDateTime *bannerTimeStampData;
+ bool down;
MBanner *controller;
};