Showing the changes to libraries/script-engine/src/ScriptEngines.cpp (1 of 4 files). Show all
Unified · Split
| @@ -29,6 +29,7 @@ static const QString DESKTOP_LOCATION = QStandardPaths::writableLocation(QStanda · 28 unmodified lines | ||
| 29 | 29 | static const bool HIFI_SCRIPT_DEBUGGABLES { true }; |
| 30 | 30 | static const QString SETTINGS_KEY { "RunningScripts" }; |
| 31 | 31 | static const QUrl DEFAULT_SCRIPTS_LOCATION { "file:///~//defaultScripts.js" }; |
| 32 | + | |
| 32 | 33 | // Using a QVariantList so this is human-readable in the settings file |
| 33 | 34 | static Setting::Handle<QVariantList> runningScriptsHandle(SETTINGS_KEY, { QVariant(DEFAULT_SCRIPTS_LOCATION) }); |
| 34 | 35 | |
| @@ -64,8 +65,8 @@ void ScriptEngines::onErrorLoadingScript(const QString& url) { · 29 unmodified lines | ||
| 64 | 65 | emit errorLoadingScript(url); |
| 65 | 66 | } |
| 66 | 67 | |
| 67 | −ScriptEngines::ScriptEngines(ScriptEngine::Context context) | |
| 68 | − : _context(context) | |
| 68 | +ScriptEngines::ScriptEngines(ScriptEngine::Context context, const QUrl& defaultScriptsOverride) | |
| 69 | + : _context(context), _defaultScriptsOverride(defaultScriptsOverride) | |
| 69 | 70 | { |
| 70 | 71 | _scriptsModelFilter.setSourceModel(&_scriptsModel); |
| 71 | 72 | _scriptsModelFilter.sort(0, Qt::AscendingOrder); |
| @@ -322,13 +323,22 @@ void ScriptEngines::loadScripts() { · 250 unmodified lines | ||
| 322 | 323 | |
| 323 | 324 | // loads all saved scripts |
| 324 | 325 | auto runningScripts = runningScriptsHandle.get(); |
| 326 | + bool defaultScriptsOverrideSet = !_defaultScriptsOverride.isEmpty(); | |
| 325 | 327 | |
| 326 | 328 | for (auto script : runningScripts) { |
| 327 | − auto string = script.toString(); | |
| 328 | − if (!string.isEmpty()) { | |
| 329 | − loadScript(string); | |
| 329 | + auto url = script.toUrl(); | |
| 330 | + if (!url.isEmpty()) { | |
| 331 | + if (defaultScriptsOverrideSet && url == DEFAULT_SCRIPTS_LOCATION) { | |
| 332 | + _defaultScriptsWasRunning = true; | |
| 333 | + } else { | |
| 334 | + loadScript(url); | |
| 335 | + } | |
| 330 | 336 | } |
| 331 | 337 | } |
| 338 | + | |
| 339 | + if (defaultScriptsOverrideSet) { | |
| 340 | + loadScript(_defaultScriptsOverride, false); | |
| 341 | + } | |
| 332 | 342 | } |
| 333 | 343 | |
| 334 | 344 | void ScriptEngines::saveScripts() { |
| @@ -359,6 +369,10 @@ void ScriptEngines::saveScripts() { · 24 unmodified lines | ||
| 359 | 369 | } |
| 360 | 370 | } |
| 361 | 371 | |
| 372 | + if (_defaultScriptsWasRunning) { | |
| 373 | + list.append(DEFAULT_SCRIPTS_LOCATION); | |
| 374 | + } | |
| 375 | + | |
| 362 | 376 | runningScriptsHandle.set(list); |
| 363 | 377 | } |
| 364 | 378 | |