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
132 132
133QObject* scriptsModel();133QObject* scriptsModel();
134 134
135bool NativeScriptInitializers::registerNativeScriptInitializer(NativeScriptInitializer initializer) {
136 return registerScriptInitializer([=](ScriptEnginePointer engine) {
137 initializer(qobject_cast<QScriptEngine*>(engine.data()));
138 });
139}
140
141bool 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
135void ScriptEngines::registerScriptInitializer(ScriptInitializer initializer) {149void ScriptEngines::registerScriptInitializer(ScriptInitializer initializer) {
136 _scriptInitializers.push_back(initializer);150 _scriptInitializers.push_back(initializer);
137}151}
@@ -520,6 +534,17 @@ void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) { · 382 unmodified lines
520 emit scriptCountChanged();534 emit scriptCountChanged();
521}535}
522 536
537int 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
523void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) {548void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) {
524 connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::onScriptFinished, Qt::DirectConnection);549 connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::onScriptFinished, Qt::DirectConnection);
525 connect(scriptEngine.data(), &ScriptEngine::loadScript, [&](const QString& scriptName, bool userLoaded) {550 connect(scriptEngine.data(), &ScriptEngine::loadScript, [&](const QString& scriptName, bool userLoaded) {
@@ -529,10 +554,7 @@ void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) { · 3 unmodified lines
529 loadScript(scriptName, userLoaded, false, false, true);554 loadScript(scriptName, userLoaded, false, false, true);
530 });555 });
531 556
532 // register our application services and set it off on its own thread557 runScriptInitializers(scriptEngine);
533 for (auto initializer : _scriptInitializers) {
534 initializer(scriptEngine);
535 }
536 558
537 // FIXME disabling 'shift key' debugging for now. If you start up the application with559 // FIXME disabling 'shift key' debugging for now. If you start up the application with
538 // the shift key held down, it triggers a deadlock because of script interfaces running560 // the shift key held down, it triggers a deadlock because of script interfaces running