Add 2 global behavior toggles to the toolbar button context menu
This commit is contained in:
parent
2ed53db7ad
commit
bd9a91951f
|
@ -181,6 +181,10 @@
|
|||
"message": "Stylish",
|
||||
"description": "Title for the manage page"
|
||||
},
|
||||
"menuShowBadge": {
|
||||
"message": "Show active style count",
|
||||
"description": "Label (must be very short) for the checkbox in the toolbar button context menu controlling toolbar badge text."
|
||||
},
|
||||
"noStylesForSite": {
|
||||
"message": "No styles installed for this site.",
|
||||
"description": "Text displayed when no styles are installed for the current site"
|
||||
|
|
|
@ -37,6 +37,14 @@ chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
|
|||
case "openURL":
|
||||
openURL(request);
|
||||
break;
|
||||
case "styleDisableAll":
|
||||
chrome.contextMenus.update("disableAll", {checked: request.disableAll});
|
||||
break;
|
||||
case "prefChanged":
|
||||
if (request.prefName == "show-badge") {
|
||||
chrome.contextMenus.update("show-badge", {checked: request.value});
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -46,14 +54,37 @@ chrome.commands.onCommand.addListener(function(command) {
|
|||
openURL({url: chrome.extension.getURL("manage.html")});
|
||||
break;
|
||||
case "styleDisableAll":
|
||||
var newState = !prefs.getPref("disableAll");
|
||||
prefs.setPref("disableAll", newState);
|
||||
notifyAllTabs({method: "styleDisableAll", disableAll: newState});
|
||||
chrome.extension.sendMessage({method: "updatePopup", reason: "styleDisableAll", disableAll: newState});
|
||||
disableAllStylesToggle();
|
||||
chrome.contextMenus.update("disableAll", {checked: prefs.getPref("disableAll")});
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
chrome.contextMenus.create({
|
||||
id: "show-badge", title: chrome.i18n.getMessage("menuShowBadge"),
|
||||
type: "checkbox", contexts: ["browser_action"], checked: prefs.getPref("show-badge")
|
||||
});
|
||||
chrome.contextMenus.create({
|
||||
id: "disableAll", title: chrome.i18n.getMessage("disableAllStyles"),
|
||||
type: "checkbox", contexts: ["browser_action"], checked: prefs.getPref("disableAll")
|
||||
});
|
||||
chrome.contextMenus.onClicked.addListener(function(info, tab) {
|
||||
if (info.menuItemId == "disableAll") {
|
||||
disableAllStylesToggle(info.checked);
|
||||
} else {
|
||||
prefs.setPref(info.menuItemId, info.checked);
|
||||
}
|
||||
});
|
||||
|
||||
function disableAllStylesToggle(newState) {
|
||||
if (newState === undefined || newState === null) {
|
||||
newState = !prefs.getPref("disableAll");
|
||||
}
|
||||
prefs.setPref("disableAll", newState);
|
||||
notifyAllTabs({method: "styleDisableAll", disableAll: newState});
|
||||
chrome.extension.sendMessage({method: "updatePopup", reason: "styleDisableAll", disableAll: newState});
|
||||
}
|
||||
|
||||
function getStyles(options, callback) {
|
||||
|
||||
var enabled = fixBoolean(options.enabled);
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
"permissions": [
|
||||
"tabs",
|
||||
"webNavigation",
|
||||
"contextMenus",
|
||||
"http://userstyles.org/",
|
||||
"https://userstyles.org/"
|
||||
],
|
||||
|
|
|
@ -217,7 +217,9 @@ var prefs = {
|
|||
|
||||
var newValue = this.getPref(key);
|
||||
if (newValue !== oldValue) {
|
||||
notifyAllTabs({method: "prefChanged", prefName: key, value: value});
|
||||
var message = {method: "prefChanged", prefName: key, value: value};
|
||||
notifyAllTabs(message);
|
||||
chrome.extension.sendMessage(message);
|
||||
}
|
||||
},
|
||||
removePref: function(key) { setPref(key, undefined) }
|
||||
|
|
Loading…
Reference in New Issue
Block a user