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 | static const bool HIFI_SCRIPT_DEBUGGABLES { true }; | 29 | static const bool HIFI_SCRIPT_DEBUGGABLES { true }; |
| 30 | static const QString SETTINGS_KEY { "RunningScripts" }; | 30 | static const QString SETTINGS_KEY { "RunningScripts" }; |
| 31 | static const QUrl DEFAULT_SCRIPTS_LOCATION { "file:///~//defaultScripts.js" }; | 31 | static const QUrl DEFAULT_SCRIPTS_LOCATION { "file:///~//defaultScripts.js" }; |
| 32 | |||
| 32 | // Using a QVariantList so this is human-readable in the settings file | 33 | // Using a QVariantList so this is human-readable in the settings file |
| 33 | static Setting::Handle<QVariantList> runningScriptsHandle(SETTINGS_KEY, { QVariant(DEFAULT_SCRIPTS_LOCATION) }); | 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 | emit errorLoadingScript(url); | 65 | emit errorLoadingScript(url); |
| 65 | } | 66 | } |
| 66 | 67 | ||
| 67 | ScriptEngines::ScriptEngines(ScriptEngine::Context context) | 68 | ScriptEngines::ScriptEngines(ScriptEngine::Context context, const QUrl& defaultScriptsOverride) |
| 68 | : _context(context) | 69 | : _context(context), _defaultScriptsOverride(defaultScriptsOverride) |
| 69 | { | 70 | { |
| 70 | _scriptsModelFilter.setSourceModel(&_scriptsModel); | 71 | _scriptsModelFilter.setSourceModel(&_scriptsModel); |
| 71 | _scriptsModelFilter.sort(0, Qt::AscendingOrder); | 72 | _scriptsModelFilter.sort(0, Qt::AscendingOrder); |
| @@ -322,13 +323,22 @@ void ScriptEngines::loadScripts() { · 250 unmodified lines | |||
| 322 | 323 | ||
| 323 | // loads all saved scripts | 324 | // loads all saved scripts |
| 324 | auto runningScripts = runningScriptsHandle.get(); | 325 | auto runningScripts = runningScriptsHandle.get(); |
| 326 | bool defaultScriptsOverrideSet = !_defaultScriptsOverride.isEmpty(); | ||
| 325 | 327 | ||
| 326 | for (auto script : runningScripts) { | 328 | for (auto script : runningScripts) { |
| 327 | auto string = script.toString(); | 329 | auto url = script.toUrl(); |
| 328 | if (!string.isEmpty()) { | 330 | if (!url.isEmpty()) { |
| 329 | loadScript(string); | 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 | void ScriptEngines::saveScripts() { | 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 | runningScriptsHandle.set(list); | 376 | runningScriptsHandle.set(list); |
| 363 | } | 377 | } |
| 364 | 378 | ||