diff --git a/locales/en/messages.json b/locales/en/messages.json index 354db4f4..21c8579a 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -60,6 +60,9 @@ "permanentExpertMode": { "message": "Permanently enable Expert Mode" }, + "rememberLastTab": { + "message": "Reopen last tab on connect" + }, "userLanguageSelect": { "message": "Language (need to restart the application for the changes to take effect)" }, diff --git a/src/js/gui.js b/src/js/gui.js index b3261d54..b29d2cc2 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -321,5 +321,15 @@ GUI_control.prototype.content_ready = function (callback) { if (callback) callback(); } +GUI_control.prototype.selectDefaultTabWhenConnected = function() { + chrome.storage.local.get(['rememberLastTab', 'lastTab'], function (result) { + if (!(result.rememberLastTab && !!result.lastTab)) { + $('#tabs ul.mode-connected .tab_setup a').click(); + return; + } + $("#tabs ul.mode-connected ." + result.lastTab + " a").click(); + }); +}; + // initialize object into GUI variable var GUI = new GUI_control(); diff --git a/src/js/main.js b/src/js/main.js index 9ebe303a..0d8c308a 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -86,6 +86,13 @@ function startProcess() { return; } + $("#tabs ul.mode-connected li").click(function() { + // store the first class of the current tab (omit things like ".active") + chrome.storage.local.set({ + lastTab: $(this).attr("class").split(' ')[0] + }); + }); + GUI.tab_switch_in_progress = true; GUI.tab_switch_cleanup(function () { @@ -217,6 +224,13 @@ function startProcess() { }).change(); }); + chrome.storage.local.get('rememberLastTab', function (result) { + $('div.rememberLastTab input') + .prop('checked', !!result.rememberLastTab) + .change(function() { chrome.storage.local.set({rememberLastTab: $(this).is(':checked')}) }) + .change(); + }); + if (GUI.operating_system !== 'ChromeOS') { chrome.storage.local.get('checkForConfiguratorUnstableVersions', function (result) { if (result.checkForConfiguratorUnstableVersions) { diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 30128eb9..b225d6b0 100755 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -299,7 +299,7 @@ function finishOpen() { onConnect(); - $('#tabs ul.mode-connected .tab_setup a').click(); + GUI.selectDefaultTabWhenConnected(); } function connectCli() { diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index d90e3fa4..d8d6e4d5 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -45,7 +45,11 @@ TABS.motors.initialize = function (callback) { } function load_motor_data() { - MSP.send_message(MSPCodes.MSP_MOTOR, false, false, load_html); + MSP.send_message(MSPCodes.MSP_MOTOR, false, false, load_mixer_config); + } + + function load_mixer_config() { + MSP.send_message(MSPCodes.MSP_MIXER_CONFIG, false, false, load_html); } function load_html() { diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 2a033c21..b008bce0 100755 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -39,9 +39,13 @@ TABS.pid_tuning.initialize = function (callback) { }).then(function() { return MSP.promise(MSPCodes.MSP_RC_DEADBAND); }).then(function() { - $('#content').load("./tabs/pid_tuning.html", process_html); + MSP.send_message(MSPCodes.MSP_MIXER_CONFIG, false, false, load_html); }); + function load_html() { + $('#content').load("./tabs/pid_tuning.html", process_html); + } + function pid_and_rc_to_form() { self.setProfile(); if (semver.gte(CONFIG.apiVersion, "1.20.0")) { diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index 2347065a..3d252bef 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -40,7 +40,7 @@ TABS.receiver.initialize = function (callback) { } function load_rx_config() { - var next_callback = load_html; + var next_callback = load_mixer_config; if (semver.gte(CONFIG.apiVersion, "1.20.0")) { MSP.send_message(MSPCodes.MSP_RX_CONFIG, false, false, next_callback); } else { @@ -48,6 +48,10 @@ TABS.receiver.initialize = function (callback) { } } + function load_mixer_config() { + MSP.send_message(MSPCodes.MSP_MIXER_CONFIG, false, false, load_html); + } + function load_html() { $('#content').load("./tabs/receiver.html", process_html); } diff --git a/src/main.html b/src/main.html index 94b1652e..2b397d3e 100755 --- a/src/main.html +++ b/src/main.html @@ -268,7 +268,9 @@ -->
diff --git a/src/tabs/options.html b/src/tabs/options.html index d79dca35..1de44b98 100644 --- a/src/tabs/options.html +++ b/src/tabs/options.html @@ -4,6 +4,9 @@