From 225f1ebde9ee5a45d0d1b6184b4b62996b24d5f7 Mon Sep 17 00:00:00 2001 From: Anton Khodakivskiy Date: Sun, 4 May 2014 22:51:32 -0700 Subject: [PATCH] Fixed default properties --- extension/bootstrap.coffee | 5 +++- extension/defaults/preferences/defaults.js | 4 ++-- extension/packages/events.coffee | 8 ++++--- extension/packages/prefs.coffee | 28 +++++++++++++++++----- extension/packages/utils.coffee | 2 +- 5 files changed, 34 insertions(+), 13 deletions(-) diff --git a/extension/bootstrap.coffee b/extension/bootstrap.coffee index 5c08d24..da99db6 100644 --- a/extension/bootstrap.coffee +++ b/extension/bootstrap.coffee @@ -42,13 +42,16 @@ do (global = this) -> { loadCss } = require 'utils' { addEventListeners , vimBucket } = require 'events' - { getPref } = require 'prefs' + { getPref + , setDefaultPrefs } = require 'prefs' { setButtonInstallPosition , addToolbarButton } = require 'button' options = require 'options' { watchWindows } = require 'window-utils' { unload } = require 'unload' + setDefaultPrefs() + if reason == ADDON_INSTALL # Position the toolbar button right before the default Bookmarks button # If Bookmarks button is hidden - then VimFx button will be appended to the toolbar diff --git a/extension/defaults/preferences/defaults.js b/extension/defaults/preferences/defaults.js index 42eabb5..05deee5 100644 --- a/extension/defaults/preferences/defaults.js +++ b/extension/defaults/preferences/defaults.js @@ -1,6 +1,6 @@ pref('extensions.VimFx.hint_chars', 'fjdkslaghrueiwovncm'); -pref('extensions.VimFx.prev_patterns', 'prev,previous,‹,«,◀,←,<<,<,back,older'); -pref('extensions.VimFx.next_patterns', 'next,›,»,▶,→,>>,>,more,newer'); +pref('extensions.VimFx.prev_patterns', 'prev,previous,‹,«,◀,←,<<,<,back,newer'); +pref('extensions.VimFx.next_patterns', 'next,›,»,▶,→,>>,>,more,older'); pref('extensions.VimFx.scroll_step_lines', 6); pref('extensions.VimFx.black_list', '*example.com*'); pref('extensions.VimFx.hints_bloom_data', ''); diff --git a/extension/packages/events.coffee b/extension/packages/events.coffee index 1fe2c25..f08e9f3 100644 --- a/extension/packages/events.coffee +++ b/extension/packages/events.coffee @@ -87,7 +87,7 @@ windowsListeners = popupshown: checkPassthrough popuphidden: checkPassthrough - + focus: (event) -> return if getPref('disabled') or getPref('prevent_autofocus') return unless target = event.originalTarget @@ -118,12 +118,14 @@ windowsListeners = # When the top level window closes we should release all Vims that were # associated with tabs in this window DOMWindowClose: (event) -> - return unless { gBrowser } = event.originalTarget + { gBrowser } = event.originalTarget + return unless gBrowser for tab in gBrowser.tabs removeVimFromTab(tab, gBrowser) TabClose: (event) -> - return unless { gBrowser } = utils.getEventRootWindow(event) ? {} + { gBrowser } = utils.getEventRootWindow(event) ? {} + return unless gBrowser tab = event.originalTarget removeVimFromTab(tab, gBrowser) diff --git a/extension/packages/prefs.coffee b/extension/packages/prefs.coffee index 076bff3..8455976 100644 --- a/extension/packages/prefs.coffee +++ b/extension/packages/prefs.coffee @@ -3,8 +3,9 @@ { unload } = require 'unload' PREF_BRANCH = 'extensions.VimFx.' +DEFAULT_PREFS_FILE = 'defaults/preferences/defaults.js' -# Default values for preferences are now specified in +# Default values for preferences are now specified in # defaults/preferences/defaults.js getBranchPref = (branch, key, defaultValue) -> @@ -50,11 +51,7 @@ getFirefoxPref = do -> return (key, defaultValue = undefined) -> return getBranchPref(branch, key, defaultValue) -# Assign and save Firefox preference value -setPref = do -> - prefs = Cc['@mozilla.org/preferences-service;1'].getService(Ci.nsIPrefService) - branch = prefs.getBranch(PREF_BRANCH) - +makePrefSetter = (branch) -> return (key, value) -> switch typeof value when 'boolean' @@ -66,8 +63,27 @@ setPref = do -> else branch.clearUserPref(key) +# Assign and save Firefox preference value +setPref = do -> + prefs = Cc['@mozilla.org/preferences-service;1'].getService(Ci.nsIPrefService) + return makePrefSetter(prefs.getBranch(PREF_BRANCH)) + +setDefaultPrefs = -> + scriptLoader = Cc['@mozilla.org/moz/jssubscript-loader;1'].getService(Ci.mozIJSSubScriptLoader) + ioService = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService) + prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService) + + baseUri = ioService.newURI(__SCRIPT_URI_SPEC__, null, null) + uri = ioService.newURI(DEFAULT_PREFS_FILE, null, baseUri) + + if uri.QueryInterface(Ci.nsIFileURL).file.exists() + branch = prefs.getDefaultBranch("") + scope = { pref: makePrefSetter(branch) } + scriptLoader.loadSubScript(uri.spec, scope) + exports.isPrefSet = isPrefSet exports.getPref = getPref exports.getComplexPref = getComplexPref exports.getFirefoxPref = getFirefoxPref exports.setPref = setPref +exports.setDefaultPrefs = setDefaultPrefs diff --git a/extension/packages/utils.coffee b/extension/packages/utils.coffee index 1f74a07..ea2c58b 100644 --- a/extension/packages/utils.coffee +++ b/extension/packages/utils.coffee @@ -324,7 +324,7 @@ browserSearchSubmission = (str) -> getHintChars = -> hintChars = getPref('hint_chars') # Make sure that hint chars contain at least two characters - if hintChars.length < 2 + if !hintChars or hintChars.length < 2 hintChars = 'fj' return removeDuplicateCharacters(hintChars) -- 2.39.3