From a6a834f2c7c4e279c2d69cd331be4146063e6acf Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Tue, 30 Aug 2016 13:58:28 -0700 Subject: [PATCH 1/5] remember and work on toggle --- scripts/defaultScripts.js | 73 ++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 98825c594d..ae525a20cc 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -37,35 +37,76 @@ var DEFAULT_SCRIPTS = [ // add a menu item for debugging var MENU_CATEGORY = "Developer"; var MENU_ITEM = "Debug defaultScripts.js"; -var debuggingDefaultScripts = false; + +var SETTINGS_KEY = '_debugDefaultScriptsIsChecked'; +var previousSetting = Settings.getValue(SETTINGS_KEY); + +if (previousSetting === '' || previousSetting === false || previousSetting === 'false') { + previousSetting = false; +} + +if (previousSetting === true || previousSetting === 'true') { + previousSetting = true; +} + + + +var debuggingDefaultScripts = previousSetting; if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_ITEM)) { Menu.addMenuItem({ menuName: MENU_CATEGORY, menuItemName: MENU_ITEM, isCheckable: true, - isChecked: false, + isChecked: previousSetting, grouping: "Advanced" }); } +function runDefaultsTogether() { + for (var j in DEFAULT_SCRIPTS) { + print('trying to include:'+DEFAULT_SCRIPTS[j]) + Script.include(DEFAULT_SCRIPTS[j]+"?"+Math.random()); + } +} + +function runDefaultsSeparately() { + for (var i in DEFAULT_SCRIPTS) { + Script.load(DEFAULT_SCRIPTS[i]); + } +} // start all scripts if (Menu.isOptionChecked(MENU_ITEM)) { // we're debugging individual default scripts // so we load each into its own ScriptEngine instance debuggingDefaultScripts = true; - for (var i in DEFAULT_SCRIPTS) { - Script.load(DEFAULT_SCRIPTS[i]); - } + runDefaultsSeparately(); } else { // include all default scripts into this ScriptEngine - for (var j in DEFAULT_SCRIPTS) { - Script.include(DEFAULT_SCRIPTS[j]); + runDefaultsTogether(); +} + +function menuItemEvent(menuItem) { + if (menuItem == MENU_ITEM) { + isChecked = Menu.isOptionChecked(MENU_ITEM); + if (isChecked === true) { + Settings.setValue(SETTINGS_KEY, true); + debuggingDefaultScripts = true; + stopLoadedScripts(); + runDefaultsSeparately(); + } else if (isChecked === false) { + Settings.setValue(SETTINGS_KEY, false); + debuggingDefaultScripts = false; + stopLoadedScripts(); + runDefaultsTogether(); + } } } + + function stopLoadedScripts() { - if (debuggingDefaultScripts) { + // remove debug script loads var runningScripts = ScriptDiscoveryService.getRunning(); for (var i in runningScripts) { @@ -76,10 +117,18 @@ function stopLoadedScripts() { } } } - if (!Menu.isOptionChecked(MENU_ITEM)) { - Menu.removeMenuItem(MENU_CATEGORY, MENU_ITEM); - } + +} + +function removeMenuItem() { + if (!Menu.isOptionChecked(MENU_ITEM)) { + Menu.removeMenuItem(MENU_CATEGORY, MENU_ITEM); } } -Script.scriptEnding.connect(stopLoadedScripts); +Script.scriptEnding.connect(function() { + stopLoadedScripts(); + removeMenuItem(); +}); + +Menu.menuItemEvent.connect(menuItemEvent); \ No newline at end of file From e4bdc2e86c71c5bf3dd03fae5e4cb5892106cb6d Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Tue, 30 Aug 2016 14:17:27 -0700 Subject: [PATCH 2/5] cleanup --- scripts/defaultScripts.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index ae525a20cc..a95f2c41b2 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -65,8 +65,7 @@ if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_I function runDefaultsTogether() { for (var j in DEFAULT_SCRIPTS) { - print('trying to include:'+DEFAULT_SCRIPTS[j]) - Script.include(DEFAULT_SCRIPTS[j]+"?"+Math.random()); + Script.include(DEFAULT_SCRIPTS[j] + "?" + Math.random()); } } @@ -106,18 +105,16 @@ function menuItemEvent(menuItem) { function stopLoadedScripts() { - // remove debug script loads - var runningScripts = ScriptDiscoveryService.getRunning(); - for (var i in runningScripts) { - var scriptName = runningScripts[i].name; - for (var j in DEFAULT_SCRIPTS) { - if (DEFAULT_SCRIPTS[j].slice(-scriptName.length) === scriptName) { - ScriptDiscoveryService.stopScript(runningScripts[i].url); - } + var runningScripts = ScriptDiscoveryService.getRunning(); + for (var i in runningScripts) { + var scriptName = runningScripts[i].name; + for (var j in DEFAULT_SCRIPTS) { + if (DEFAULT_SCRIPTS[j].slice(-scriptName.length) === scriptName) { + ScriptDiscoveryService.stopScript(runningScripts[i].url); } } - + } } function removeMenuItem() { From 193065eb059a9e8d64663bfbeff44932c6f5e10b Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Wed, 31 Aug 2016 12:36:28 -0700 Subject: [PATCH 3/5] remove auto toggle --- scripts/defaultScripts.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index a95f2c41b2..9889b98d9a 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -51,7 +51,6 @@ if (previousSetting === true || previousSetting === 'true') { -var debuggingDefaultScripts = previousSetting; if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_ITEM)) { Menu.addMenuItem({ @@ -87,19 +86,16 @@ if (Menu.isOptionChecked(MENU_ITEM)) { function menuItemEvent(menuItem) { if (menuItem == MENU_ITEM) { + isChecked = Menu.isOptionChecked(MENU_ITEM); if (isChecked === true) { Settings.setValue(SETTINGS_KEY, true); - debuggingDefaultScripts = true; - stopLoadedScripts(); - runDefaultsSeparately(); } else if (isChecked === false) { Settings.setValue(SETTINGS_KEY, false); - debuggingDefaultScripts = false; - stopLoadedScripts(); - runDefaultsTogether(); } } + Window.alert('You must reload all scripts for this to take effect.') + } From 2acf316d1ce1f22d70607062a20b243902c5b25e Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Wed, 31 Aug 2016 13:45:58 -0700 Subject: [PATCH 4/5] fix --- scripts/defaultScripts.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 9889b98d9a..1d0a955336 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -93,8 +93,9 @@ function menuItemEvent(menuItem) { } else if (isChecked === false) { Settings.setValue(SETTINGS_KEY, false); } + Window.alert('You must reload all scripts for this to take effect.') } - Window.alert('You must reload all scripts for this to take effect.') + } From a8a95778662afdc3b06e6afa89acb8107331da1d Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Wed, 31 Aug 2016 21:14:50 -0700 Subject: [PATCH 5/5] actually remove the math.random --- scripts/defaultScripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 1d0a955336..f9cd32be46 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -64,7 +64,7 @@ if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_I function runDefaultsTogether() { for (var j in DEFAULT_SCRIPTS) { - Script.include(DEFAULT_SCRIPTS[j] + "?" + Math.random()); + Script.include(DEFAULT_SCRIPTS[j]); } }