From 19f05aab0c1e1d51280d92f71c515e68847c04bf Mon Sep 17 00:00:00 2001 From: Siraj Razick Date: Tue, 13 Mar 2007 02:51:40 +0000 Subject: [PATCH] button release event for PushButon svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=642014 --- widgets/pushbutton.cpp | 12 ++++++++++++ widgets/pushbutton.h | 1 + 2 files changed, 13 insertions(+) diff --git a/widgets/pushbutton.cpp b/widgets/pushbutton.cpp index 459c24e1b..cedb3d97e 100644 --- a/widgets/pushbutton.cpp +++ b/widgets/pushbutton.cpp @@ -92,8 +92,11 @@ void PushButton::paint(QPainter *painter, const QStyleOptionGraphicsItem *option QStyleOptionButton options; options.initFrom(widget); options.state = option->state; + options.state |= isDown() ? QStyle::State_Sunken : QStyle::State_Raised; + options.rect = boundingRect().toRect(); options.text = text(); + if (d->hasIcon){ options.icon= d->icon; options.iconSize = d->iconSize; @@ -197,9 +200,18 @@ void PushButton::mousePressEvent ( QGraphicsSceneMouseEvent * event ) event->accept(); d->state = PushButton::PRESSED; update(); + // emit clicked(); +} + +void PushButton::mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) +{ + event->accept(); + d->state = PushButton::RELEASED; + update(); emit clicked(); } + QSize PushButton::sizeHint() const { return QSize(d->width,d->height); diff --git a/widgets/pushbutton.h b/widgets/pushbutton.h index 2d690e033..6ae64978f 100644 --- a/widgets/pushbutton.h +++ b/widgets/pushbutton.h @@ -71,6 +71,7 @@ class KDE_EXPORT PushButton : public DataVisualization,public QGraphicsItem, pub protected: bool isDown(); void mousePressEvent ( QGraphicsSceneMouseEvent * event ); + void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ); private: class Private ; Private * const d;