From 5a5583d3a5b56eb2bb251047503d4b87f864ec7a Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Sat, 9 Apr 2016 21:43:50 -0700 Subject: [PATCH] PR comments --- interface/src/Application.cpp | 9 +-------- libraries/script-engine/src/ScriptEngines.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a3c4ea646f..a6555352dd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -731,18 +731,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : registerScriptEngineWithApplicationServices(engine); }); - static const int SCRIPT_SAVE_COUNTDOWN_INTERVAL_MS = 5000; - QTimer* scriptSaveTimer = new QTimer(this); - connect(scriptSaveTimer, &QTimer::timeout, [] { - DependencyManager::get()->saveScripts(); - }); - scriptSaveTimer->setSingleShot(true); - connect(scriptEngines, &ScriptEngines::scriptCountChanged, scriptEngines, [this, scriptSaveTimer] { + connect(scriptEngines, &ScriptEngines::scriptCountChanged, scriptEngines, [this] { auto scriptEngines = DependencyManager::get(); if (scriptEngines->getRunningScripts().isEmpty()) { getMyAvatar()->clearScriptableSettings(); } - scriptSaveTimer->start(SCRIPT_SAVE_COUNTDOWN_INTERVAL_MS); }, Qt::QueuedConnection); connect(scriptEngines, &ScriptEngines::scriptsReloading, scriptEngines, [this] { diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 668b9aa3a2..78141188ef 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -40,6 +40,19 @@ ScriptEngines::ScriptEngines() _scriptsModelFilter.setSourceModel(&_scriptsModel); _scriptsModelFilter.sort(0, Qt::AscendingOrder); _scriptsModelFilter.setDynamicSortFilter(true); + + static const int SCRIPT_SAVE_COUNTDOWN_INTERVAL_MS = 5000; + QTimer* scriptSaveTimer = new QTimer(this); + scriptSaveTimer->setSingleShot(true); + QMetaObject::Connection timerConnection = connect(scriptSaveTimer, &QTimer::timeout, [] { + DependencyManager::get()->saveScripts(); + }); + connect(qApp, &QCoreApplication::aboutToQuit, [=] { + disconnect(timerConnection); + }); + connect(this, &ScriptEngines::scriptCountChanged, this, [scriptSaveTimer] { + scriptSaveTimer->start(SCRIPT_SAVE_COUNTDOWN_INTERVAL_MS); + }, Qt::QueuedConnection); } QUrl normalizeScriptURL(const QUrl& rawScriptURL) {