1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-17 13:25:24 +03:00

hide CLI 'Copy to clipboard' button if neither NW nor browser support is available

This commit is contained in:
Károly Kiripolszky 2019-03-24 16:06:39 +01:00
parent 4bb9d30d05
commit 4968f7b080
2 changed files with 15 additions and 9 deletions

View file

@ -283,7 +283,7 @@ function startProcess() {
TABS.onboard_logging.initialize(content_ready); TABS.onboard_logging.initialize(content_ready);
break; break;
case 'cli': case 'cli':
TABS.cli.initialize(content_ready); TABS.cli.initialize(content_ready, nwGui);
break; break;
default: default:

View file

@ -41,7 +41,7 @@ function getCliCommand(command, cliBuffer) {
return commandWithBackSpaces(command, buffer, noOfCharsToDelete); return commandWithBackSpaces(command, buffer, noOfCharsToDelete);
} }
function copyToClipboard(text) { function copyToClipboard(text, nwGui) {
function onCopySuccessful() { function onCopySuccessful() {
writeLineToOutput("* " + i18n.getMessage("cliCopySuccessful")); writeLineToOutput("* " + i18n.getMessage("cliCopySuccessful"));
} }
@ -52,8 +52,7 @@ function copyToClipboard(text) {
function nwCopy(text) { function nwCopy(text) {
try { try {
let gui = require('nw.gui'), let clipboard = nwGui.Clipboard.get();
clipboard = gui.Clipboard.get();
clipboard.set(text, "text"); clipboard.set(text, "text");
onCopySuccessful(); onCopySuccessful();
} catch (ex) { } catch (ex) {
@ -66,11 +65,11 @@ function copyToClipboard(text) {
.then(onCopySuccessful, onCopyFailed); .then(onCopySuccessful, onCopyFailed);
} }
let copyFunc = !navigator.clipboard ? nwCopy : webCopy; let copyFunc = nwGui ? nwCopy : webCopy;
copyFunc(text); copyFunc(text);
} }
TABS.cli.initialize = function (callback) { TABS.cli.initialize = function (callback, nwGui) {
var self = this; var self = this;
if (GUI.active_tab != 'cli') { if (GUI.active_tab != 'cli') {
@ -80,6 +79,9 @@ TABS.cli.initialize = function (callback) {
self.outputHistory = ""; self.outputHistory = "";
self.cliBuffer = ""; self.cliBuffer = "";
// nwGui variable is set in main.js
const clipboardCopySupport = !(nwGui == null && !navigator.clipboard);
$('#content').load("./tabs/cli.html", function () { $('#content').load("./tabs/cli.html", function () {
// translate to user-selected language // translate to user-selected language
i18n.localizePage(); i18n.localizePage();
@ -136,9 +138,13 @@ TABS.cli.initialize = function (callback) {
$('.tab-cli .window .wrapper').empty(); $('.tab-cli .window .wrapper').empty();
}); });
$('.tab-cli .copy').click(function() { if (clipboardCopySupport) {
copyToClipboard(self.outputHistory); $('.tab-cli .copy').click(function() {
}); copyToClipboard(self.outputHistory, nwGui);
});
} else {
$('.tab-cli .copy').hide();
}
// Tab key detection must be on keydown, // Tab key detection must be on keydown,
// `keypress`/`keyup` happens too late, as `textarea` will have already lost focus. // `keypress`/`keyup` happens too late, as `textarea` will have already lost focus.