Add getters and setters for PopupApplet::widget() and PopupApplet::graphicsWidget()

for use in scripting languages. Add a initScriptingExtenderItem() signal for script
engines to connect to and call their versions of Applet::initExtenderItem()

CCMAIL: kde-bindings@kde.org

svn path=/branches/KDE/4.3/kdelibs/; revision=998324
This commit is contained in:
Richard Dale 2009-07-17 12:32:06 +00:00
parent ce73956c66
commit 14352fc429
5 changed files with 36 additions and 7 deletions

View File

@ -666,11 +666,15 @@ void Applet::constraintsEvent(Plasma::Constraints constraints)
void Applet::initExtenderItem(ExtenderItem *item)
{
kWarning() << "Missing implementation of initExtenderItem in the applet "
<< item->config().readEntry("SourceAppletPluginName", "")
<< "!\n Any applet that uses extenders should implement initExtenderItem to "
<< "instantiate a widget. Destroying the item...";
item->destroy();
if (d->script) {
emit initScriptExtenderItem(item);
} else {
kWarning() << "Missing implementation of initExtenderItem in the applet "
<< item->config().readEntry("SourceAppletPluginName", "")
<< "!\n Any applet that uses extenders should implement initExtenderItem to "
<< "instantiate a widget. Destroying the item...";
item->destroy();
}
}
Extender *Applet::extender() const

View File

@ -688,6 +688,11 @@ class PLASMA_EXPORT Applet : public QGraphicsWidget
void appletDestroyed(Plasma::Applet *applet);
/**
* Emitted when an ExtenderItem in a scripting applet needs to be initialized
*/
void initScriptExtenderItem(Plasma::ExtenderItem *item);
public Q_SLOTS:
/**
* Sets the immutability type for this applet (not immutable,

View File

@ -112,12 +112,26 @@ QIcon PopupApplet::popupIcon() const
QWidget *PopupApplet::widget()
{
return 0;
return d->widget;
}
void PopupApplet::setWidget(QWidget * widget)
{
d->widget = widget;
}
QGraphicsWidget *PopupApplet::graphicsWidget()
{
return static_cast<Applet*>(this)->d->extender;
if (d->graphicsWidget != 0) {
return d->graphicsWidget;
} else {
return static_cast<Applet*>(this)->d->extender;
}
}
void PopupApplet::setGraphicsWidget(QGraphicsWidget * graphicsWidget)
{
d->graphicsWidget = graphicsWidget;
}
void PopupAppletPrivate::checkExtenderAppearance(Plasma::FormFactor f)
@ -486,6 +500,8 @@ PopupAppletPrivate::PopupAppletPrivate(PopupApplet *applet)
icon(0),
dialog(0),
proxy(0),
widget(0),
graphicsWidget(0),
popupPlacement(Plasma::FloatingPopup),
savedAspectRatio(Plasma::InvalidAspectRatioMode),
timer(0),

View File

@ -76,6 +76,7 @@ public:
* depending on the form factor of the applet.
*/
virtual QWidget *widget();
void setWidget(QWidget * widget);
/**
* Implement either this function or widget().
@ -83,6 +84,7 @@ public:
* depending on the form factor of the applet.
*/
virtual QGraphicsWidget *graphicsWidget();
void setGraphicsWidget(QGraphicsWidget * widget);
/**
* @return the placement of the popup relating to the icon

View File

@ -42,6 +42,8 @@ public:
Plasma::IconWidget *icon;
QPointer<Plasma::Dialog> dialog;
QGraphicsProxyWidget *proxy;
QWidget *widget;
QGraphicsWidget *graphicsWidget;
Plasma::PopupPlacement popupPlacement;
Plasma::AspectRatioMode savedAspectRatio;
QTimer *timer;