Kaynağa Gözat

Made the menu of the browser action button more compact

Gildas 7 yıl önce
ebeveyn
işleme
6f1286e5b8

+ 6 - 2
_locales/en/messages.json

@@ -27,15 +27,19 @@
         "message": "Save frame",
         "description": "Menu entry: 'Save frame'"
     },
+    "menuSaveTabs": {
+        "message": "Save tabs",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelectedTabs": {
         "message": "Save selected tabs",
         "description": "Menu entry: 'Save selected tabs'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "Save unpinned tabs",
         "description": "Menu entry: 'Save unpinned tabs'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "Save all tabs",
         "description": "Menu entry: 'Save all tabs'"
     },

+ 6 - 2
_locales/fr/messages.json

@@ -19,6 +19,10 @@
         "message": "Sélectionner le profil du domaine courant",
         "description": "Menu entry: 'Select the profile of the current domain'"
     },
+    "menuSaveTabs": {
+        "message": "Save les onglets",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelection": {
         "message": "Sauver la sélection",
         "description": "Menu entry: 'Save selection'"
@@ -31,11 +35,11 @@
         "message": "Sauver les onglets sélectionnés",
         "description": "Menu entry: 'Save selected tabs'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "Sauver les onglets non épinglés",
         "description": "Menu entry: 'Save unpinned tabs'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "Sauver tous les onglets",
         "description": "Menu entry: 'Save all tabs'"
     },

+ 6 - 2
_locales/ja/messages.json

@@ -19,6 +19,10 @@
         "message": "現在のドメインのプロファイルを選択",
         "description": "Menu entry: 'Select the profile of the current domain'"
     },
+    "menuSaveTabs": {
+        "message": "タブを保存",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelection": {
         "message": "選択を保存",
         "description": "メニュー項目: '選択を保存'"
@@ -31,11 +35,11 @@
         "message": "選択したタブを保存",
         "description": "メニュー項目: '選択したタブを保存'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "固定解除されたタブを保存する",
         "description": "メニュー項目: '固定解除されたタブを保存する'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "すべてのタブを保存",
         "description": "メニュー項目: 'すべてのタブを保存'"
     },

+ 6 - 2
_locales/pl/messages.json

@@ -27,15 +27,19 @@
         "message": "Zapisz ramkę",
         "description": "Menu entry: 'Save frame'"
     },
+    "menuSaveTabs": {
+        "message": "Zapisz karty",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelectedTabs": {
         "message": "Zapisz wybrane karty",
         "description": "Menu entry: 'Save selected tabs'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "Zapisz odpięte karty",
         "description": "Menu entry: 'Save unpinned tabs'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "Zapisz wszystkie karty",
         "description": "Menu entry: 'Save all tabs'"
     },

+ 6 - 2
_locales/ru/messages.json

@@ -27,15 +27,19 @@
         "message": "Сохранить фрейм",
         "description": "Menu entry: 'Save frame'"
     },
+    "menuSaveTabs": {
+        "message": "Сохранить вкладки",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelectedTabs": {
         "message": "Сохранить выбранные вкладки",
         "description": "Menu entry: 'Save selected tabs'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "Сохранить незакрепленные вкладки",
         "description": "Menu entry: 'Save unpinned tabs'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "Сохранить все вкладки",
         "description": "Menu entry: 'Save all tabs'"
     },

+ 6 - 2
_locales/zh_CN/messages.json

@@ -27,15 +27,19 @@
         "message": "保存框架",
         "description": "菜单项: '保存框架'"
     },
+    "menuSaveTabs": {
+        "message": "保存标签页",
+        "description": "Menu entry (SingleFile button only): 'Save tabs'"
+    },
     "menuSaveSelectedTabs": {
         "message": "保存选中标签页",
         "description": "菜单项: '保存选中标签页'"
     },
