From b9419d74bb5245074a254b0a35111d38af414837 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Fri, 4 Jul 2008 16:47:01 +0000 Subject: [PATCH] don't fade out when we're toggled until we closed svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=828087 --- paneltoolbox.cpp | 17 +++++++++++++++-- paneltoolbox_p.h | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/paneltoolbox.cpp b/paneltoolbox.cpp index 0ea69de5d..bd9362351 100644 --- a/paneltoolbox.cpp +++ b/paneltoolbox.cpp @@ -83,7 +83,8 @@ public: : icon("plasma"), toolBacker(0), animId(0), - animFrame(0) + animFrame(0), + toggled(false) {} KIcon icon; @@ -91,6 +92,7 @@ public: QTime stopwatch; int animId; qreal animFrame; + bool toggled; }; PanelToolBox::PanelToolBox(QGraphicsItem *parent) @@ -98,6 +100,7 @@ PanelToolBox::PanelToolBox(QGraphicsItem *parent) d(new PanelToolBoxPrivate) { connect(Plasma::Animator::self(), SIGNAL(movementFinished(QGraphicsItem*)), this, SLOT(toolMoved(QGraphicsItem*))); + connect(this, SIGNAL(toggled()), this, SLOT(toggle())); setZValue(10000000); setFlag(ItemClipsToShape, true); @@ -276,10 +279,11 @@ void PanelToolBox::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { //kDebug() << event->pos() << event->scenePos() << d->toolBacker->rect().contains(event->scenePos().toPoint()); if ((d->toolBacker && d->toolBacker->rect().contains(event->scenePos().toPoint())) || - d->stopwatch.elapsed() < 100) { + d->stopwatch.elapsed() < 100 || d->toggled) { QGraphicsItem::hoverLeaveEvent(event); return; } + hideToolBox(); QGraphicsItem::hoverLeaveEvent(event); } @@ -290,6 +294,7 @@ void PanelToolBox::hideToolBox() return; } + d->toggled = false; int x = size() * 2; int y = 0; Plasma::Animator* animdriver = Plasma::Animator::self(); @@ -342,6 +347,14 @@ void PanelToolBox::toolMoved(QGraphicsItem *item) } } +void PanelToolBox::toggle() +{ + d->toggled = !d->toggled; + if (showing() && !d->toggled) { + hideToolBox(); + } +} + } // plasma namespace #include "paneltoolbox_p.moc" diff --git a/paneltoolbox_p.h b/paneltoolbox_p.h index 87628bbf3..e7038bb21 100644 --- a/paneltoolbox_p.h +++ b/paneltoolbox_p.h @@ -59,6 +59,8 @@ protected: protected slots: void animate(qreal progress); void toolMoved(QGraphicsItem*); + void toggle(); + private: PanelToolBoxPrivate *d; };