From 4968f7b080d68a49cecb698072d88a31d7bef5af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Kiripolszky?= Date: Sun, 24 Mar 2019 16:06:39 +0100 Subject: [PATCH] hide CLI 'Copy to clipboard' button if neither NW nor browser support is available --- src/js/main.js | 2 +- src/js/tabs/cli.js | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/js/main.js b/src/js/main.js index 01d62e85..5da7506e 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -283,7 +283,7 @@ function startProcess() { TABS.onboard_logging.initialize(content_ready); break; case 'cli': - TABS.cli.initialize(content_ready); + TABS.cli.initialize(content_ready, nwGui); break; default: diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index a865d137..24db0fbe 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -41,7 +41,7 @@ function getCliCommand(command, cliBuffer) { return commandWithBackSpaces(command, buffer, noOfCharsToDelete); } -function copyToClipboard(text) { +function copyToClipboard(text, nwGui) { function onCopySuccessful() { writeLineToOutput("* " + i18n.getMessage("cliCopySuccessful")); } @@ -52,8 +52,7 @@ function copyToClipboard(text) { function nwCopy(text) { try { - let gui = require('nw.gui'), - clipboard = gui.Clipboard.get(); + let clipboard = nwGui.Clipboard.get(); clipboard.set(text, "text"); onCopySuccessful(); } catch (ex) { @@ -66,11 +65,11 @@ function copyToClipboard(text) { .then(onCopySuccessful, onCopyFailed); } - let copyFunc = !navigator.clipboard ? nwCopy : webCopy; + let copyFunc = nwGui ? nwCopy : webCopy; copyFunc(text); } -TABS.cli.initialize = function (callback) { +TABS.cli.initialize = function (callback, nwGui) { var self = this; if (GUI.active_tab != 'cli') { @@ -80,6 +79,9 @@ TABS.cli.initialize = function (callback) { self.outputHistory = ""; self.cliBuffer = ""; + // nwGui variable is set in main.js + const clipboardCopySupport = !(nwGui == null && !navigator.clipboard); + $('#content').load("./tabs/cli.html", function () { // translate to user-selected language i18n.localizePage(); @@ -136,9 +138,13 @@ TABS.cli.initialize = function (callback) { $('.tab-cli .window .wrapper').empty(); }); - $('.tab-cli .copy').click(function() { - copyToClipboard(self.outputHistory); - }); + if (clipboardCopySupport) { + $('.tab-cli .copy').click(function() { + copyToClipboard(self.outputHistory, nwGui); + }); + } else { + $('.tab-cli .copy').hide(); + } // Tab key detection must be on keydown, // `keypress`/`keyup` happens too late, as `textarea` will have already lost focus.