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 @@
+
+ +