diff --git a/core/constants.js b/core/constants.js index d732283f..c1d45d4c 100644 --- a/core/constants.js +++ b/core/constants.js @@ -75,7 +75,7 @@ const Setting = { 'STATISTIC_DATA': 'statisticData', 'NEGATE_HTML_FILTER_LIST': 'negateHtmlFilterList', 'BLOCK_GOOGLE_FONTS': 'blockGoogleFonts', - 'USE_MONOCHROME_ICONS': 'useMonochromeIcons' + 'SELECTED_ICON': 'selectedIcon' }; const WebRequest = { @@ -101,8 +101,8 @@ const BrowserType = { }; const IconType = { - 'Enabled': { - 'Green': { + 'Default': { + 'Enabled': { '16': chrome.runtime.getURL('icons/action/icon16-default.png'), '18': chrome.runtime.getURL('icons/action/icon18-default.png'), '19': chrome.runtime.getURL('icons/action/icon19-default.png'), @@ -111,18 +111,7 @@ const IconType = { '38': chrome.runtime.getURL('icons/action/icon38-default.png'), '64': chrome.runtime.getURL('icons/action/icon64-default.png') }, - 'White': { - '16': chrome.runtime.getURL('icons/action/mono/icon16-default.png'), - '18': chrome.runtime.getURL('icons/action/mono/icon18-default.png'), - '19': chrome.runtime.getURL('icons/action/mono/icon19-default.png'), - '32': chrome.runtime.getURL('icons/action/mono/icon32-default.png'), - '36': chrome.runtime.getURL('icons/action/mono/icon36-default.png'), - '38': chrome.runtime.getURL('icons/action/mono/icon38-default.png'), - '64': chrome.runtime.getURL('icons/action/mono/icon64-default.png') - } - }, - 'Disabled': { - 'Red': { + 'Disabled': { '16': chrome.runtime.getURL('icons/action/icon16-disabled.png'), '18': chrome.runtime.getURL('icons/action/icon18-disabled.png'), '19': chrome.runtime.getURL('icons/action/icon19-disabled.png'), @@ -130,8 +119,39 @@ const IconType = { '36': chrome.runtime.getURL('icons/action/icon36-disabled.png'), '38': chrome.runtime.getURL('icons/action/icon38-disabled.png'), '64': chrome.runtime.getURL('icons/action/icon64-disabled.png') + } + }, + 'Light': { + 'Enabled': { + '16': chrome.runtime.getURL('icons/action/brighter/icon16-default.png'), + '18': chrome.runtime.getURL('icons/action/brighter/icon18-default.png'), + '19': chrome.runtime.getURL('icons/action/brighter/icon19-default.png'), + '32': chrome.runtime.getURL('icons/action/brighter/icon32-default.png'), + '36': chrome.runtime.getURL('icons/action/brighter/icon36-default.png'), + '38': chrome.runtime.getURL('icons/action/brighter/icon38-default.png'), + '64': chrome.runtime.getURL('icons/action/brighter/icon64-default.png') }, - 'White': { + 'Disabled': { + '16': chrome.runtime.getURL('icons/action/brighter/icon16-disabled.png'), + '18': chrome.runtime.getURL('icons/action/brighter/icon18-disabled.png'), + '19': chrome.runtime.getURL('icons/action/brighter/icon19-disabled.png'), + '32': chrome.runtime.getURL('icons/action/brighter/icon32-disabled.png'), + '36': chrome.runtime.getURL('icons/action/brighter/icon36-disabled.png'), + '38': chrome.runtime.getURL('icons/action/brighter/icon38-disabled.png'), + '64': chrome.runtime.getURL('icons/action/brighter/icon64-disabled.png') + } + }, + 'Monochrome': { + 'Enabled': { + '16': chrome.runtime.getURL('icons/action/mono/icon16-default.png'), + '18': chrome.runtime.getURL('icons/action/mono/icon18-default.png'), + '19': chrome.runtime.getURL('icons/action/mono/icon19-default.png'), + '32': chrome.runtime.getURL('icons/action/mono/icon32-default.png'), + '36': chrome.runtime.getURL('icons/action/mono/icon36-default.png'), + '38': chrome.runtime.getURL('icons/action/mono/icon38-default.png'), + '64': chrome.runtime.getURL('icons/action/mono/icon64-default.png') + }, + 'Disabled': { '16': chrome.runtime.getURL('icons/action/mono/icon16-disabled.png'), '18': chrome.runtime.getURL('icons/action/mono/icon18-disabled.png'), '19': chrome.runtime.getURL('icons/action/mono/icon19-disabled.png'), diff --git a/core/main.js b/core/main.js index 44a4c438..68271a8d 100644 --- a/core/main.js +++ b/core/main.js @@ -43,7 +43,7 @@ main._initializeSettings = function () { [Setting.DOMAINS_MANIPULATE_DOM]: {}, [Setting.NEGATE_HTML_FILTER_LIST]: false, [Setting.BLOCK_GOOGLE_FONTS]: true, - [Setting.USE_MONOCHROME_ICONS]: false + [Setting.SELECTED_ICON]: 'Default' }; chrome.storage.sync.get(settingDefaults, function (items) { @@ -58,10 +58,10 @@ main._initializeSettings = function () { 'value': false }); } - stateManager.useMonochromeIcons = items.useMonochromeIcons; + stateManager.selectedIcon = items.selectedIcon; wrappers.setIcon({ - 'path': stateManager.useMonochromeIcons ? IconType.Enabled.White : IconType.Enabled.Green, - }); + 'path': stateManager.selectedIcon + }, 'Enabled'); chrome.storage.sync.set(items); }); diff --git a/core/state-manager.js b/core/state-manager.js index 3596b0dc..bec18593 100644 --- a/core/state-manager.js +++ b/core/state-manager.js @@ -212,8 +212,8 @@ stateManager._handleStorageChanged = function (changes) { if (Setting.NEGATE_HTML_FILTER_LIST in changes) { stateManager.getInvertOption = changes.negateHtmlFilterList.newValue; } - if (Setting.USE_MONOCHROME_ICONS in changes) { - stateManager.useMonochromeIcons = changes.useMonochromeIcons.newValue; + if (Setting.SELECTED_ICON in changes) { + stateManager.selectedIcon = changes.selectedIcon.newValue; } }; @@ -252,9 +252,9 @@ stateManager._domainIsListed = function (domain, listname) { stateManager._setIconDisabled = function (tabIdentifier) { wrappers.setIcon({ - 'path': stateManager.useMonochromeIcons ? IconType.Disabled.White : IconType.Disabled.Red, + 'path': stateManager.selectedIcon, 'tabId': tabIdentifier - }); + }, 'Disabled'); }; @@ -266,7 +266,7 @@ stateManager.requests = {}; stateManager.tabs = {}; stateManager.getInvertOption = false; stateManager.validHosts = []; -stateManager.useMonochromeIcons = false; +stateManager.selectedIcon = 'Default'; for (let mapping in mappings) { @@ -278,13 +278,16 @@ chrome.tabs.query({}, function (tabs) { tabs.forEach(stateManager._createTab); }); -chrome.storage.sync.get([Setting.SHOW_ICON_BADGE], function (items) { +chrome.storage.sync.get([Setting.SHOW_ICON_BADGE, Setting.SELECTED_ICON], function (items) { if (items.showIconBadge === undefined) { items.showIconBadge = true; } - + if (items.selectedIcon === undefined) { + stateManager.selectedIcon = 'Default'; + } stateManager.showIconBadge = items.showIconBadge; + stateManager.selectedIcon = items.selectedIcon; }); /** diff --git a/icons/action/brighter/icon128.png b/icons/action/brighter/icon128.png new file mode 100644 index 00000000..28d5e3cd Binary files /dev/null and b/icons/action/brighter/icon128.png differ diff --git a/icons/action/brighter/icon16-default.png b/icons/action/brighter/icon16-default.png new file mode 100644 index 00000000..c50f6846 Binary files /dev/null and b/icons/action/brighter/icon16-default.png differ diff --git a/icons/action/brighter/icon16-disabled.png b/icons/action/brighter/icon16-disabled.png new file mode 100644 index 00000000..bd5ffb4e Binary files /dev/null and b/icons/action/brighter/icon16-disabled.png differ diff --git a/icons/action/brighter/icon16.png b/icons/action/brighter/icon16.png new file mode 100644 index 00000000..f63b17fa Binary files /dev/null and b/icons/action/brighter/icon16.png differ diff --git a/icons/action/brighter/icon18-default.png b/icons/action/brighter/icon18-default.png new file mode 100644 index 00000000..4f54fb8f Binary files /dev/null and b/icons/action/brighter/icon18-default.png differ diff --git a/icons/action/brighter/icon18-disabled.png b/icons/action/brighter/icon18-disabled.png new file mode 100644 index 00000000..cb71c621 Binary files /dev/null and b/icons/action/brighter/icon18-disabled.png differ diff --git a/icons/action/brighter/icon19-default.png b/icons/action/brighter/icon19-default.png new file mode 100644 index 00000000..a143074e Binary files /dev/null and b/icons/action/brighter/icon19-default.png differ diff --git a/icons/action/brighter/icon19-disabled.png b/icons/action/brighter/icon19-disabled.png new file mode 100644 index 00000000..6c7af4a7 Binary files /dev/null and b/icons/action/brighter/icon19-disabled.png differ diff --git a/icons/action/brighter/icon32-default.png b/icons/action/brighter/icon32-default.png new file mode 100644 index 00000000..102f845c Binary files /dev/null and b/icons/action/brighter/icon32-default.png differ diff --git a/icons/action/brighter/icon32-disabled.png b/icons/action/brighter/icon32-disabled.png new file mode 100644 index 00000000..0c984d8c Binary files /dev/null and b/icons/action/brighter/icon32-disabled.png differ diff --git a/icons/action/brighter/icon36-default.png b/icons/action/brighter/icon36-default.png new file mode 100644 index 00000000..e7101a2a Binary files /dev/null and b/icons/action/brighter/icon36-default.png differ diff --git a/icons/action/brighter/icon36-disabled.png b/icons/action/brighter/icon36-disabled.png new file mode 100644 index 00000000..98607dc4 Binary files /dev/null and b/icons/action/brighter/icon36-disabled.png differ diff --git a/icons/action/brighter/icon38-default.png b/icons/action/brighter/icon38-default.png new file mode 100644 index 00000000..42adb7b7 Binary files /dev/null and b/icons/action/brighter/icon38-default.png differ diff --git a/icons/action/brighter/icon38-disabled.png b/icons/action/brighter/icon38-disabled.png new file mode 100644 index 00000000..c3599953 Binary files /dev/null and b/icons/action/brighter/icon38-disabled.png differ diff --git a/icons/action/brighter/icon48.png b/icons/action/brighter/icon48.png new file mode 100644 index 00000000..d8840224 Binary files /dev/null and b/icons/action/brighter/icon48.png differ diff --git a/icons/action/brighter/icon64-default.png b/icons/action/brighter/icon64-default.png new file mode 100644 index 00000000..f710535c Binary files /dev/null and b/icons/action/brighter/icon64-default.png differ diff --git a/icons/action/brighter/icon64-disabled.png b/icons/action/brighter/icon64-disabled.png new file mode 100644 index 00000000..8acf8233 Binary files /dev/null and b/icons/action/brighter/icon64-disabled.png differ diff --git a/icons/action/brighter/icon96.png b/icons/action/brighter/icon96.png new file mode 100644 index 00000000..39b34fa9 Binary files /dev/null and b/icons/action/brighter/icon96.png differ diff --git a/modules/internal/wrappers.js b/modules/internal/wrappers.js index 432ffda0..a50a637b 100644 --- a/modules/internal/wrappers.js +++ b/modules/internal/wrappers.js @@ -44,9 +44,10 @@ wrappers.setBadgeTextColor = function (details) { } }; -wrappers.setIcon = function (details) { +wrappers.setIcon = function (details, type) { if (chrome.browserAction.setIcon !== undefined) { + details.path = IconType[details.path][type]; chrome.browserAction.setIcon(details); } }; diff --git a/pages/options/options.html b/pages/options/options.html index 59597041..bf6ea134 100644 --- a/pages/options/options.html +++ b/pages/options/options.html @@ -102,15 +102,18 @@
If enabled, you wont receive any information about new features in LocalCDN. This includes information about new uBlock/uMatrix rules.
+ +
-
- -
- + +
Select extension icon style:
+ + +
@@ -170,7 +173,7 @@
Your preferred language is not yet fully supported. Please help out by translating this add-on on Weblate.
- + Translate
diff --git a/pages/options/options.js b/pages/options/options.js index 2ae80652..c7c57232 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -70,7 +70,7 @@ options._renderOptionsPanel = function () { elements.domainsManipulateDOM.value = domainHtmlFilter; elements.negateHtmlFilterList.checked = options._optionValues.negateHtmlFilterList; elements.blockGoogleFonts.checked = options._optionValues.blockGoogleFonts; - elements.useMonochromeIcons.checked = options._optionValues.useMonochromeIcons; + elements.selectedIcon.value = options._optionValues.selectedIcon; options._registerOptionChangedEventListeners(elements); options._registerMiscellaneousEventListeners(); @@ -131,7 +131,7 @@ options._registerOptionChangedEventListeners = function (elements) { elements.domainsManipulateDOM.addEventListener('keyup', options._onOptionChanged); elements.negateHtmlFilterList.addEventListener('change', options._onOptionChanged); elements.blockGoogleFonts.addEventListener('change', options._onOptionChanged); - elements.useMonochromeIcons.addEventListener('change', options._onOptionChanged); + elements.selectedIcon.addEventListener('change', options._onOptionChanged); let type = elements.ruleSets; for(let i = 0; i < type.length; i++) { type[i].addEventListener('change', options._openRuleSet); @@ -185,7 +185,7 @@ options._getOptionElements = function () { [Setting.NEGATE_HTML_FILTER_LIST]: options._getOptionElement(Setting.NEGATE_HTML_FILTER_LIST), [Setting.DOMAINS_MANIPULATE_DOM]: options._getOptionElement(Setting.DOMAINS_MANIPULATE_DOM), [Setting.BLOCK_GOOGLE_FONTS]: options._getOptionElement(Setting.BLOCK_GOOGLE_FONTS), - [Setting.USE_MONOCHROME_ICONS]: options._getOptionElement(Setting.USE_MONOCHROME_ICONS) + [Setting.SELECTED_ICON]: options._getOptionElement(Setting.SELECTED_ICON) }; return optionElements; @@ -293,10 +293,10 @@ options._onOptionChanged = function ({target}) { } } - if (optionKey === Setting.USE_MONOCHROME_ICONS) { + if (optionKey === Setting.SELECTED_ICON) { wrappers.setIcon({ - 'path': optionValue ? IconType.Enabled.White : IconType.Enabled.Green - }); + 'path': optionValue + }, 'Enabled'); } chrome.storage.sync.set({ diff --git a/pages/updates/updates.html b/pages/updates/updates.html index 78c235bd..0d153bdc 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -27,7 +27,7 @@
  • URLs updated (localcdn.de -> localcdn.org)
  • Fixed: Popup scrollbar of dark mode (reported by email)
  • Fixed: Wrong version selection of AngularUI Bootstrap (#50)
  • -
  • Implemented: Monochrome icons (#52)
  • +
  • Implemented: Different styles for extension icons (#52)
  • Fixed: Bootstrap JS v4.4.1 (#54)
  • Implemented: Collapsible changelog for previous versions(reported by email)