* allow associating a tool name with a given tool
* convenience method for enabling/disabling tools by name * don't show disabled tools svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=745240
This commit is contained in:
parent
fee70cb28f
commit
e5911d2f46
37
toolbox.cpp
37
toolbox.cpp
@ -23,11 +23,16 @@
|
|||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QRadialGradient>
|
#include <QRadialGradient>
|
||||||
|
|
||||||
|
#include <KDebug>
|
||||||
|
|
||||||
#include "widgets/widget.h"
|
#include "widgets/widget.h"
|
||||||
|
|
||||||
namespace Plasma
|
namespace Plasma
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// used with QGrahphicsItem::setData
|
||||||
|
static const int ToolName = 7001;
|
||||||
|
|
||||||
DesktopToolbox::DesktopToolbox(QGraphicsItem *parent)
|
DesktopToolbox::DesktopToolbox(QGraphicsItem *parent)
|
||||||
: QGraphicsItem(parent),
|
: QGraphicsItem(parent),
|
||||||
m_icon("configure"),
|
m_icon("configure"),
|
||||||
@ -89,7 +94,11 @@ void DesktopToolbox::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
|||||||
int y = 0; // pos().y();
|
int y = 0; // pos().y();
|
||||||
Plasma::Phase* phase = Plasma::Phase::self();
|
Plasma::Phase* phase = Plasma::Phase::self();
|
||||||
foreach (QGraphicsItem* tool, QGraphicsItem::children()) {
|
foreach (QGraphicsItem* tool, QGraphicsItem::children()) {
|
||||||
// kDebug() << "let's show and move" << (QObject*)tool << tool->geometry().toRect();
|
if (!tool->isEnabled()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//kDebug() << "let's show and move" << tool << tool->boundingRect();
|
||||||
tool->show();
|
tool->show();
|
||||||
phase->moveItem(tool, Plasma::Phase::SlideIn, QPoint(x, y));
|
phase->moveItem(tool, Plasma::Phase::SlideIn, QPoint(x, y));
|
||||||
//x += 0;
|
//x += 0;
|
||||||
@ -112,6 +121,11 @@ void DesktopToolbox::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
|||||||
int y = 0;
|
int y = 0;
|
||||||
Plasma::Phase* phase = Plasma::Phase::self();
|
Plasma::Phase* phase = Plasma::Phase::self();
|
||||||
foreach (QGraphicsItem* tool, QGraphicsItem::children()) {
|
foreach (QGraphicsItem* tool, QGraphicsItem::children()) {
|
||||||
|
if (!tool->isEnabled()) {
|
||||||
|
tool->hide();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
phase->moveItem(tool, Plasma::Phase::SlideOut, QPoint(x, y));
|
phase->moveItem(tool, Plasma::Phase::SlideOut, QPoint(x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +164,7 @@ void DesktopToolbox::toolMoved(QGraphicsItem *item)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesktopToolbox::addTool(QGraphicsItem *tool)
|
void DesktopToolbox::addTool(QGraphicsItem *tool, const QString &name)
|
||||||
{
|
{
|
||||||
if (!tool) {
|
if (!tool) {
|
||||||
return;
|
return;
|
||||||
@ -160,6 +174,25 @@ void DesktopToolbox::addTool(QGraphicsItem *tool)
|
|||||||
tool->setPos(QPoint(0,0));
|
tool->setPos(QPoint(0,0));
|
||||||
tool->setZValue(zValue() + 1);
|
tool->setZValue(zValue() + 1);
|
||||||
tool->setParentItem(this);
|
tool->setParentItem(this);
|
||||||
|
tool->setData(ToolName, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DesktopToolbox::enableTool(const QString &toolName, bool visible)
|
||||||
|
{
|
||||||
|
//kDebug() << (visible? "enabling" : "disabling") << "tool" << toolName;
|
||||||
|
QGraphicsItem *tool = 0;
|
||||||
|
foreach (QGraphicsItem *child, QGraphicsItem::children()) {
|
||||||
|
//kDebug() << "checking tool" << child << child->data(ToolName);
|
||||||
|
if (child->data(ToolName).toString() == toolName) {
|
||||||
|
//kDebug() << "tool found!";
|
||||||
|
tool = child;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tool) {
|
||||||
|
tool->setEnabled(visible);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // plasma namespace
|
} // plasma namespace
|
||||||
|
@ -41,7 +41,8 @@ public:
|
|||||||
QRectF boundingRect() const;
|
QRectF boundingRect() const;
|
||||||
QPainterPath shape() const;
|
QPainterPath shape() const;
|
||||||
|
|
||||||
void addTool(QGraphicsItem *tool);
|
void addTool(QGraphicsItem *tool, const QString &name);
|
||||||
|
void enableTool(const QString &tool, bool enabled);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user