From 2bb756cfe7f052669dac3a0edcc30f653a7c3045 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 1 Nov 2011 18:55:57 +0100 Subject: [PATCH] register extra types on QScriptEngine only if hasn't been done yet --- declarativeimports/core/CMakeLists.txt | 2 +- declarativeimports/core/corebindingsplugin.cpp | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/declarativeimports/core/CMakeLists.txt b/declarativeimports/core/CMakeLists.txt index 64254ac8d..30ad3d3ed 100644 --- a/declarativeimports/core/CMakeLists.txt +++ b/declarativeimports/core/CMakeLists.txt @@ -23,7 +23,7 @@ qt4_automoc(${corebindings_SRCS}) add_library(corebindingsplugin SHARED ${corebindings_SRCS}) -target_link_libraries(corebindingsplugin ${KDE4_PLASMA_LIBS} ${QT_QTSCRIPT_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY}) +target_link_libraries(corebindingsplugin ${KDE4_PLASMA_LIBS} ${QT_QTSCRIPT_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY} kdeclarative) install(TARGETS corebindingsplugin DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/core) install(FILES qmldir DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/core) diff --git a/declarativeimports/core/corebindingsplugin.cpp b/declarativeimports/core/corebindingsplugin.cpp index 6e06c2e6c..041023e25 100644 --- a/declarativeimports/core/corebindingsplugin.cpp +++ b/declarativeimports/core/corebindingsplugin.cpp @@ -23,6 +23,9 @@ #include #include +#include + +#include #include #include @@ -43,6 +46,17 @@ void CoreBindingsPlugin::initializeEngine(QDeclarativeEngine *engine, const char ThemeProxy *theme = new ThemeProxy(context); context->setContextProperty("theme", theme); + + KDeclarative kdeclarative; + kdeclarative.setDeclarativeEngine(engine); + kdeclarative.initialize(); + QScriptEngine *scriptEngine = kdeclarative.scriptEngine(); +kWarning()<<"AAAAA"<globalObject().property("i18n").isValid(); + //inject the hack only if wasn't injected already + if (!scriptEngine->globalObject().property("i18n").isValid()) { + //binds things like kconfig and icons + kdeclarative.setupBindings(); + } } void CoreBindingsPlugin::registerTypes(const char *uri)