-    "menuUnpinnedTabs": {
+    "menuSaveUnpinnedTabs": {
         "message": "保存非固定标签页",
         "description": "菜单项: '保存非固定标签页'"
     },
-    "menuAllTabs": {
+    "menuSaveAllTabs": {
         "message": "保存所有标签页",
         "description": "菜单项: '保存所有标签页'"
     },

+ 50 - 19
extension/ui/bg/ui-menu.js

@@ -31,9 +31,13 @@ singlefile.ui.menu = (() => {
 	const MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX = "associate-with-profile-";
 	const MENU_ID_SAVE_SELECTED = "save-selected";
 	const MENU_ID_SAVE_FRAME = "save-frame";
+	const MENU_ID_SAVE_TABS = "save-tabs";
 	const MENU_ID_SAVE_SELECTED_TABS = "save-selected-tabs";
 	const MENU_ID_SAVE_UNPINNED_TABS = "save-unpinned-tabs";
-	const MENU_ID_SAVE_ALL_TABS = "save-tabs";
+	const MENU_ID_SAVE_ALL_TABS = "save-all-tabs";
+	const MENU_ID_BUTTON_SAVE_SELECTED_TABS = "button-" + MENU_ID_SAVE_SELECTED_TABS;
+	const MENU_ID_BUTTON_SAVE_UNPINNED_TABS = "button-" + MENU_ID_SAVE_UNPINNED_TABS;
+	const MENU_ID_BUTTON_SAVE_ALL_TABS = "button-" + MENU_ID_SAVE_ALL_TABS;
 	const MENU_ID_AUTO_SAVE = "auto-save";
 	const MENU_ID_AUTO_SAVE_DISABLED = "auto-save-disabled";
 	const MENU_ID_AUTO_SAVE_TAB = "auto-save-tab";
@@ -85,22 +89,47 @@ singlefile.ui.menu = (() => {
 					contexts: ["frame"],
 					title: browser.i18n.getMessage("menuSaveFrame")
 				});
+			}
+			menus.create({
+				id: MENU_ID_SAVE_TABS,
+				contexts: defaultContextsDisabled,
+				title: browser.i18n.getMessage("menuSaveTabs")
+			});
+			menus.create({
+				id: MENU_ID_BUTTON_SAVE_SELECTED_TABS,
+				contexts: defaultContextsDisabled,
+				title: browser.i18n.getMessage("menuSaveSelectedTabs"),
+				parentId: MENU_ID_SAVE_TABS
+			});
+			menus.create({
+				id: MENU_ID_BUTTON_SAVE_UNPINNED_TABS,
+				contexts: defaultContextsDisabled,
+				title: browser.i18n.getMessage("menuSaveUnpinnedTabs"),
+				parentId: MENU_ID_SAVE_TABS
+			});
+			menus.create({
+				id: MENU_ID_BUTTON_SAVE_ALL_TABS,
+				contexts: defaultContextsDisabled,
+				title: browser.i18n.getMessage("menuSaveAllTabs"),
+				parentId: MENU_ID_SAVE_TABS
+			});
+			if (options.contextMenuEnabled) {
 				menus.create({
 					id: MENU_ID_SAVE_SELECTED_TABS,
 					contexts: pageContextsEnabled,
 					title: browser.i18n.getMessage("menuSaveSelectedTabs")
 				});
+				menus.create({
+					id: MENU_ID_SAVE_UNPINNED_TABS,
+					contexts: pageContextsEnabled,
+					title: browser.i18n.getMessage("menuSaveUnpinnedTabs")
+				});
+				menus.create({
+					id: MENU_ID_SAVE_ALL_TABS,
+					contexts: pageContextsEnabled,
+					title: browser.i18n.getMessage("menuSaveAllTabs")
+				});
 			}
-			menus.create({
-				id: MENU_ID_SAVE_UNPINNED_TABS,
-				contexts: defaultContexts,
-				title: browser.i18n.getMessage("menuUnpinnedTabs")
-			});
-			menus.create({
-				id: MENU_ID_SAVE_ALL_TABS,
-				contexts: defaultContexts,
-				title: browser.i18n.getMessage("menuAllTabs")
-			});
 			if (options.contextMenuEnabled) {
 				menus.create({
 					id: "separator-2",
@@ -161,11 +190,13 @@ singlefile.ui.menu = (() => {
 						profileIndexes.set(profileName, profileIndex);
 					}
 				});
-				menus.create({
-					id: "separator-3",
-					contexts: defaultContexts,
-					type: "separator"
-				});
+				if (options.contextMenuEnabled) {
+					menus.create({
+						id: "separator-3",
+						contexts: pageContextsEnabled,
+						type: "separator"
+					});
+				}
 			}
 			menus.create({
 				id: MENU_ID_AUTO_SAVE,
@@ -220,15 +251,15 @@ singlefile.ui.menu = (() => {
 				if (event.menuItemId == MENU_ID_SAVE_FRAME) {
 					singlefile.ui.saveTab(tab, { frameId: event.frameId });
 				}
-				if (event.menuItemId == MENU_ID_SAVE_SELECTED_TABS) {
+				if (event.menuItemId == MENU_ID_SAVE_SELECTED_TABS || event.menuItemId == MENU_ID_BUTTON_SAVE_SELECTED_TABS) {
 					const tabs = await browser.tabs.query({ currentWindow: true, highlighted: true });
 					tabs.forEach(tab => singlefile.ui.isAllowedURL(tab.url) && singlefile.ui.saveTab(tab));
 				}
-				if (event.menuItemId == MENU_ID_SAVE_UNPINNED_TABS) {
+				if (event.menuItemId == MENU_ID_SAVE_UNPINNED_TABS || event.menuItemId == MENU_ID_BUTTON_SAVE_UNPINNED_TABS) {
 					const tabs = await browser.tabs.query({ currentWindow: true, pinned: false });
 					tabs.forEach(tab => singlefile.ui.isAllowedURL(tab.url) && singlefile.ui.saveTab(tab));
 				}
-				if (event.menuItemId == MENU_ID_SAVE_ALL_TABS) {
+				if (event.menuItemId == MENU_ID_SAVE_ALL_TABS || event.menuItemId == MENU_ID_BUTTON_SAVE_ALL_TABS) {
 					const tabs = await browser.tabs.query({ currentWindow: true });
 					tabs.forEach(tab => singlefile.ui.isAllowedURL(tab.url) && singlefile.ui.saveTab(tab));
 				}