forked from qt-creator/qt-creator
Core: Have the JsExpander take ownership of registered QObjects
Change-Id: Ice5f232d5d7bed32b23f6713b7fa44f44a3ea502 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -44,11 +44,10 @@ namespace Internal {
|
|||||||
|
|
||||||
class JsExpanderPrivate {
|
class JsExpanderPrivate {
|
||||||
public:
|
public:
|
||||||
JsExpanderPrivate() : m_utilsExtension(new UtilsJsExtension) { }
|
~JsExpanderPrivate() { qDeleteAll(m_registeredObjects); }
|
||||||
~JsExpanderPrivate() { delete m_utilsExtension; }
|
|
||||||
|
|
||||||
QScriptEngine m_engine;
|
QScriptEngine m_engine;
|
||||||
UtilsJsExtension *m_utilsExtension;
|
QList<QObject *> m_registeredObjects;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
@@ -57,6 +56,7 @@ static Internal::JsExpanderPrivate *d;
|
|||||||
|
|
||||||
void JsExpander::registerQObjectForJs(const QString &name, QObject *obj)
|
void JsExpander::registerQObjectForJs(const QString &name, QObject *obj)
|
||||||
{
|
{
|
||||||
|
d->m_registeredObjects.append(obj);
|
||||||
QScriptValue jsObj = d->m_engine.newQObject(obj, QScriptEngine::QtOwnership);
|
QScriptValue jsObj = d->m_engine.newQObject(obj, QScriptEngine::QtOwnership);
|
||||||
d->m_engine.globalObject().setProperty(name, jsObj);
|
d->m_engine.globalObject().setProperty(name, jsObj);
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ JsExpander::JsExpander()
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
registerQObjectForJs(QLatin1String("Util"), d->m_utilsExtension);
|
registerQObjectForJs(QLatin1String("Util"), new Internal::UtilsJsExtension);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsExpander::~JsExpander()
|
JsExpander::~JsExpander()
|
||||||
|
|||||||
Reference in New Issue
Block a user