Gildas il y a 6 ans
Parent
commit
04ec3a2466

+ 1 - 1
README.MD

@@ -48,7 +48,7 @@ SingleFile can be installed:
  - With auto-save active, pages are automatically saved every time after being loaded (or before being unloaded if not).
  - Right-click on the SingleFile button and select "Options"/"Manage extension" to open the options page.
  - The default save folder is the download folder configured in your browser, cf. about:preferences in Firefox and chrome://settings in Chrome.
- - You can use the shortcut Ctrl+Shift+Y (Ctrl+Shift+U on Chrome OS) to save the current tab or selected tabs. Go to chrome://extensions/shortcuts to change it in Chrome.
+ - You can use the shortcut Ctrl+Shift+Y to save the current tab or the selected tabs. Go to chrome://extensions/shortcuts to change it in Chrome.
  - See the extension help in the options page for more detailed information about the options and technical notes.
 
 ## Release notes

+ 40 - 0
extension/ui/bg/ui-commands.js

@@ -0,0 +1,40 @@
+/*
+ * Copyright 2010-2019 Gildas Lormeau
+ * contact : gildas.lormeau <at> gmail.com
+ * 
+ * This file is part of SingleFile.
+ *
+ *   The code in this file is free software: you can redistribute it and/or 
+ *   modify it under the terms of the GNU Affero General Public License 
+ *   (GNU AGPL) as published by the Free Software Foundation, either version 3
+ *   of the License, or (at your option) any later version.
+ * 
+ *   The code in this file is distributed in the hope that it will be useful, 
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero 
+ *   General Public License for more details.
+ *
+ *   As additional permission under GNU AGPL version 3 section 7, you may 
+ *   distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU 
+ *   AGPL normally required by section 4, provided you include this license 
+ *   notice and a URL through which recipients can access the Corresponding 
+ *   Source.
+ */
+
+/* global browser, singlefile */
+
+singlefile.extension.ui.bg.commands = (() => {
+
+	const commands = browser.commands;
+	const BROWSER_COMMANDS_API_SUPPORTED = commands && commands.onCommand && commands.onCommand.addListener;
+
+	if (BROWSER_COMMANDS_API_SUPPORTED) {
+		browser.commands.onCommand.addListener(async command => {
+			if (command == "save-all-tabs") {
+				const allTabs = await singlefile.extension.core.bg.tabs.get({ currentWindow: true });
+				allTabs.forEach(tab => singlefile.extension.core.bg.business.saveTab(tab));
+			}
+		});
+	}
+
+})();

+ 1 - 1
extension/ui/pages/help.html

@@ -57,7 +57,7 @@
 					<li>Right-click on the SingleFile button and select "Options" to open the options page.</li>
 					<li> The default save folder is the download folder configured in your browser, cf.
 						about:preferences in Firefox and chrome://settings in Chrome. </li>
-					<li>You can use the shortcut Ctrl+Shift+Y to save the current tab or selected tabs. Go to <a
+					<li>You can use the shortcut Ctrl+Shift+Y to save the current tab or the selected tabs. Go to <a
 							href="chrome://extensions/shortcuts">chrome://extensions/shortcuts</a> to change it in
 						Chrome.</li>
 				</ul>

+ 5 - 0
lib/browser-polyfill/chrome-browser-polyfill.js

@@ -125,6 +125,11 @@
 					}
 				})
 			},
+			commands: {
+				onCommand: {
+					addListener: listener => nativeAPI.commands.onCommand.addListener(listener)
+				}
+			},
 			downloads: {
 				download: options => new Promise((resolve, reject) => {
 					nativeAPI.downloads.download(options, downloadId => {

+ 11 - 1
manifest.json

@@ -63,6 +63,7 @@
 			"extension/core/bg/autosave.js",
 			"extension/ui/bg/ui-main.js",
 			"extension/ui/bg/ui-menu.js",
+			"extension/ui/bg/ui-commands.js",
 			"extension/ui/bg/ui-button.js",
 			"lib/lazy/bg/lazy-timeout.js",
 			"lib/single-file/vendor/css-minifier.js",
@@ -113,8 +114,17 @@
 				"windows": "Ctrl+Shift+Y",
 				"mac": "Command+Shift+Y",
 				"linux": "Ctrl+Shift+Y",
-				"chromeos": "Ctrl+Shift+U"
+				"chromeos": "Ctrl+Shift+Y"
 			}
+		},
+		"save-all-tabs": {
+			"suggested_key": {
+				"windows": "Ctrl+Shift+U",
+				"mac": "Command+Shift+U",
+				"linux": "Ctrl+Shift+U",
+				"chromeos": "Ctrl+Shift+U"
+			},
+			"description": "Save all tabs"
 		}
 	},
 	"web_accessible_resources": [