allow outsiders (e.g. subclasses) to enable/disable tools

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=748312
This commit is contained in:
Aaron J. Seigo 2007-12-14 06:34:26 +00:00
parent a7dcbb5456
commit bdcec3bee6
2 changed files with 25 additions and 7 deletions

View File

@ -70,6 +70,16 @@ public:
applets.clear(); applets.clear();
} }
DesktopToolbox* createToolbox(Containment* c)
{
if (!toolbox) {
toolbox = new DesktopToolbox(c);
toolbox->setPos(c->geometry().width() - toolbox->boundingRect().width(), 0);
}
return toolbox;
}
FormFactor formFactor; FormFactor formFactor;
Location location; Location location;
Applet::List applets; Applet::List applets;
@ -177,12 +187,12 @@ void Containment::setContainmentType(Containment::Type type)
tool = new Plasma::PushButton(i18n("Zoom In")); tool = new Plasma::PushButton(i18n("Zoom In"));
connect(tool, SIGNAL(clicked()), this, SIGNAL(zoomIn())); connect(tool, SIGNAL(clicked()), this, SIGNAL(zoomIn()));
tool->resize(tool->sizeHint()); tool->resize(tool->sizeHint());
addToolBoxTool(tool); addToolBoxTool(tool, "zoomIn");
tool = new Plasma::PushButton(i18n("Zoom Out")); tool = new Plasma::PushButton(i18n("Zoom Out"));
connect(tool, SIGNAL(clicked()), this, SIGNAL(zoomOut())); connect(tool, SIGNAL(clicked()), this, SIGNAL(zoomOut()));
tool->resize(tool->sizeHint()); tool->resize(tool->sizeHint());
addToolBoxTool(tool); addToolBoxTool(tool, "zoomOut");
} }
} else { } else {
delete d->toolbox; delete d->toolbox;
@ -698,12 +708,12 @@ void Containment::emitLaunchActivated()
void Containment::addToolBoxTool(QGraphicsItem *tool, const QString& toolName) void Containment::addToolBoxTool(QGraphicsItem *tool, const QString& toolName)
{ {
if (!d->toolbox) { d->createToolbox(this)->addTool(tool, toolName);
d->toolbox = new DesktopToolbox(this);
d->toolbox->setPos(geometry().width() - d->toolbox->boundingRect().width(), 0);
} }
d->toolbox->addTool(tool, toolName); void Containment::enableToolBoxTool(const QString &toolname, bool enable)
{
d->createToolbox(this)->enableTool(toolname, enable);
} }
} // Plasma namespace } // Plasma namespace

View File

@ -219,6 +219,14 @@ class PLASMA_EXPORT Containment : public Applet
*/ */
void addToolBoxTool(QGraphicsItem *tool, const QString &toolname = QString()); void addToolBoxTool(QGraphicsItem *tool, const QString &toolname = QString());
/**
* Enables or disables a toolbox tool by name
*
* @arg name the name of the tool
* @arg enable true to enable, false to disable
*/
void enableToolBoxTool(const QString &toolname, bool enable);
/** /**
* @internal * @internal
* Called when constraints have been updated on this containment to provide * Called when constraints have been updated on this containment to provide