diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | e9ae80694875f869892f13f4fcaf1170a00dea41 (patch) | |
tree | aa2f8d8a217e2d376224c8d46b7397b68d35de2d /kommander/widgets/toolbox.cpp | |
download | tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.tar.gz tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdewebdev@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kommander/widgets/toolbox.cpp')
-rw-r--r-- | kommander/widgets/toolbox.cpp | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/kommander/widgets/toolbox.cpp b/kommander/widgets/toolbox.cpp new file mode 100644 index 00000000..90a31e46 --- /dev/null +++ b/kommander/widgets/toolbox.cpp @@ -0,0 +1,190 @@ +// +// C++ Implementation: toolbox +// +// Description: +// +// +// Author: Andras Mantia <amantia@kdewebdev.org>, (C) 2008 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "toolbox.h" +#include "kommanderplugin.h" +#include "specials.h" + + +#include <klocale.h> + +#define ADDWIDGET 120 +#define CURRENTWIDGET 121 +#define REMOVEWIDGET 122 +#define REMOVEWIDGETAT 123 +#define SETCURRENTWIDGET 124 +#define CURRENTINDEX 125 +#define WIDGETAT 126 +#define INDEXOF 127 +#define FIRST_FUNCTION ADDWIDGET +#define LAST_FUNCTION INDEXOF + +ToolBox::ToolBox(QWidget *parent, const char *name) + : QToolBox(parent, name), KommanderWidget(this) +{ + QStringList states; + states << "default"; + setStates(states); + setDisplayStates(states); + KommanderPlugin::setDefaultGroup(Group::DCOP); + KommanderPlugin::registerFunction(ADDWIDGET, "addWidget(QString widget, QString widgetName, QString Label)", + i18n("Adds a widget to the toolbox. Returns the index of the widget."), 3); + KommanderPlugin::registerFunction(CURRENTWIDGET, "currentWidget(QString widget)", + i18n("Returns the name of the active widget."), 1); + KommanderPlugin::registerFunction(REMOVEWIDGET, "removeWidget(QString widget, QString widgetName)", i18n("Remove the selected widget, returns the index of the removed widget or -1 if no such widget was found."), 2); + KommanderPlugin::registerFunction(REMOVEWIDGETAT, "removeWidgetAt(QString widget, int index)", i18n("Remove the widget from the index position, returns the index of the removed widget or -1 if no widget was found."), 2); + KommanderPlugin::registerFunction(SETCURRENTWIDGET, "setCurrentWidget(QString widget, QString widgetName)", + i18n("Activates the selected widget."), 2); + KommanderPlugin::registerFunction(CURRENTINDEX, "currentIndex(QString widget)", + i18n("Returns the index of the active widget."), 1); + KommanderPlugin::registerFunction(WIDGETAT, "widgetAt(QString widget, int index)", + i18n("Returns the widget having the supplied index."), 2); + KommanderPlugin::registerFunction(INDEXOF, "indexOf(QString widget, QString widgetName)", + i18n("Returns the index of the widget, -1 if the widget is not part of the toolbox."), 2); + +} + + +ToolBox::~ToolBox() +{ +} + +QString ToolBox::currentState() const +{ + return QString("default"); +} + +bool ToolBox::isKommanderWidget() const +{ + return true; +} + +void ToolBox::populate() +{ + setAssociatedText(KommanderWidget::evalAssociatedText( populationText())); +} + +QStringList ToolBox::associatedText() const +{ + return KommanderWidget::associatedText(); +} + +void ToolBox::setAssociatedText(const QStringList& a_at) +{ + KommanderWidget::setAssociatedText(a_at); +} + +void ToolBox::setPopulationText(const QString& a_text) +{ + KommanderWidget::setPopulationText(a_text); +} + +QString ToolBox::populationText() const +{ + return KommanderWidget::populationText(); +} + + +QString ToolBox::addWidget(const QString& widgetName, const QString &label) +{ + KommanderWidget *w = widgetByName(widgetName); + if (w) + { + int idx = addItem(dynamic_cast<QWidget*>(w), label); + adjustSize(); + return QString::number(idx); + } else + return QString("-1"); + +} + +void ToolBox::showEvent(QShowEvent* e) +{ + QToolBox::showEvent(e); + emit widgetOpened(); +} + +void ToolBox::contextMenuEvent( QContextMenuEvent * e ) +{ + e->accept(); + QPoint p = e->globalPos(); + emit contextMenuRequested(p.x(), p.y()); +} + +bool ToolBox::isFunctionSupported(int f) +{ + return f == DCOP::count || f == DCOP::geometry || (f >= FIRST_FUNCTION && f <= LAST_FUNCTION) ; +} + +QString ToolBox::handleDCOP(int function, const QStringList& args) +{ + switch (function) { + case ADDWIDGET: + return addWidget(args[0], args[1]); + break; + case CURRENTWIDGET: + { + QWidget *w = currentItem(); + if (w) + return w->name(); + else + return QString(); + break; + } + case SETCURRENTWIDGET: + { + KommanderWidget *w = widgetByName(args[0]); + setCurrentItem(dynamic_cast<QWidget*>(w)); + return QString(); + } + case REMOVEWIDGET: + { + KommanderWidget *w = widgetByName(args[0]); + return QString::number(removeItem(dynamic_cast<QWidget*>(w))); + } + case REMOVEWIDGETAT: + { + QWidget *w = item(args[0].toInt()); + return QString::number(removeItem(w)); + } + case CURRENTINDEX: + { + return QString::number(currentIndex()); + break; + } + case WIDGETAT: + { + QWidget *w = item(args[0].toInt()); + if (w) + return w->name(); + else + return QString(); + break; + } + case INDEXOF: + { + KommanderWidget *w = widgetByName(args[0]); + return QString::number(indexOf(dynamic_cast<QWidget*>(w))); + } + case DCOP::count: + return QString::number(count()); + case DCOP::geometry: + { + QString geo = QString::number(this->x())+" "+QString::number(this->y())+" "+QString::number(this->width())+" "+QString::number(this->height()); + return geo; + break; + } + default: + return KommanderWidget::handleDCOP(function, args); + } + return QString(); +} +#include "toolbox.moc" |