History

interim checkin

humbletim committed 8 years ago

Commit 5791ca41 parent 145a0df27 files · +557 −119Browse files

Showing the changes to libraries/script-engine/src/ScriptEngines.cpp (1 of 27 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngines.cpp+26−4
@@ -132,6 +132,20 @@ QUrl expandScriptUrl(const QUrl& rawScriptURL) { · 131 unmodified lines
132132
133133 QObject* scriptsModel();
134134
135+bool NativeScriptInitializers::registerNativeScriptInitializer(NativeScriptInitializer initializer) {
136+ return registerScriptInitializer([=](ScriptEnginePointer engine) {
137+ initializer(qobject_cast<QScriptEngine*>(engine.data()));
138+ });
139+}
140+
141+bool NativeScriptInitializers::registerScriptInitializer(ScriptInitializer initializer) {
142+ if (auto scriptEngines = DependencyManager::get<ScriptEngines>().data()) {
143+ scriptEngines->registerScriptInitializer(initializer);
144+ return true;
145+ }
146+ return false;
147+}
148+
135149 void ScriptEngines::registerScriptInitializer(ScriptInitializer initializer) {
136150 _scriptInitializers.push_back(initializer);
137151 }
@@ -520,6 +534,17 @@ void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) { · 382 unmodified lines
520534 emit scriptCountChanged();
521535 }
522536
537+int ScriptEngines::runScriptInitializers(ScriptEnginePointer scriptEngine) {
538+ // register our application services and set it off on its own thread
539+ int ii=0;
540+ for (auto initializer : _scriptInitializers) {
541+ ii++;
542+ qDebug() << "initializer" << ii;
543+ initializer(scriptEngine);
544+ }
545+ return ii;
546+}
547+
523548 void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) {
524549 connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::onScriptFinished, Qt::DirectConnection);
525550 connect(scriptEngine.data(), &ScriptEngine::loadScript, [&](const QString& scriptName, bool userLoaded) {
@@ -529,10 +554,7 @@ void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) { · 3 unmodified lines
529554 loadScript(scriptName, userLoaded, false, false, true);
530555 });
531556
532− // register our application services and set it off on its own thread
533− for (auto initializer : _scriptInitializers) {
534− initializer(scriptEngine);
535− }
557+ runScriptInitializers(scriptEngine);
536558
537559 // FIXME disabling 'shift key' debugging for now. If you start up the application with
538560 // the shift key held down, it triggers a deadlock because of script interfaces running