]> git.gir.st - VimFx.git/blob - extension/packages/prefs.coffee
Closes #39. Checkboxes are added to the Help Dialog allowing users to disable certain...
[VimFx.git] / extension / packages / prefs.coffee
1 { classes: Cc, interfaces: Ci } = Components
2
3 PREF_BRANCH = "extensions.VimFx.";
4
5 # Default values for the preference
6 # All used preferences should be mentioned here becuase
7 # preference type is derived from here
8 DEFAULT_PREF_VALUES =
9 addon_id: 'VimFx@akhodakivskiy.github.com'
10 hint_chars: 'asdfgercvhjkl;uinm'
11 disabled: false
12 scroll_step: 60
13 scroll_time: 100
14 black_list: '*mail.google.com*'
15 blur_on_esc: true
16
17 getPref = do ->
18 branch = Services.prefs.getBranch PREF_BRANCH
19
20 return (key, defaultValue=undefined) ->
21 type = branch.getPrefType(key)
22
23 switch type
24 when branch.PREF_BOOL
25 return branch.getBoolPref key
26 when branch.PREF_INT
27 return branch.getIntPref key
28 when branch.PREF_STRING
29 return branch.getCharPref key
30 else
31 if defaultValue != undefined
32 return defaultValue
33 else
34 return DEFAULT_PREF_VALUES[key];
35
36 # Assign and save Firefox preference value
37 setPref = do ->
38 branch = Services.prefs.getBranch PREF_BRANCH
39
40 return (key, value) ->
41 switch typeof value
42 when 'boolean'
43 branch.setBoolPref(key, value)
44 when 'number'
45 branch.setIntPref(key, value)
46 when 'string'
47 branch.setCharPref(key, value);
48 else
49 branch.clearUserPref(key);
50
51
52 # Transfer all setting values from one branch to another
53 transferPrefs = (from, to) ->
54 fromBranch = Services.prefs.getBranch from
55 toBranch = Services.prefs.getBranch to
56
57 count = {}
58 vals = fromBranch.getChildList("", count)
59
60 for i in [0...count.value]
61 name = vals[i]
62 switch fromBranch.getPrefType name
63 when fromBranch.PREF_STRING
64 toBranch.setCharPref name, fromBranch.getCharPref name
65 when fromBranch.PREF_INT
66 toBranch.setIntPref name, fromBranch.getIntPref name
67 when fromBranch.PREF_BOOL
68 toBranch.setBoolPref name, fromBranch.getBoolPref name
69
70 fromBranch.deleteBranch("")
71
72 # Checks if given command is disabled in the preferences
73 isCommandDisabled = (key) ->
74 return getPref("disabled_commands", "").indexOf(key) > -1
75
76 # Adds command to the disabled list
77 disableCommand = (key) ->
78 dc = getPref("disabled_commands", "").split("||")
79 dc.push key
80 setPref "disabled_commands", dc.join("||")
81
82 # Enables command
83 enableCommand = (key) ->
84 dc = getPref("disabled_commands", "").split("||")
85 while (index = dc.indexOf(key)) > -1
86 dc.splice(index, 1)
87 setPref "disabled_commands", dc.join("||")
88
89 exports.getPref = getPref
90 exports.setPref = setPref
91 exports.transferPrefs = transferPrefs
92 exports.isCommandDisabled = isCommandDisabled
93 exports.disableCommand = disableCommand
94 exports.enableCommand = enableCommand
Imprint / Impressum