int main(int argc, char *argv[]) { QApplication app(argc, argv); QDeclarativeView view; QDeclarativeContext *context = view.rootContext(); context->setContextProperty("backgroundColor", QColor(Qt::yellow)); KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(view.engine()); kdeclarative.initialize(); //binds things like kconfig and icons kdeclarative.setupBindings(); //If all gone well, the QScriptEngine has been extracted QScriptEngine *scriptEngine = kdeclarative.scriptEngine(); Q_ASSERT(scriptEngine); //Bind a test QObject in the "QtScript way" QScriptValue global = scriptEngine->globalObject(); TestObject *testObject = new TestObject(); QScriptValue testValue = scriptEngine->newQObject(testObject); testValue.setScope(global); global.setProperty("testObject", testValue); view.setSource(QUrl::fromLocalFile("test.qml")); view.show(); return app.exec(); }
void KWin::DeclarativeScript::run() { if (running()) { return; } // add read config KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(m_engine); kdeclarative.initialize(); kdeclarative.setupBindings(); installScriptFunctions(kdeclarative.scriptEngine()); qmlRegisterType<DesktopThumbnailItem>("org.kde.kwin", 0, 1, "DesktopThumbnailItem"); qmlRegisterType<WindowThumbnailItem>("org.kde.kwin", 0, 1, "ThumbnailItem"); qmlRegisterType<KWin::ScriptingClientModel::ClientModel>(); qmlRegisterType<KWin::ScriptingClientModel::SimpleClientModel>("org.kde.kwin", 0, 1, "ClientModel"); qmlRegisterType<KWin::ScriptingClientModel::ClientModelByScreen>("org.kde.kwin", 0, 1, "ClientModelByScreen"); qmlRegisterType<KWin::ScriptingClientModel::ClientModelByScreenAndDesktop>("org.kde.kwin", 0, 1, "ClientModelByScreenAndDesktop"); qmlRegisterType<KWin::ScriptingClientModel::ClientFilterModel>("org.kde.kwin", 0, 1, "ClientFilterModel"); qmlRegisterType<KWin::Client>(); m_engine->rootContext()->setContextProperty("options", options); m_component->loadUrl(QUrl::fromLocalFile(scriptFile().fileName())); if (m_component->isLoading()) { connect(m_component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), SLOT(createComponent())); } else { createComponent(); } }
void Application::setupDeclarativeBindings(QDeclarativeEngine* declarativeEngine) { KDeclarative kDeclarative; kDeclarative.setDeclarativeEngine(declarativeEngine); kDeclarative.initialize(); kDeclarative.setupBindings(); QScriptEngine* engine = kDeclarative.scriptEngine(); QScriptValue globalObject = engine->globalObject(); }