paint correctly not autoraise buttons (default behaviour is autoraise)
and expose setautoraise in the api svn path=/trunk/KDE/kdelibs/; revision=882816
This commit is contained in:
parent
bf6ef3f41d
commit
ec70aa7179
@ -145,6 +145,7 @@ ToolButton::ToolButton(QGraphicsWidget *parent)
|
|||||||
connect(native, SIGNAL(clicked()), this, SIGNAL(clicked()));
|
connect(native, SIGNAL(clicked()), this, SIGNAL(clicked()));
|
||||||
setWidget(native);
|
setWidget(native);
|
||||||
native->setAttribute(Qt::WA_NoSystemBackground);
|
native->setAttribute(Qt::WA_NoSystemBackground);
|
||||||
|
native->setAutoRaise(true);
|
||||||
|
|
||||||
d->background = new FrameSvg(this);
|
d->background = new FrameSvg(this);
|
||||||
d->background->setImagePath("widgets/button");
|
d->background->setImagePath("widgets/button");
|
||||||
@ -160,6 +161,16 @@ ToolButton::~ToolButton()
|
|||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ToolButton::setAutoRaise(bool raise)
|
||||||
|
{
|
||||||
|
nativeWidget()->setAutoRaise(raise);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ToolButton::autoRaise() const
|
||||||
|
{
|
||||||
|
return nativeWidget()->autoRaise();
|
||||||
|
}
|
||||||
|
|
||||||
void ToolButton::setText(const QString &text)
|
void ToolButton::setText(const QString &text)
|
||||||
{
|
{
|
||||||
static_cast<QToolButton*>(widget())->setText(text);
|
static_cast<QToolButton*>(widget())->setText(text);
|
||||||
@ -260,7 +271,7 @@ void ToolButton::paint(QPainter *painter,
|
|||||||
buttonOpt.toolButtonStyle = button->toolButtonStyle();
|
buttonOpt.toolButtonStyle = button->toolButtonStyle();
|
||||||
|
|
||||||
|
|
||||||
if (d->animId || (buttonOpt.state & QStyle::State_MouseOver) || (buttonOpt.state & QStyle::State_On)) {
|
if (d->animId || !button->autoRaise() || (buttonOpt.state & QStyle::State_MouseOver) || (buttonOpt.state & QStyle::State_On)) {
|
||||||
if (button->isDown() || (buttonOpt.state & QStyle::State_On)) {
|
if (button->isDown() || (buttonOpt.state & QStyle::State_On)) {
|
||||||
d->background->setElementPrefix("toolbutton-pressed");
|
d->background->setElementPrefix("toolbutton-pressed");
|
||||||
} else {
|
} else {
|
||||||
@ -295,7 +306,7 @@ void ToolButton::paint(QPainter *painter,
|
|||||||
|
|
||||||
void ToolButton::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
void ToolButton::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
{
|
{
|
||||||
if (nativeWidget()->isDown()) {
|
if (nativeWidget()->isDown() || !nativeWidget()->autoRaise()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +326,7 @@ void ToolButton::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
|||||||
|
|
||||||
void ToolButton::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
void ToolButton::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
||||||
{
|
{
|
||||||
if (nativeWidget()->isDown()) {
|
if (nativeWidget()->isDown() || !nativeWidget()->autoRaise()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ class PLASMA_EXPORT ToolButton : public QGraphicsProxyWidget
|
|||||||
|
|
||||||
Q_PROPERTY(QGraphicsWidget *parentWidget READ parentWidget)
|
Q_PROPERTY(QGraphicsWidget *parentWidget READ parentWidget)
|
||||||
Q_PROPERTY(QString text READ text WRITE setText)
|
Q_PROPERTY(QString text READ text WRITE setText)
|
||||||
|
Q_PROPERTY(bool autoRaise READ autoRaise WRITE setAutoRaise)
|
||||||
Q_PROPERTY(QString image READ image WRITE setImage)
|
Q_PROPERTY(QString image READ image WRITE setImage)
|
||||||
Q_PROPERTY(QString stylesheet READ styleSheet WRITE setStyleSheet)
|
Q_PROPERTY(QString stylesheet READ styleSheet WRITE setStyleSheet)
|
||||||
Q_PROPERTY(QToolButton *nativeWidget READ nativeWidget)
|
Q_PROPERTY(QToolButton *nativeWidget READ nativeWidget)
|
||||||
@ -50,6 +51,18 @@ public:
|
|||||||
explicit ToolButton(QGraphicsWidget *parent = 0);
|
explicit ToolButton(QGraphicsWidget *parent = 0);
|
||||||
~ToolButton();
|
~ToolButton();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if the toolbutton has an autoraise behaviour
|
||||||
|
*
|
||||||
|
* @arg raise
|
||||||
|
*/
|
||||||
|
void setAutoRaise(bool raise);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if the toolbutton has an autoraise behaviour
|
||||||
|
*/
|
||||||
|
bool autoRaise() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the display text for this ToolButton
|
* Sets the display text for this ToolButton
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user