SVN commit 1217813 by aseigo: unbreak update() method M +4 -8 appletinterface.cpp M +23 -11 appletinterface.h M +4 -2 simplejavascriptapplet.cpp --- branches/KDE/4.6/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/appletinterface.cpp #1217812:1217813 @@ -124,25 +124,21 @@ m_appletScriptEngine->setConfigurationRequired(needsConfiguring, reason); } -#ifdef USE_JS_SCRIPTENGINE - -void AppletInterface::update(const QRectF &rect) +void JsAppletInterface::update(const QRectF &rect) { applet()->update(rect); } -QGraphicsLayout *AppletInterface::layout() const +QGraphicsLayout *JsAppletInterface::layout() const { return applet()->layout(); } -void AppletInterface::setLayout(QGraphicsLayout *layout) +void JsAppletInterface::setLayout(QGraphicsLayout *layout) { applet()->setLayout(layout); } -#endif - QString AppletInterface::activeConfig() const { return m_currentConfig.isEmpty() ? "main" : m_currentConfig; @@ -379,7 +375,7 @@ PopupAppletInterface::PopupAppletInterface(AbstractJsAppletScript *parent) - : AppletInterface(parent) + : POPUPAPPLETSUPERCLASS(parent) { } --- branches/KDE/4.6/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/appletinterface.h #1217812:1217813 @@ -76,10 +76,6 @@ Q_PROPERTY(int apiVersion READ apiVersion CONSTANT) Q_PROPERTY(QRectF rect READ rect) Q_PROPERTY(QSizeF size READ size) -#ifdef USE_JS_SCRIPTENGINE - Q_PROPERTY(QGraphicsLayout *layout WRITE setLayout READ layout) - Q_PROPERTY(QObject *sender READ sender) -#endif public: AppletInterface(AbstractJsAppletScript *parent); @@ -276,12 +272,6 @@ Q_INVOKABLE Plasma::Extender *extender() const; -#ifdef USE_JS_SCRIPTENGINE - Q_INVOKABLE void update(const QRectF &rect = QRectF()); - QGraphicsLayout *layout() const; - void setLayout(QGraphicsLayout *); -#endif - Plasma::DataEngine *dataEngine(const QString &name); QList contextualActions() const; @@ -311,9 +301,31 @@ QMap m_configs; }; -class PopupAppletInterface : public AppletInterface +class JsAppletInterface : public AppletInterface { Q_OBJECT + Q_PROPERTY(QGraphicsLayout *layout WRITE setLayout READ layout) + Q_PROPERTY(QObject *sender READ sender) + +public: + JsAppletInterface(AbstractJsAppletScript *parent) + : AppletInterface(parent) + { + } + + Q_INVOKABLE void update(const QRectF &rect = QRectF()); + QGraphicsLayout *layout() const; + void setLayout(QGraphicsLayout *); +}; + +#ifdef USE_JS_SCRIPTENGINE +#define POPUPAPPLETSUPERCLASS JsAppletInterface +#else +#define POPUPAPPLETSUPERCLASS AppletInterface +#endif +class PopupAppletInterface : public POPUPAPPLETSUPERCLASS +{ + Q_OBJECT Q_PROPERTY(QIcon popupIcon READ popupIcon WRITE setPopupIcon) Q_PROPERTY(bool passivePopup READ isPassivePopup WRITE setPassivePopup) Q_PROPERTY(QGraphicsWidget *popupWidget READ popupWidget WRITE setPopupWidget) --- branches/KDE/4.6/kdebase/runtime/plasma/scriptengines/javascript/plasmoid/simplejavascriptapplet.cpp #1217812:1217813 @@ -55,6 +55,8 @@ #include #include +#define USE_JS_SCRIPTENGINE + #include "appletauthorization.h" #include "appletinterface.h" #include "scriptenv.h" @@ -511,8 +513,8 @@ // Expose applet interface const bool isPopupApplet = qobject_cast(applet()); - m_interface = isPopupApplet ? new PopupAppletInterface(this) : new AppletInterface(this); - m_self = m_engine->newQObject(m_interface); + m_interface = isPopupApplet ? new PopupAppletInterface(this) : new JsAppletInterface(this); + m_self = m_engine->newQObject(m_interface, QScriptEngine::QtOwnership, QScriptEngine::ExcludeDeleteLater); m_env->addMainObjectProperties(m_self); m_self.setScope(global); global.setProperty("plasmoid", m_self);