From 1488f1c6c074166ab2d7b1923d15ecc7b82b44c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiripolszky=20K=C3=A1roly?= Date: Thu, 19 Jul 2018 22:23:20 +0200 Subject: [PATCH 1/3] Add option to reopen last tab on connect --- locales/en/messages.json | 3 +++ src/js/gui.js | 16 ++++++++++++++++ src/js/main.js | 16 +++++++++++++++- src/js/serial_backend.js | 2 +- src/main.html | 4 +++- src/tabs/options.html | 3 +++ 6 files changed, 41 insertions(+), 3 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 64349869..0ac830f5 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..54e24712 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -321,5 +321,21 @@ GUI_control.prototype.content_ready = function (callback) { if (callback) callback(); } +GUI_control.prototype.selectDefaultTabWhenConnected = function() { + chrome.storage.local.get(['rememberLastTab', 'lastTab'], function (result) { + let fallbackTab = '#tabs ul.mode-connected .tab_setup a'; + if (!(result.rememberLastTab && !!result.lastTab)) { + $(fallbackTab).click(); + return; + } + let $savedTab = $("#tabs ul.mode-connected ." + result.lastTab + " a"); + if (!!$savedTab.data("ignore-reopen")) { + $(fallbackTab).click(); + } else { + $savedTab.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..979724ee 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -91,7 +91,14 @@ function startProcess() { GUI.tab_switch_cleanup(function () { // disable previously active tab highlight $('li', ui_tabs).removeClass('active'); - + + // store last active tab only when connected + if (GUI.connected_to) { + chrome.storage.local.set({ + lastTab: $(self).parent().attr("class") + }); + } + // Highlight selected tab $(self).parent().addClass('active'); @@ -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/main.html b/src/main.html index 94b1652e..85d235fa 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 @@
+
+ +
From c4e9d1778c822bdc7d1cd123599e4b7a3a8f035e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiripolszky=20K=C3=A1roly?= Date: Sun, 22 Jul 2018 10:49:04 +0200 Subject: [PATCH 3/3] load mixer config on demand --- src/js/gui.js | 10 ++-------- src/js/main.js | 2 +- src/js/tabs/motors.js | 6 +++++- src/js/tabs/pid_tuning.js | 6 +++++- src/js/tabs/receiver.js | 6 +++++- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/js/gui.js b/src/js/gui.js index 54e24712..b29d2cc2 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -323,17 +323,11 @@ GUI_control.prototype.content_ready = function (callback) { GUI_control.prototype.selectDefaultTabWhenConnected = function() { chrome.storage.local.get(['rememberLastTab', 'lastTab'], function (result) { - let fallbackTab = '#tabs ul.mode-connected .tab_setup a'; if (!(result.rememberLastTab && !!result.lastTab)) { - $(fallbackTab).click(); + $('#tabs ul.mode-connected .tab_setup a').click(); return; } - let $savedTab = $("#tabs ul.mode-connected ." + result.lastTab + " a"); - if (!!$savedTab.data("ignore-reopen")) { - $(fallbackTab).click(); - } else { - $savedTab.click(); - } + $("#tabs ul.mode-connected ." + result.lastTab + " a").click(); }); }; diff --git a/src/js/main.js b/src/js/main.js index b4c66ad1..0d8c308a 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -98,7 +98,7 @@ function startProcess() { GUI.tab_switch_cleanup(function () { // disable previously active tab highlight $('li', ui_tabs).removeClass('active'); - + // Highlight selected tab $(self).parent().addClass('active'); 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 c29c574b..ca60d0ca 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); }