// Copyright (c) 2006-2008 by Martin Stubenschrott <stubenschrott@vimperator.org>
// Copyright (c) 2007-2011 by Doug Kearns <dougkearns@gmail.com>
-// Copyright (c) 2008-2011 by Kris Maglione <maglione.k@gmail.com>
+// Copyright (c) 2008-2012 Kris Maglione <maglione.k@gmail.com>
//
// This work is licensed for reuse under an MIT license. Details are
// given in the LICENSE.txt file included with this file.
-/* use strict */
+"use strict";
try {
-Components.utils.import("resource://dactyl/bootstrap.jsm");
defineModule("prefs", {
exports: ["Prefs", "localPrefs", "prefs"],
require: ["services", "util"]
-}, this);
+});
-this.lazyRequire("messages", ["_"]);
+lazyRequire("messages", ["_"]);
+lazyRequire("template", ["template"]);
var Prefs = Module("prefs", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), {
ORIGINAL: "extensions.dactyl.original.",
switch (type) {
case Ci.nsIPrefBranch.PREF_STRING:
let value = this.branch.getComplexValue(name, Ci.nsISupportsString).data;
- // try in case it's a localized string (will throw an exception if not)
- if (!this.branch.prefIsLocked(name) && !this.branch.prefHasUserValue(name) &&
- RegExp("chrome://.+/locale/.+\\.properties").test(value))
- value = this.branch.getComplexValue(name, Ci.nsIPrefLocalizedString).data;
+ try {
+ if (/^[a-z0-9-]+:/i.test(value))
+ value = this.branch.getComplexValue(name, Ci.nsIPrefLocalizedString).data;
+ }
+ catch (e) {}
return value;
case Ci.nsIPrefBranch.PREF_INT:
return this.branch.getIntPref(name);
let option = {
isDefault: !userValue,
default: this.defaults.get(pref, null),
- value: <>={template.highlight(value, true, 100)}</>,
+ value: ["", "=", template.highlight(value, true, 100)],
name: pref,
pre: "\u00a0\u00a0" // Unicode nonbreaking space.
};