diff --git a/common/components/protocols.js b/common/components/protocols.js index 2a0c5052..aecd1bb8 100644 --- a/common/components/protocols.js +++ b/common/components/protocols.js @@ -29,10 +29,8 @@ const systemPrincipal = channel.owner; channel.cancel(NS_BINDING_ABORTED); delete channel; -function dataURL(type, data) - "data:" + (type || "application/xml;encoding=UTF-8") + "," + escape(data); -function makeChannel(url, orig) -{ +function dataURL(type, data) "data:" + (type || "application/xml;encoding=UTF-8") + "," + escape(data); +function makeChannel(url, orig) { if (typeof url == "function") url = dataURL.apply(null, url()); let uri = ioService.newURI(url, null, null); @@ -41,10 +39,8 @@ function makeChannel(url, orig) channel.originalURI = orig; return channel; } -function fakeChannel(orig) - makeChannel("chrome://liberator/content/does/not/exist", orig); -function redirect(to, orig) -{ +function fakeChannel(orig) makeChannel("chrome://liberator/content/does/not/exist", orig); +function redirect(to, orig) { let html = .toXMLString(); return makeChannel(dataURL('text/html', html), ioServices.newURI(to, null, null)); } @@ -56,8 +52,7 @@ ChromeData.prototype = { classDescription: "Data URIs with chrome privileges", QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIProtocolHandler]), _xpcom_factory: { - createInstance: function (outer, iid) - { + createInstance: function (outer, iid) { if (!ChromeData.instance) ChromeData.instance = new ChromeData(); if (outer != null) @@ -73,8 +68,7 @@ ChromeData.prototype = { | nsIProtocolHandler.URI_NOAUTH | nsIProtocolHandler.URI_IS_UI_RESOURCE, - newURI: function (spec, charset, baseURI) - { + newURI: function (spec, charset, baseURI) { var uri = Components.classes["@mozilla.org/network/standard-url;1"] .createInstance(Components.interfaces.nsIStandardURL) .QueryInterface(Components.interfaces.nsIURI); @@ -82,10 +76,8 @@ ChromeData.prototype = { return uri; }, - newChannel: function (uri) - { - try - { + newChannel: function (uri) { + try { if (uri.scheme == this.scheme) return makeChannel(uri.spec.replace(/^.*?:\/*(.*)(?:#.*)?/, "data:$1"), uri); } @@ -94,8 +86,7 @@ ChromeData.prototype = { } }; -function Liberator() -{ +function Liberator() { this.wrappedJSObject = this; const self = this; @@ -109,8 +100,7 @@ Liberator.prototype = { classDescription: "Liberator utility protocol", QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIProtocolHandler]), _xpcom_factory: { - createInstance: function (outer, iid) - { + createInstance: function (outer, iid) { if (!Liberator.instance) Liberator.instance = new Liberator(); if (outer != null) @@ -119,10 +109,8 @@ Liberator.prototype = { } }, - init: function (obj) - { - for each (let prop in ["HELP_TAGS", "FILE_MAP", "OVERLAY_MAP"]) - { + init: function (obj) { + for each (let prop in ["HELP_TAGS", "FILE_MAP", "OVERLAY_MAP"]) { this[prop] = this[prop].constructor(); for (let [k, v] in Iterator(obj[prop] || {})) this[prop][k] = v @@ -136,8 +124,7 @@ Liberator.prototype = { | nsIProtocolHandler.URI_IS_UI_RESOURCE | nsIProtocolHandler.URI_IS_LOCAL_RESOURCE, - newURI: function (spec, charset, baseURI) - { + newURI: function (spec, charset, baseURI) { var uri = Components.classes["@mozilla.org/network/standard-url;1"] .createInstance(Components.interfaces.nsIStandardURL) .QueryInterface(Components.interfaces.nsIURI); @@ -145,12 +132,9 @@ Liberator.prototype = { return uri; }, - newChannel: function (uri) - { - try - { - switch(uri.host) - { + newChannel: function (uri) { + try { + switch(uri.host) { case "help": let url = this.FILE_MAP[uri.path.replace(/^\/|#.*/g, "")]; return makeChannel(url, uri); @@ -170,9 +154,6 @@ Liberator.prototype = { var components = [ChromeData, Liberator]; -function NSGetModule(compMgr, fileSpec) -{ - return XPCOMUtils.generateModule(components); -} +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule(components) // vim: set fdm=marker sw=4 ts=4 et: diff --git a/common/content/buffer.js b/common/content/buffer.js index 30dbdfcf..c08a42e1 100644 --- a/common/content/buffer.js +++ b/common/content/buffer.js @@ -355,10 +355,8 @@ const Buffer = Module("buffer", { for (let [, regex] in Iterator(regexes)) { for (let i in util.range(res.snapshotLength, 0, -1)) { let elem = res.snapshotItem(i); - if (regex.test(elem.textContent) || - regex.test(elem.title) || - Array.some(elem.childNodes, function (child) regex.test(child.alt))) - { + if (regex.test(elem.textContent) || regex.test(elem.title) || + Array.some(elem.childNodes, function (child) regex.test(child.alt))) { buffer.followLink(elem, liberator.CURRENT_TAB); return true; } diff --git a/common/content/style.js b/common/content/style.js index 121c15ef..d6374a15 100644 --- a/common/content/style.js +++ b/common/content/style.js @@ -321,16 +321,15 @@ function Highlights(name, store) { this.loadCSS = function (css) { css.replace(/^(\s*\S*\s+)\{((?:.|\n)*?)\}\s*$/gm, function (_, _1, _2) _1 + " " + _2.replace(/\n\s*/g, " ")) .split("\n").filter(function (s) /\S/.test(s)) - .forEach(function (style) - { - style = Highlight.apply(Highlight, Array.slice(style.match(/^\s*((?:[^,\s]|\s\S)+)(?:,((?:[^,\s]|\s\S)+)?)?(?:,((?:[^,\s]|\s\S)+))?\s*(.*)$/), 1)); - if (/^[>+ ]/.test(style.selector)) - style.selector = self.selector(style.class) + style.selector; + .forEach(function (style) { + style = Highlight.apply(Highlight, Array.slice(style.match(/^\s*((?:[^,\s]|\s\S)+)(?:,((?:[^,\s]|\s\S)+)?)?(?:,((?:[^,\s]|\s\S)+))?\s*(.*)$/), 1)); + if (/^[>+ ]/.test(style.selector)) + style.selector = self.selector(style.class) + style.selector; - let old = highlight[style.class]; - highlight[style.class] = style; - if (old && old.value != old.default) - style.value = old.value; + let old = highlight[style.class]; + highlight[style.class] = style; + if (old && old.value != old.default) + style.value = old.value; }); for (let [class, hl] in Iterator(highlight)) { if (hl.value == hl.default) diff --git a/common/content/tabs.js b/common/content/tabs.js index c81701df..5e37959f 100644 --- a/common/content/tabs.js +++ b/common/content/tabs.js @@ -227,9 +227,7 @@ const Tabs = Module("tabs", { if (getBrowser().mTabs.length > 1) getBrowser().removeTab(tab); else { - if (buffer.URL != "about:blank" || - window.getWebNavigation().sessionHistory.count > 0) - { + if (buffer.URL != "about:blank" || window.getWebNavigation().sessionHistory.count > 0) { liberator.open("about:blank", liberator.NEW_BACKGROUND_TAB); getBrowser().removeTab(tab); } diff --git a/common/modules/commandline-handler.jsm b/common/modules/commandline-handler.jsm index 523bb70d..87c7529f 100644 --- a/common/modules/commandline-handler.jsm +++ b/common/modules/commandline-handler.jsm @@ -9,8 +9,7 @@ var CommandLineHandler; function initCommandLineHandler(Name) { var name = Name.toLowerCase(); - CommandLineHandler = function CommandLineHandler() - { + CommandLineHandler = function CommandLineHandler() { this.wrappedJSObject = this; } CommandLineHandler.prototype = { @@ -28,21 +27,18 @@ function initCommandLineHandler(Name) { QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]), - handle: function (commandLine) - { + handle: function (commandLine) { // TODO: handle remote launches differently? - try - { + try { this.optionValue = commandLine.handleFlagWithParam(name, false); } - catch (e) - { + catch (e) { //"vimperator: option -vimperator requires an argument" } } }; } -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]) // vim: set ft=javascript fdm=marker sw=4 ts=4 et: diff --git a/common/modules/storage.jsm b/common/modules/storage.jsm index dc72ca95..ea93e7d0 100644 --- a/common/modules/storage.jsm +++ b/common/modules/storage.jsm @@ -27,29 +27,24 @@ const Ci = Components.interfaces; const Cu = Components.utils; // XXX: does not belong here -function Timer(minInterval, maxInterval, callback) -{ +function Timer(minInterval, maxInterval, callback) { let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); this.doneAt = 0; this.latest = 0; - this.notify = function (aTimer) - { + this.notify = function (aTimer) { timer.cancel(); this.latest = 0; // minInterval is the time between the completion of the command and the next firing this.doneAt = Date.now() + minInterval; - try - { + try { callback(this.arg); } - finally - { + finally { this.doneAt = Date.now() + minInterval; } }; - this.tell = function (arg) - { + this.tell = function (arg) { if (arguments.length > 0) this.arg = arg; @@ -68,32 +63,27 @@ function Timer(minInterval, maxInterval, callback) timer.initWithCallback(this, Math.max(timeout, 0), timer.TYPE_ONE_SHOT); this.doneAt = -1; }; - this.reset = function () - { + this.reset = function () { timer.cancel(); this.doneAt = 0; }; - this.flush = function () - { + this.flush = function () { if (this.doneAt == -1) this.notify(); }; } -function getFile(name) -{ +function getFile(name) { let file = storage.infoPath.clone(); file.append(name); return file; } -function readFile(file) -{ +function readFile(file) { let fileStream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); let stream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream); - try - { + try { fileStream.init(file, -1, 0, 0); stream.init(fileStream, "UTF-8", 4096, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); // 4096 bytes buffering @@ -110,8 +100,7 @@ function readFile(file) catch (e) {} } -function writeFile(file, data) -{ +function writeFile(file, data) { if (!file.exists()) file.create(file.NORMAL_FILE_TYPE, 0600); @@ -132,34 +121,28 @@ var prefService = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPref .getBranch("extensions.liberator.datastore."); var json = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); -function getCharPref(name) -{ - try - { +function getCharPref(name) { + try { return prefService.getComplexValue(name, Ci.nsISupportsString).data; } catch (e) {} } -function setCharPref(name, value) -{ +function setCharPref(name, value) { var str = Cc['@mozilla.org/supports-string;1'].createInstance(Ci.nsISupportsString); str.data = value; return prefService.setComplexValue(name, Ci.nsISupportsString, str); } -function loadPref(name, store, type) -{ - try - { +function loadPref(name, store, type) { + try { if (store) var pref = getCharPref(name); if (!pref && storage.infoPath) var file = readFile(getFile(name)); if (pref || file) var result = json.decode(pref || file); - if (pref) - { + if (pref) { prefService.clearUserPref(name); savePref({ name: name, store: true, serial: pref }); } @@ -169,8 +152,7 @@ function loadPref(name, store, type) catch (e) {} } -function savePref(obj) -{ +function savePref(obj) { if (obj.privateData && storage.privateMode) return; if (obj.store && storage.infoPath) @@ -181,8 +163,7 @@ var prototype = { OPTIONS: ["privateData"], fireEvent: function (event, arg) { storage.fireEvent(this.name, event, arg); }, save: function () { savePref(this); }, - init: function (name, store, data, options) - { + init: function (name, store, data, options) { this.__defineGetter__("store", function () store); this.__defineGetter__("name", function () name); for (let [k, v] in Iterator(options)) @@ -192,12 +173,10 @@ var prototype = { } }; -function ObjectStore(name, store, load, options) -{ +function ObjectStore(name, store, load, options) { var object = {}; - this.reload = function reload() - { + this.reload = function reload() { object = load() || {}; this.fireEvent("change", null); }; @@ -205,8 +184,7 @@ function ObjectStore(name, store, load, options) this.init.apply(this, arguments); this.__defineGetter__("serial", function () json.encode(object)); - this.set = function set(key, val) - { + this.set = function set(key, val) { var defined = key in object; var orig = object[key]; object[key] = val; @@ -216,8 +194,7 @@ function ObjectStore(name, store, load, options) this.fireEvent("change", key); }; - this.remove = function remove(key) - { + this.remove = function remove(key) { var ret = object[key]; delete object[key]; this.fireEvent("remove", key); @@ -226,8 +203,7 @@ function ObjectStore(name, store, load, options) this.get = function get(val) object[val]; - this.clear = function () - { + this.clear = function () { object = {}; }; @@ -235,12 +211,10 @@ function ObjectStore(name, store, load, options) } ObjectStore.prototype = prototype; -function ArrayStore(name, store, load, options) -{ +function ArrayStore(name, store, load, options) { var array = []; - this.reload = function reload() - { + this.reload = function reload() { array = load() || []; this.fireEvent("change", null); }; @@ -249,31 +223,26 @@ function ArrayStore(name, store, load, options) this.__defineGetter__("serial", function () json.encode(array)); this.__defineGetter__("length", function () array.length); - this.set = function set(index, value) - { + this.set = function set(index, value) { var orig = array[index]; array[index] = value; this.fireEvent("change", index); }; - this.push = function push(value) - { + this.push = function push(value) { array.push(value); this.fireEvent("push", array.length); }; - this.pop = function pop(value) - { + this.pop = function pop(value) { var ret = array.pop(); this.fireEvent("pop", array.length); return ret; }; - this.truncate = function truncate(length, fromEnd) - { + this.truncate = function truncate(length, fromEnd) { var ret = array.length; - if (array.length > length) - { + if (array.length > length) { if (fromEnd) array.splice(0, array.length - length); array.length = length; @@ -283,16 +252,14 @@ function ArrayStore(name, store, load, options) }; // XXX: Awkward. - this.mutate = function mutate(aFuncName) - { + this.mutate = function mutate(aFuncName) { var funcName = aFuncName; arguments[0] = array; array = Array[funcName].apply(Array, arguments); this.fireEvent("change", null); }; - this.get = function get(index) - { + this.get = function get(index) { return index >= 0 ? array[index] : array[array.length + index]; }; @@ -306,10 +273,8 @@ var timers = {}; var storage = { alwaysReload: {}, - newObject: function newObject(key, constructor, params) - { - if (!(key in keys) || params.reload || this.alwaysReload[key]) - { + newObject: function newObject(key, constructor, params) { + if (!(key in keys) || params.reload || this.alwaysReload[key]) { if (key in this && !(params.reload || this.alwaysReload[key])) throw Error(); let load = function () loadPref(key, params.store, params.type || Object); @@ -320,27 +285,22 @@ var storage = { return keys[key]; }, - newMap: function newMap(key, options) - { + newMap: function newMap(key, options) { return this.newObject(key, ObjectStore, options); }, - newArray: function newArray(key, options) - { + newArray: function newArray(key, options) { return this.newObject(key, ArrayStore, { type: Array, __proto__: options }); }, - addObserver: function addObserver(key, callback, ref) - { - if (ref) - { + addObserver: function addObserver(key, callback, ref) { + if (ref) { if (!ref.liberatorStorageRefs) ref.liberatorStorageRefs = []; ref.liberatorStorageRefs.push(callback); var callbackRef = Cu.getWeakReference(callback); } - else - { + else { callbackRef = { get: function () callback }; } this.removeDeadObservers(); @@ -350,8 +310,7 @@ var storage = { observers[key].push({ ref: ref && Cu.getWeakReference(ref), callback: callbackRef }); }, - removeObserver: function (key, callback) - { + removeObserver: function (key, callback) { this.removeDeadObservers(); if (!(key in observers)) return; @@ -360,10 +319,8 @@ var storage = { delete obsevers[key]; }, - removeDeadObservers: function () - { - for (let [key, ary] in Iterator(observers)) - { + removeDeadObservers: function () { + for (let [key, ary] in Iterator(observers)) { observers[key] = ary = ary.filter(function (o) o.callback.get() && (!o.ref || o.ref.get() && o.ref.get().liberatorStorageRefs)); if (!ary.length) delete observers[key]; @@ -372,8 +329,7 @@ var storage = { get observers() observers, - fireEvent: function fireEvent(key, event, arg) - { + fireEvent: function fireEvent(key, event, arg) { if (!(key in this)) return; this.removeDeadObservers(); @@ -383,27 +339,23 @@ var storage = { timers[key].tell(); }, - load: function load(key) - { + load: function load(key) { if (this[key].store && this[key].reload) this[key].reload(); }, - save: function save(key) - { + save: function save(key) { savePref(keys[key]); }, - saveAll: function storeAll() - { + saveAll: function storeAll() { for each (let obj in keys) savePref(obj); }, _privateMode: false, get privateMode() this._privateMode, - set privateMode(val) - { + set privateMode(val) { if (!val && this._privateMode) for (let key in keys) this.load(key); diff --git a/muttator/components/about-handler.js b/muttator/components/about-handler.js index d5dcba2b..b7263a89 100644 --- a/muttator/components/about-handler.js +++ b/muttator/components/about-handler.js @@ -25,19 +25,16 @@ AboutHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]), - newChannel: function (uri) - { + newChannel: function (uri) { let channel = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService) .newChannel("chrome://" + name + "/content/about.html", null, null); - channel.originalURI = uri; - return channel; }, getURIFlags: function (uri) Ci.nsIAboutModule.ALLOW_SCRIPT, }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]) // vim: set fdm=marker sw=4 ts=4 et: diff --git a/muttator/components/commandline-handler.js b/muttator/components/commandline-handler.js index 511ee8d4..5385dd7b 100644 --- a/muttator/components/commandline-handler.js +++ b/muttator/components/commandline-handler.js @@ -11,8 +11,7 @@ const Name = "Muttator"; Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); const name = Name.toLowerCase(); -function CommandLineHandler() -{ +function CommandLineHandler() { this.wrappedJSObject = this; } CommandLineHandler.prototype = { @@ -30,20 +29,17 @@ CommandLineHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]), - handle: function (commandLine) - { + handle: function (commandLine) { // TODO: handle remote launches differently? - try - { + try { this.optionValue = commandLine.handleFlagWithParam(name, false); } - catch (e) - { + catch (e) { //"vimperator: option -vimperator requires an argument" } } }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]) // vim: set ft=javascript fdm=marker sw=4 ts=4 et: diff --git a/muttator/content/addressbook.js b/muttator/content/addressbook.js index 0b461798..96c48183 100644 --- a/muttator/content/addressbook.js +++ b/muttator/content/addressbook.js @@ -3,8 +3,7 @@ // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. -function Addressbook() //{{{ -{ +function Addressbook() { //{{{ //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -14,8 +13,7 @@ function Addressbook() //{{{ // TODO: add option for a format specifier, like: // :set displayname=%l, %f - function generateDisplayName(firstName, lastName) - { + function generateDisplayName(firstName, lastName) { if (firstName && lastName) return lastName + ", " + firstName; else if (firstName) @@ -40,14 +38,11 @@ function Addressbook() //{{{ mappings.add(myModes, ["a"], "Open a prompt to save a new addressbook entry for the sender of the selected message", - function () - { - try - { + function () { + try { var to = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor; } - catch (e) - { + catch (e) { liberator.beep(); } @@ -57,8 +52,7 @@ function Addressbook() //{{{ let address = to.substring(to.indexOf("<") + 1, to.indexOf(">")); let displayName = to.substr(0, to.indexOf("<") - 1); - if (/^\S+\s+\S+\s*$/.test(displayName)) - { + if (/^\S+\s+\S+\s*$/.test(displayName)) { let names = displayName.split(/\s+/); displayName = "-firstname=" + names[0].replace(/"/g, "") + " -lastname=" + names[1].replace(/"/g, ""); @@ -75,8 +69,7 @@ function Addressbook() //{{{ commands.add(["con[tact]"], "Add an address book entry", - function (args) - { + function (args) { let mailAddr = args[0]; // TODO: support more than one email address let firstName = args["-firstname"] || null; let lastName = args["-lastname"] || null; @@ -108,8 +101,7 @@ function Addressbook() //{{{ return { - add: function (address, firstName, lastName, displayName) - { + add: function (address, firstName, lastName, displayName) { const personalAddressbookURI = "moz-abmdbdirectory://abook.mab"; let directory = getDirectoryFromURI(personalAddressbookURI); let card = Cc["@mozilla.org/addressbook/cardproperty;1"].createInstance(Ci.nsIAbCard); @@ -126,18 +118,15 @@ function Addressbook() //{{{ }, // TODO: add telephone number support - list: function (filter, newMail) - { + list: function (filter, newMail) { let addresses = []; let dirs = abManager.directories; let lowerFilter = filter.toLowerCase(); - while (dirs.hasMoreElements()) - { + while (dirs.hasMoreElements()) { let addrbook = dirs.getNext().QueryInterface(Ci.nsIAbDirectory); let cards = addrbook.childCards; - while (cards.hasMoreElements()) - { + while (cards.hasMoreElements()) { let card = cards.getNext().QueryInterface(Ci.nsIAbCard); //var mail = card.primaryEmail || ""; //XXX let displayName = card.displayName; @@ -150,8 +139,7 @@ function Addressbook() //{{{ } } - if (addresses.length < 1) - { + if (addresses.length < 1) { if (!filter) liberator.echoerr("Exxx: No contacts", commandline.FORCE_SINGLELINE); else @@ -159,8 +147,7 @@ function Addressbook() //{{{ return false; } - if (newMail) - { + if (newMail) { // Now we have to create a new message let args = {}; args.to = addresses.map( @@ -169,8 +156,7 @@ function Addressbook() //{{{ mail.composeNewMail(args); } - else - { + else { let list = template.tabular(["Name", "Address"], [], [[util.clip(address[0], 50), address[1]] for ([, address] in Iterator(addresses))] ); diff --git a/muttator/content/compose/compose.js b/muttator/content/compose/compose.js index a62a865d..ff73971f 100644 --- a/muttator/content/compose/compose.js +++ b/muttator/content/compose/compose.js @@ -3,8 +3,7 @@ // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. -function Compose() //{{{ -{ +function Compose() { //{{{ //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -12,19 +11,16 @@ function Compose() //{{{ config.features = ["addressbook"]; // the composer has no special features var stateListener = { - QueryInterface: function (id) - { + QueryInterface: function (id) { if (id.equals(Ci.nsIDocumentStateListener)) return this; throw Cr.NS_NOINTERFACE; }, // this is (also) fired once the new compose window loaded the message for the first time - NotifyDocumentStateChanged: function (nowDirty) - { + NotifyDocumentStateChanged: function (nowDirty) { // only edit with external editor if this window was not cached! - if (options["autoexternal"] && !window.messageWasEditedExternally/* && !gMsgCompose.recycledWindow*/) - { + if (options["autoexternal"] && !window.messageWasEditedExternally/* && !gMsgCompose.recycledWindow*/) { window.messageWasEditedExternally = true; editor.editFieldExternally(); } @@ -36,8 +32,7 @@ function Compose() //{{{ // XXX: Hack! window.document.addEventListener("load", function () { - if (window.messageWasEditedExternally === undefined) - { + if (window.messageWasEditedExternally === undefined) { window.messageWasEditedExternally = false; GetCurrentEditor().addDocumentStateListener(stateListener); } diff --git a/muttator/content/config.js b/muttator/content/config.js index f10c5d8c..61744c8d 100644 --- a/muttator/content/config.js +++ b/muttator/content/config.js @@ -3,8 +3,7 @@ // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. -const config = (function () //{{{ -{ +const config = (function () { //{{{ //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -101,11 +100,9 @@ const config = (function () //{{{ function () { buffer.viewSelectionSource(); }]*/ ], - focusChange: function (win) - { + focusChange: function (win) { // we switch to -- MESSAGE -- mode for Muttator, when the main HTML widget gets focus - if (win && win.document instanceof HTMLDocument || liberator.focus instanceof HTMLAnchorElement) - { + if (win && win.document instanceof HTMLDocument || liberator.focus instanceof HTMLAnchorElement) { if (config.isComposeWindow) modes.set(modes.INSERT, modes.TEXTAREA); else if (liberator.mode != modes.MESSAGE) @@ -114,8 +111,7 @@ const config = (function () //{{{ }, getBrowser: function () { - if (!tabmail) - { + if (!tabmail) { tabmail = { __proto__: document.getElementById("tabmail") }; tabmail.__defineGetter__("mTabContainer", function () this.tabContainer); tabmail.__defineGetter__("mTabs", function () this.tabContainer.childNodes); @@ -145,10 +141,8 @@ const config = (function () //{{{ ], // NOTE: as I don't use TB I have no idea how robust this is. --djk - get outputHeight() - { - if (!this.isComposeWindow) - { + get outputHeight() { + if (!this.isComposeWindow) { let container = document.getElementById("tabpanelcontainer").boxObject; let deck = document.getElementById("displayDeck"); let box = document.getElementById("messagepanebox"); @@ -173,8 +167,7 @@ const config = (function () //{{{ // to allow Vim to :set ft=mail automatically tempFile: "mutt-ator-mail", - init: function () - { + init: function () { // don't wait too long when selecting new messages // GetThreadTree()._selectDelay = 300; // TODO: make configurable @@ -182,8 +175,7 @@ const config = (function () //{{{ if (this.isComposeWindow) // TODO: this should probably be "composer" liberator.loadModule("compose", Compose); - else - { + else { liberator.loadModule("mail", Mail); liberator.loadModule("addressbook", Addressbook); liberator.loadModule("tabs", Tabs); @@ -208,8 +200,7 @@ const config = (function () //{{{ "Set the 'work offline' option", "boolean", true, { - setter: function (value) - { + setter: function (value) { if (MailOfflineMgr.isOnline() != value) MailOfflineMgr.toggleOfflineStatus(); return value; diff --git a/muttator/content/mail.js b/muttator/content/mail.js index b3fe77d8..a6519aad 100644 --- a/muttator/content/mail.js +++ b/muttator/content/mail.js @@ -3,8 +3,7 @@ // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. -function Mail() //{{{ -{ +function Mail() { //{{{ //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -25,20 +24,16 @@ function Mail() //{{{ OnItemUnicharPropertyChanged: function (item, property, oldValue, newValue) {}, OnItemPropertyFlagChanged: function (item, property, oldFlag, newFlag) {}, - OnItemEvent: function (folder, event) - { + OnItemEvent: function (folder, event) { let eventType = event.toString(); - if (eventType == "FolderLoaded") - { - if (folder) - { + if (eventType == "FolderLoaded") { + if (folder) { let msgFolder = folder.QueryInterface(Ci.nsIMsgFolder); autocommands.trigger("FolderLoaded", { url: msgFolder }); // Jump to a message when requested let indices = []; - if (selectMessageKeys.length > 0) - { + if (selectMessageKeys.length > 0) { for (let j = 0; j < selectMessageKeys.length; j++) indices.push([gDBView.findIndexFromKey(selectMessageKeys[j], true), selectMessageKeys[j]]); @@ -67,19 +62,16 @@ function Mail() //{{{ var notifyFlags = nsIFolderListener.intPropertyChanged | nsIFolderListener.event; mailSession.AddFolderListener(folderListener, notifyFlags); - function getCurrentFolderIndex() - { + function getCurrentFolderIndex() { // for some reason, the index is interpreted as a string, therefore the parseInt return parseInt(gFolderTreeView.getIndexOfFolder(gFolderTreeView.getSelectedFolders()[0])); } - function getRSSUrl() - { + function getRSSUrl() { return gDBView.hdrForFirstSelectedMessage.messageId.replace(/(#.*)?@.*$/, ""); } - function moveOrCopy(copy, destinationFolder, operateOnThread) - { + function moveOrCopy(copy, destinationFolder, operateOnThread) { let folders = mail.getFolders(destinationFolder); if (folders.length == 0) return void liberator.echoerr("Exxx: No matching folder for " + destinationFolder); @@ -96,13 +88,11 @@ function Mail() //{{{ }, 100); } - function parentIndex(index) - { + function parentIndex(index) { let parent = index; let tree = GetThreadTree(); - while (true) - { + while (true) { let tmp = tree.view.getParentIndex(parent); if (tmp >= 0) parent = tmp; @@ -113,18 +103,15 @@ function Mail() //{{{ } // does not wrap yet, intentional? - function selectUnreadFolder(backwards, count) - { + function selectUnreadFolder(backwards, count) { count = Math.max(1, count); let direction = backwards ? -1 : 1; let c = getCurrentFolderIndex(); let i = direction; let folder; - while (count > 0 && (c + i) < gFolderTreeView.rowCount && (c + i) >= 0) - { + while (count > 0 && (c + i) < gFolderTreeView.rowCount && (c + i) >= 0) { let resource = gFolderTreeView._rowMap[c+i]._folder; - if (!resource.isServer && resource.getNumUnread(false)) - { + if (!resource.isServer && resource.getNumUnread(false)) { count -= 1; folder = i; } @@ -136,8 +123,7 @@ function Mail() //{{{ gFolderTreeView.selection.timedSelect(c + folder, 500); } - function escapeRecipient(recipient) - { + function escapeRecipient(recipient) { // strip all ": recipient = recipient.replace(/"/g, ""); return "\"" + recipient + "\""; @@ -162,10 +148,8 @@ function Mail() //{{{ "Set the layout of the mail window", "string", "inherit", { - setter: function (value) - { - switch (value) - { + setter: function (value) { + switch (value) { case "classic": ChangeMailLayout(0); break; case "wide": ChangeMailLayout(1); break; case "vertical": ChangeMailLayout(2); break; @@ -188,8 +172,7 @@ function Mail() //{{{ "string", services.get("smtpService").defaultServer.key, // TODO: how should we handle these persistent external defaults - "inherit" or null? { getter: function () services.get("smtpService").defaultServer.key, - setter: function (value) - { + setter: function (value) { let server = mail.smtpServers.filter(function (s) s.key == value)[0]; services.get("smtpService").defaultServer = server; return value; @@ -202,8 +185,7 @@ function Mail() //{{{ "Use threading to group messages", "boolean", true, { - setter: function (value) - { + setter: function (value) { if (value) MsgSortThreaded(); else @@ -225,8 +207,7 @@ function Mail() //{{{ mappings.add(myModes, ["I"], "Open the message in new tab", - function () - { + function () { if (gDBView && gDBView.selection.count < 1) return void liberator.beep(); @@ -282,10 +263,8 @@ function Mail() //{{{ mappings.add(myModes, ["*"], "Select next message from the same sender", - function (count) - { - try - { + function (count) { + try { let author = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor.toLowerCase(); mail.selectMessage(function (msg) msg.mime2DecodedAuthor.toLowerCase().indexOf(author) == 0, true, true, false, count); } @@ -295,10 +274,8 @@ function Mail() //{{{ mappings.add(myModes, ["#"], "Select previous message from the same sender", - function (count) - { - try - { + function (count) { + try { let author = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor.toLowerCase(); mail.selectMessage(function (msg) msg.mime2DecodedAuthor.toLowerCase().indexOf(author) == 0, true, true, true, count); } @@ -313,15 +290,12 @@ function Mail() //{{{ mappings.add(myModes, ["M"], "Compose a new message to the sender of selected mail", - function () - { - try - { + function () { + try { let to = escapeRecipient(gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor); commandline.open(":", "mail " + to + " -subject=", modes.EX); } - catch (e) - { + catch (e) { liberator.beep(); } }); @@ -366,8 +340,7 @@ function Mail() //{{{ // UNDO/REDO mappings.add(myModes, ["u"], "Undo", - function () - { + function () { if (messenger.canUndo()) messenger.undo(msgWindow); else @@ -375,8 +348,7 @@ function Mail() //{{{ }); mappings.add(myModes, [""], "Redo", - function () - { + function () { if (messenger.canRedo()) messenger.redo(msgWindow); else @@ -432,8 +404,7 @@ function Mail() //{{{ // FOLDER SWITCHING mappings.add(myModes, ["gi"], "Go to inbox", - function (count) - { + function (count) { let folder = mail.getFolders("Inbox", false, true)[(count > 0) ? (count - 1) : 0]; if (folder) SelectFolder(folder.URI); @@ -444,12 +415,10 @@ function Mail() //{{{ mappings.add(myModes, [""], "Select next folder", - function (count) - { + function (count) { count = Math.max(1, count); let newPos = getCurrentFolderIndex() + count; - if (newPos >= gFolderTreeView.rowCount) - { + if (newPos >= gFolderTreeView.rowCount) { newPos = newPos % gFolderTreeView.rowCount; commandline.echo("search hit BOTTOM, continuing at TOP", commandline.HL_WARNINGMSG, commandline.APPEND_TO_MESSAGES); } @@ -459,20 +428,17 @@ function Mail() //{{{ mappings.add(myModes, [""], "Go to next mailbox with unread messages", - function (count) - { + function (count) { selectUnreadFolder(false, count); }, { count: true }); mappings.add(myModes, [""], "Select previous folder", - function (count) - { + function (count) { count = Math.max(1, count); let newPos = getCurrentFolderIndex() - count; - if (newPos < 0) - { + if (newPos < 0) { newPos = (newPos % gFolderTreeView.rowCount) + gFolderTreeView.rowCount; commandline.echo("search hit TOP, continuing at BOTTOM", commandline.HL_WARNINGMSG, commandline.APPEND_TO_MESSAGES); } @@ -482,8 +448,7 @@ function Mail() //{{{ mappings.add(myModes, [""], "Go to previous mailbox with unread messages", - function (count) - { + function (count) { selectUnreadFolder(true, count); }, { count: true }); @@ -532,13 +497,11 @@ function Mail() //{{{ // tagging messages mappings.add(myModes, ["l"], "Label message", - function (arg) - { + function (arg) { if (!GetSelectedMessages()) return void liberator.beep(); - switch (arg) - { + switch (arg) { case "r": MsgMarkMsgAsRead(); break; case "s": MsgMarkAsFlagged(); break; case "i": ToggleMessageTagKey(1); break; // Important @@ -556,8 +519,7 @@ function Mail() //{{{ // TODO: change binding? mappings.add(myModes, ["T"], "Mark current folder as read", - function () - { + function () { if (mail.currentFolder.isServer) return liberator.beep(); @@ -566,16 +528,14 @@ function Mail() //{{{ mappings.add(myModes, [""], "Mark all messages as read", - function () - { + function () { mail.getFolders("", false).forEach(function (folder) { folder.markAllMessagesRead(msgWindow); }); }); // DISPLAY OPTIONS mappings.add(myModes, ["h"], "Toggle displayed headers", - function () - { + function () { let value = gPrefBranch.getIntPref("mail.show_headers", 2); gPrefBranch.setIntPref("mail.show_headers", value == 2 ? 1 : 2); ReloadMessage(); @@ -583,8 +543,7 @@ function Mail() //{{{ mappings.add(myModes, ["x"], "Toggle HTML message display", - function () - { + function () { let wantHtml = (gPrefBranch.getIntPref("mailnews.display.html_as", 1) == 1); mail.setHTML(wantHtml ? 1 : 0); }); @@ -592,10 +551,8 @@ function Mail() //{{{ // YANKING TEXT mappings.add(myModes, ["Y"], "Yank subject", - function () - { - try - { + function () { + try { let subject = gDBView.hdrForFirstSelectedMessage.mime2DecodedSubject; util.copyToClipboard(subject, true); } @@ -604,10 +561,8 @@ function Mail() //{{{ mappings.add(myModes, ["y"], "Yank sender or feed URL", - function () - { - try - { + function () { + try { if (mail.currentAccount.server.type == "rss") util.copyToClipboard(getRSSUrl(), true); else @@ -619,16 +574,13 @@ function Mail() //{{{ // RSS specific mappings mappings.add(myModes, ["p"], "Open RSS message in browser", - function () - { - try - { + function () { + try { if (mail.currentAccount.server.type == "rss") messenger.launchExternalURL(getRSSUrl()); // TODO: what to do for non-rss message? } - catch (e) - { + catch (e) { liberator.beep(); } }); @@ -639,8 +591,7 @@ function Mail() //{{{ commands.add(["go[to]"], "Select a folder", - function (args) - { + function (args) { let count = Math.max(0, args.count - 1); let arg = args.literalArg || "Inbox"; @@ -661,8 +612,7 @@ function Mail() //{{{ commands.add(["m[ail]"], "Write a new message", - function (args) - { + function (args) { let mailargs = {}; mailargs.to = args.join(", "); mailargs.subject = args["-subject"]; @@ -746,13 +696,11 @@ function Mail() //{{{ get currentFolder() gFolderTreeView.getSelectedFolders()[0], /** @property {nsISmtpServer[]} The list of configured SMTP servers. */ - get smtpServers() - { + get smtpServers() { let servers = services.get("smtpService").smtpServers; let ret = []; - while (servers.hasMoreElements()) - { + while (servers.hasMoreElements()) { let server = servers.getNext(); if (server instanceof Ci.nsISmtpServer) ret.push(server); @@ -761,13 +709,11 @@ function Mail() //{{{ return ret; }, - composeNewMail: function (args) - { + composeNewMail: function (args) { let params = Cc["@mozilla.org/messengercompose/composeparams;1"].createInstance(Ci.nsIMsgComposeParams); params.composeFields = Cc["@mozilla.org/messengercompose/composefields;1"].createInstance(Ci.nsIMsgCompFields); - if (args) - { + if (args) { if (args.originalMsg) params.originalMsgURI = args.originalMsg; if (args.to) @@ -783,10 +729,8 @@ function Mail() //{{{ if (args.body) params.composeFields.body = args.body; - if (args.attachments) - { - while (args.attachments.length > 0) - { + if (args.attachments) { + while (args.attachments.length > 0) { let url = args.attachments.pop(); let file = io.getFile(url); if (!file.exists()) @@ -807,8 +751,7 @@ function Mail() //{{{ }, // returns an array of nsIMsgFolder objects - getFolders: function (filter, includeServers, includeMsgFolders) - { + getFolders: function (filter, includeServers, includeMsgFolders) { let folders = []; if (!filter) filter = ""; @@ -820,8 +763,7 @@ function Mail() //{{{ if (includeMsgFolders === undefined) includeMsgFolders = true; - for (let i = 0; i < gFolderTreeView.rowCount; i++) - { + for (let i = 0; i < gFolderTreeView.rowCount; i++) { let resource = gFolderTreeView._rowMap[i]._folder; if ((resource.isServer && !includeServers) || (!resource.isServer && !includeMsgFolders)) continue; @@ -836,22 +778,19 @@ function Mail() //{{{ return folders; }, - getNewMessages: function (currentAccountOnly) - { + getNewMessages: function (currentAccountOnly) { if (currentAccountOnly) MsgGetMessagesForAccount(); else GetMessagesForAllAuthenticatedAccounts(); }, - getStatistics: function (currentAccountOnly) - { + getStatistics: function (currentAccountOnly) { let accounts = currentAccountOnly ? [this.currentAccount] : this.getFolders("", true, false); let unreadCount = 0, totalCount = 0, newCount = 0; - for (let i = 0; i < accounts.length; i++) - { + for (let i = 0; i < accounts.length; i++) { let account = accounts[i]; unreadCount += account.getNumUnread(true); // true == deep (includes subfolders) totalCount += account.getTotalMessages(true); @@ -861,14 +800,11 @@ function Mail() //{{{ return { numUnread: unreadCount, numTotal: totalCount, numNew: newCount }; }, - collapseThread: function () - { + collapseThread: function () { let tree = GetThreadTree(); - if (tree) - { + if (tree) { let parent = parentIndex(tree.currentIndex); - if (tree.changeOpenState(parent, false)) - { + if (tree.changeOpenState(parent, false)) { tree.view.selection.select(parent); tree.treeBoxObject.ensureRowIsVisible(parent); return true; @@ -877,11 +813,9 @@ function Mail() //{{{ return false; }, - expandThread: function () - { + expandThread: function () { let tree = GetThreadTree(); - if (tree) - { + if (tree) { let row = tree.currentIndex; if (row >= 0 && tree.changeOpenState(row, true)) return true; @@ -898,18 +832,15 @@ function Mail() //{{{ * @param {boolean} openThreads Should we open closed threads? * @param {boolean} reverse Change direction of searching. */ - selectMessage: function (validatorFunc, canWrap, openThreads, reverse, count) - { - function currentIndex() - { + selectMessage: function (validatorFunc, canWrap, openThreads, reverse, count) { + function currentIndex() { let index = gDBView.selection.currentIndex; if (index < 0) index = 0; return index; } - function closedThread(index) - { + function closedThread(index) { if (!(gDBView.viewFlags & nsMsgViewFlagsType.kThreadedDisplay)) return false; @@ -924,34 +855,28 @@ function Mail() //{{{ count = 1; // first try to find in current folder - if (gDBView) - { + if (gDBView) { for (let i = currentIndex() + (reverse ? -1 : (openThreads && closedThread() ? 0 : 1)); - reverse ? (i >= 0) : (i < gDBView.rowCount); - reverse ? i-- : i++) - { + reverse ? (i >= 0) : (i < gDBView.rowCount); + reverse ? i-- : i++) { let key = gDBView.getKeyAt(i); let msg = gDBView.db.GetMsgHdrForKey(key); // a closed thread - if (openThreads && closedThread(i)) - { + if (openThreads && closedThread(i)) { let thread = gDBView.db.GetThreadContainingMsgHdr(msg); let originalCount = count; for (let j = (i == currentIndex() && !reverse) ? 1 : (reverse ? thread.numChildren - 1 : 0); reverse ? (j >= 0) : (j < thread.numChildren); - reverse ? j-- : j++) - { + reverse ? j-- : j++) { msg = thread.getChildAt(j); - if (validatorFunc(msg) && --count == 0) - { + if (validatorFunc(msg) && --count == 0) { // this hack is needed to get the correct message, because getChildAt() does not // necessarily return the messages in the order they are displayed gDBView.selection.timedSelect(i, GetThreadTree()._selectDelay || 500); GetThreadTree().treeBoxObject.ensureRowIsVisible(i); - if (j > 0) - { + if (j > 0) { GetThreadTree().changeOpenState(i, true); this.selectMessage(validatorFunc, false, false, false, originalCount); } @@ -959,10 +884,8 @@ function Mail() //{{{ } } } - else // simple non-threaded message - { - if (validatorFunc(msg) && --count == 0) - { + else { // simple non-threaded message + if (validatorFunc(msg) && --count == 0) { gDBView.selection.timedSelect(i, GetThreadTree()._selectDelay || 500); GetThreadTree().treeBoxObject.ensureRowIsVisible(i); return; @@ -972,14 +895,12 @@ function Mail() //{{{ } // then in other folders - if (canWrap) - { + if (canWrap) { selectMessageReverse = reverse; let folders = this.getFolders("", true, true); let ci = getCurrentFolderIndex(); - for (let i = 1; i < folders.length; i++) - { + for (let i = 1; i < folders.length; i++) { let index = (i + ci) % folders.length; if (reverse) index = folders.length - 1 - index; @@ -993,29 +914,24 @@ function Mail() //{{{ // sometimes folder.getMessages can fail with an exception // TODO: find out why, and solve the problem - try - { + try { var msgs = folder.messages; } - catch (e) - { + catch (e) { msgs = folder.getMessages(msgWindow); // for older thunderbirds liberator.dump("WARNING: " + folder.prettyName + " failed to getMessages, trying old API"); //continue; } - while (msgs.hasMoreElements()) - { + while (msgs.hasMoreElements()) { let msg = msgs.getNext().QueryInterface(Ci.nsIMsgDBHdr); - if (validatorFunc(msg)) - { + if (validatorFunc(msg)) { count--; selectMessageKeys.push(msg.messageKey); } } - if (count <= 0) - { + if (count <= 0) { // SelectFolder is asynchronous, message is selected in folderListener SelectFolder(folder.URI); return; @@ -1028,8 +944,7 @@ function Mail() //{{{ liberator.beep(); }, - setHTML: function (value) - { + setHTML: function (value) { let values = [[true, 1, gDisallow_classes_no_html], // plaintext [false, 0, 0], // HTML [false, 3, gDisallow_classes_no_html]]; // sanitized/simple HTML diff --git a/vimperator/components/about-handler.js b/vimperator/components/about-handler.js index ee3bb5ec..57d99649 100644 --- a/vimperator/components/about-handler.js +++ b/vimperator/components/about-handler.js @@ -25,8 +25,7 @@ AboutHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]), - newChannel: function (uri) - { + newChannel: function (uri) { let channel = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService) .newChannel("chrome://" + name + "/content/about.html", null, null); @@ -38,6 +37,6 @@ AboutHandler.prototype = { getURIFlags: function (uri) Ci.nsIAboutModule.ALLOW_SCRIPT, }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]) // vim: set fdm=marker sw=4 ts=4 et: diff --git a/vimperator/components/commandline-handler.js b/vimperator/components/commandline-handler.js index 88309e2c..4c7ee490 100644 --- a/vimperator/components/commandline-handler.js +++ b/vimperator/components/commandline-handler.js @@ -11,8 +11,7 @@ const Name = "Vimperator"; Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); const name = Name.toLowerCase(); -function CommandLineHandler() -{ +function CommandLineHandler() { this.wrappedJSObject = this; } CommandLineHandler.prototype = { @@ -30,20 +29,17 @@ CommandLineHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]), - handle: function (commandLine) - { + handle: function (commandLine) { // TODO: handle remote launches differently? - try - { + try { this.optionValue = commandLine.handleFlagWithParam(name, false); } - catch (e) - { + catch (e) { //"vimperator: option -vimperator requires an argument" } } }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]) // vim: set ft=javascript fdm=marker sw=4 ts=4 et: diff --git a/vimperator/content/config.js b/vimperator/content/config.js index 4c799850..10a3046f 100644 --- a/vimperator/content/config.js +++ b/vimperator/content/config.js @@ -119,8 +119,7 @@ const config = { //{{{ get tempFile() { let prefix = this.name.toLowerCase(); - try - { + try { prefix += "-" + window.content.document.location.hostname; } catch (e) {} @@ -128,12 +127,10 @@ const config = { //{{{ return prefix + ".tmp"; }, - init: function () - { + init: function () { commands.add(["winon[ly]"], "Close all other windows", - function () - { + function () { liberator.windows.forEach(function (win) { if (win != window) win.close(); @@ -143,10 +140,8 @@ const config = { //{{{ commands.add(["pref[erences]", "prefs"], "Show " + config.hostApplication + " preferences", - function (args) - { - if (args.bang) // open Firefox settings GUI dialog - { + function (args) { + if (args.bang) { // open Firefox settings GUI dialog liberator.open("about:config", (options["newtab"] && options.get("newtab").has("all", "prefs")) ? liberator.NEW_TAB : liberator.CURRENT_TAB); @@ -161,8 +156,7 @@ const config = { //{{{ commands.add(["sbcl[ose]"], "Close the sidebar window", - function () - { + function () { if (!document.getElementById("sidebar-box").hidden) window.toggleSidebar(); }, @@ -170,24 +164,20 @@ const config = { //{{{ commands.add(["sideb[ar]", "sb[ar]", "sbope[n]"], "Open the sidebar window", - function (args) - { + function (args) { let arg = args.literalArg; function compare(a, b) util.compareIgnoreCase(a, b) == 0 // focus if the requested sidebar is already open - if (compare(document.getElementById("sidebar-title").value, arg)) - { + if (compare(document.getElementById("sidebar-title").value, arg)) { document.getElementById("sidebar-box").focus(); return; } let menu = document.getElementById("viewSidebarMenu"); - for (let [, panel] in Iterator(menu.childNodes)) - { - if (compare(panel.label, arg)) - { + for (let [, panel] in Iterator(menu.childNodes)) { + if (compare(panel.label, arg)) { panel.doCommand(); return; } @@ -197,8 +187,7 @@ const config = { //{{{ }, { argCount: "1", - completer: function (context) - { + completer: function (context) { context.ignoreCase = true; return completion.sidebar(context); }, @@ -207,8 +196,7 @@ const config = { //{{{ commands.add(["wind[ow]"], "Execute a command and tell it to output in a new window", - function (args) - { + function (args) { liberator.forceNewWindow = true; liberator.execute(args.string, null, true); liberator.forceNewWindow = false; @@ -226,8 +214,7 @@ const config = { //{{{ commands.add(["wino[pen]", "wo[pen]", "wine[dit]"], "Open one or more URLs in a new window", - function (args) - { + function (args) { args = args.string; if (args) @@ -249,8 +236,7 @@ const config = { //{{{ "Set the 'work offline' option", "boolean", true, { - setter: function (value) - { + setter: function (value) { const ioService = services.get("io"); if (ioService.offline == value) BrowserOffline.toggleOfflineStatus(); @@ -289,8 +275,7 @@ const config = { //{{{ services.get("autoCompleteSearch").startSearch(context.filter, "", context.result, { onSearchResult: function onSearchResult(search, result) { timer.tell(result); - if (result.searchResult <= result.RESULT_SUCCESS) - { + if (result.searchResult <= result.RESULT_SUCCESS) { searchRunning = false; timer.flush(); } diff --git a/vimperator/locale/en-US/help.js b/vimperator/locale/en-US/help.js index 54c86b21..1c75072e 100644 --- a/vimperator/locale/en-US/help.js +++ b/vimperator/locale/en-US/help.js @@ -4,8 +4,7 @@ // given in the LICENSE.txt file included with this file. -function checkFragment() -{ +function checkFragment() { let frag = document.location.hash.substr(1); if (!frag || document.getElementById(frag)) return; diff --git a/vimperator/regressions.js b/vimperator/regressions.js index 471104a9..ba30550d 100644 --- a/vimperator/regressions.js +++ b/vimperator/regressions.js @@ -76,8 +76,7 @@ let functions = [ // even after doing major Vimperator refactoring ///////////////////////////////////////////////////////////////////////////////////////// -function resetEnvironment() -{ +function resetEnvironment() { multilineOutput.contentDocument.body.innerHTML = ""; singlelineOutput.value = ""; commandline.close(); @@ -91,8 +90,7 @@ function getSinglelineOutput() singlelineOutput.value; function getTabIndex() getBrowser().mTabContainer.selectedIndex; function getTabCount() getBrowser().mTabs.length; -function getBufferPosition() -{ +function getBufferPosition() { let win = window.content; return { x: win.scrollMaxX ? win.pageXOffset / win.scrollMaxX : 0, y: win.scrollMaxY ? win.pageYOffset / win.scrollMaxY : 0 } @@ -100,8 +98,7 @@ function getBufferPosition() function getLocation() window.content.document.location.href; -function echoLine(str, group) -{ +function echoLine(str, group) { if (!doc) return; @@ -109,8 +106,7 @@ function echoLine(str, group)
{str}
, doc)); } -function echoMulti(str, group) -{ +function echoMulti(str, group) { if (!doc) return; @@ -122,8 +118,7 @@ function echoMulti(str, group) commands.addUserCommand(["regr[essions]"], "Run regression tests", - function (args) - { + function (args) { // TODO: might need to increase the 'messages' option temporarily // TODO: count (better even range) support to just run test 34 of 102 // TODO: bang support to either: a) run commands like deleting bookmarks which @@ -131,8 +126,7 @@ commands.addUserCommand(["regr[essions]"], // just Ex command tests; Yet to be decided let updateOutputHeight = null; - function init() - { + function init() { liberator.registerObserver("echoLine", echoLine); liberator.registerObserver("echoMultiline", echoMulti); liberator.open("chrome://liberator/content/buffer.xhtml", liberator.NEW_TAB); @@ -141,23 +135,20 @@ commands.addUserCommand(["regr[essions]"], doc.body.setAttributeNS(NS.uri, "highlight", "CmdLine"); updateOutputHeight = commandline.updateOutputHeight; - commandline.updateOutputHeight = function (open) - { + commandline.updateOutputHeight = function (open) { let elem = document.getElementById("liberator-multiline-output"); if (open) elem.collapsed = false; elem.height = 0; }; } - function cleanup() - { + function cleanup() { liberator.unregisterObserver("echoLine", echoLine); liberator.unregisterObserver("echoMultiline", echoMulti); commandline.updateOutputHeight = updateOutputHeight; } - function run() - { + function run() { let now = Date.now(); let totalTests = tests.length + functions.length; let successfulTests = 0; @@ -169,17 +160,14 @@ commands.addUserCommand(["regr[essions]"], // TODO: might want to unify 'tests' and 'functions' handling // 1.) run commands and mappings tests outer: - for (let [, test] in Iterator(tests)) - { + for (let [, test] in Iterator(tests)) { currentTest++; if (args.count >= 1 && currentTest != args.count) continue; let testDescription = util.clip(test.cmds.join(" -> "), 80); - for (let [, cmd] in Iterator(test.cmds)) - { - if (skipTests.indexOf(cmd) != -1) - { + for (let [, cmd] in Iterator(test.cmds)) { + if (skipTests.indexOf(cmd) != -1) { skippedTests++; liberator.echomsg("Skipping test " + currentTest + " of " + totalTests + ": " + testDescription, 0); continue outer; @@ -205,8 +193,7 @@ commands.addUserCommand(["regr[essions]"], } // 2.) Run function tests - for (let [, func] in Iterator(functions)) - { + for (let [, func] in Iterator(functions)) { currentTest++; if (args.count >= 1 && currentTest != args.count) continue; @@ -232,8 +219,7 @@ commands.addUserCommand(["regr[essions]"], liberator.execute(":messages"); } - if (!args.bang) - { + if (!args.bang) { liberator.echo( Running tests should always be done in a new profile.
diff --git a/xulmus/components/about-handler.js b/xulmus/components/about-handler.js index d55ae245..9bcffedd 100644 --- a/xulmus/components/about-handler.js +++ b/xulmus/components/about-handler.js @@ -25,19 +25,16 @@ AboutHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]), - newChannel: function (uri) - { + newChannel: function (uri) { let channel = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService) .newChannel("chrome://" + name + "/content/about.html", null, null); - channel.originalURI = uri; - return channel; }, getURIFlags: function (uri) Ci.nsIAboutModule.ALLOW_SCRIPT, }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([AboutHandler]) // vim: set fdm=marker sw=4 ts=4 et: diff --git a/xulmus/components/commandline-handler.js b/xulmus/components/commandline-handler.js index 232252eb..4c098479 100644 --- a/xulmus/components/commandline-handler.js +++ b/xulmus/components/commandline-handler.js @@ -11,8 +11,7 @@ const Name = "Xulmus"; Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); const name = Name.toLowerCase(); -function CommandLineHandler() -{ +function CommandLineHandler() { this.wrappedJSObject = this; } CommandLineHandler.prototype = { @@ -30,20 +29,17 @@ CommandLineHandler.prototype = { QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]), - handle: function (commandLine) - { + handle: function (commandLine) { // TODO: handle remote launches differently? - try - { + try { this.optionValue = commandLine.handleFlagWithParam(name, false); } - catch (e) - { + catch (e) { //"vimperator: option -vimperator requires an argument" } } }; -function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]); +function NSGetModule(compMgr, fileSpec) XPCOMUtils.generateModule([CommandLineHandler]) // vim: set ft=javascript fdm=marker sw=4 ts=4 et: diff --git a/xulmus/content/config.js b/xulmus/content/config.js index 979eb097..63436dcd 100644 --- a/xulmus/content/config.js +++ b/xulmus/content/config.js @@ -124,8 +124,7 @@ const config = { //{{{ function () { SBSubscribe(); }] ], - focusChange: function () - { + focusChange: function () { // Switch to -- PLAYER -- mode for Songbird Media Player. if (config.isPlayerWindow) liberator.mode = modes.PLAYER; @@ -156,19 +155,16 @@ const config = { //{{{ ], // FIXME: tab arg and media tab exception? - stop: function (tab) - { + stop: function (tab) { SBGetBrowser().mCurrentBrowser.stop(); }, - init: function () - { + init: function () { // Adding a mode for Player //modes.addMode("PLAYER"); // Player mode for songbird // TODO: support 'nrformats'? -> probably not worth it --mst - function incrementURL(count) - { + function incrementURL(count) { let matches = buffer.URL.match(/(.*?)(\d+)(\D*)$/); if (!matches) return void liberator.beep(); @@ -176,8 +172,7 @@ const config = { //{{{ let [, pre, number, post] = matches; let newNumber = parseInt(number, 10) + count; let newNumberStr = String(newNumber > 0 ? newNumber : 0); - if (number.match(/^0/)) // add 0009 should become 0010 - { + if (number.match(/^0/)) { // add 0009 should become 0010 while (newNumberStr.length < number.length) newNumberStr = "0" + newNumberStr; } @@ -185,19 +180,16 @@ const config = { //{{{ liberator.open(pre + newNumberStr + post); } - function showServicePane(value) - { + function showServicePane(value) { const key = "splitter.servicepane_splitter.was_collapsed"; gServicePane.open = value; SBDataSetBoolValue(key, gServicePane.open); } - function openDisplayPane(id) - { + function openDisplayPane(id) { if (id == "servicepane") showServicePane(true); - else - { + else { let pane = document.getElementById(id); let manager = Cc['@songbirdnest.com/Songbird/DisplayPane/Manager;1'].getService(Ci.sbIDisplayPaneManager); let paneinfo = manager.getPaneInfo(pane._lastURL.stringValue); @@ -209,8 +201,7 @@ const config = { //{{{ } } - function closeDisplayPane(id) - { + function closeDisplayPane(id) { if (id == "servicepane") showServicePane(false); else @@ -270,8 +261,7 @@ const config = { //{{{ commands.add(["dpcl[ose]"], "Close a display pane", - function (args) - { + function (args) { let arg = args.literalArg; if (arg in displayPanes) @@ -289,8 +279,7 @@ const config = { //{{{ // TODO: this should accept a second arg to specify content commands.add(["displayp[ane]", "dp[ane]", "dpope[n]"], "Open a display pane", - function (args) - { + function (args) { let arg = args.literalArg; if (arg in displayPanes) @@ -307,10 +296,8 @@ const config = { //{{{ commands.add(["pref[erences]", "prefs"], "Show " + config.hostApplication + " preferences", - function (args) - { - if (args.bang) // open Songbird settings GUI dialog - { + function (args) { + if (args.bang) { // open Songbird settings GUI dialog liberator.open("about:config", (options["newtab"] && options.get("newtab").has("all", "prefs")) ? liberator.NEW_TAB : liberator.CURRENT_TAB); @@ -332,8 +319,7 @@ const config = { //{{{ "Set the 'work offline' option", "boolean", true, { - setter: function (value) - { + setter: function (value) { const ioService = services.get("io"); ioService.offline = !value; options.setPref("browser.offline", ioService.offline); diff --git a/xulmus/content/library.js b/xulmus/content/library.js index 75356953..0b9ed885 100644 --- a/xulmus/content/library.js +++ b/xulmus/content/library.js @@ -4,8 +4,8 @@ // given in the LICENSE.txt file included with this file. -function Library() //{{{ -{ +function Library() { //{{{ + //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -14,8 +14,7 @@ function Library() //{{{ function toJSArray(enum) ArrayConverter.JSArray(enum) - function getArtistsArray() - { + function getArtistsArray() { return toJSArray(MAIN_LIBRARY.getDistinctValuesForProperty(SBProperties.artistName)); } @@ -44,8 +43,7 @@ function Library() //{{{ * @param {param} artist The artist name. * @returns {string[]} */ - getAlbums: function getAlbums(artist) - { + getAlbums: function getAlbums(artist) { let albums = toJSArray(MAIN_LIBRARY.getItemsByProperty(SBProperties.artistName, artist)) .map(function (track) track.getProperty(SBProperties.albumName)); return util.Array.uniq(albums); @@ -59,8 +57,7 @@ function Library() //{{{ * @param {param} album The album name. * @returns {string[]} */ - getTracks: function getTracks(artist, album) - { + getTracks: function getTracks(artist, album) { const properties = Cc["@songbirdnest.com/Songbird/Properties/MutablePropertyArray;1"] .createInstance(Ci.sbIMutablePropertyArray); diff --git a/xulmus/content/player.js b/xulmus/content/player.js index 518ff8cf..dd04ff66 100644 --- a/xulmus/content/player.js +++ b/xulmus/content/player.js @@ -4,8 +4,8 @@ // given in the LICENSE.txt file included with this file. -function Player() //{{{ -{ +function Player() { //{{{ + //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -26,22 +26,18 @@ function Player() //{{{ commandline.registerCallback("cancel", modes.SEARCH_VIEW_FORWARD, function () { player.onSearchCancel(); }); // interval (milliseconds) - function seek(interval, direction) - { + function seek(interval, direction) { let position = gMM.playbackControl ? gMM.playbackControl.position : 0; player.seekTo(position + (direction ? interval : -interval)); } - function focusTrack(mediaItem) - { + function focusTrack(mediaItem) { SBGetBrowser().mediaTab.mediaPage.highlightItem(_SBGetCurrentView().getIndexForItem(mediaItem)); } var mediaCoreListener = { - onMediacoreEvent: function (event) - { - switch (event.type) - { + onMediacoreEvent: function (event) { + switch (event.type) { case Ci.sbIMediacoreEvent.BEFORE_TRACK_CHANGE: liberator.log("Before track changed: " + event.data); autocommands.trigger("TrackChangePre", { track: event.data }); @@ -193,8 +189,7 @@ function Player() //{{{ ["N"], "Find the previous track", function () { player.searchViewAgain(true);}); - for (let i in util.range(0, 6)) - { + for (let i in util.range(0, 6)) { let (rating = i) { mappings.add([modes.PLAYER], [""], "Rate the current media item " + rating, @@ -208,15 +203,13 @@ function Player() //{{{ commands.add(["f[ilter]"], "Filter tracks based on keywords {genre/artist/album/track}", - function (args) - { + function (args) { let library = LibraryUtils.mainLibrary; let view = LibraryUtils.createStandardMediaListView(LibraryUtils.mainLibrary, args.literalArg); if (view.length == 0) liberator.echoerr("No Tracks matching the keywords"); - else - { + else { SBGetBrowser().loadMediaList(LibraryUtils.mainLibrary, null, null, view, "chrome://songbird/content/mediapages/filtersPage.xul"); // TODO: make this focusTrack work ? @@ -231,19 +224,15 @@ function Player() //{{{ commands.add(["load"], "Load a playlist", - function (args) - { + function (args) { let arg = args.literalArg; - if (arg) - { + if (arg) { // load the selected playlist/smart playlist let playlists = player.getPlaylists(); - for ([i, list] in Iterator(playlists)) - { - if (util.compareIgnoreCase(arg, list.name) == 0) - { + for ([i, list] in Iterator(playlists)) { + if (util.compareIgnoreCase(arg, list.name) == 0) { SBGetBrowser().loadMediaList(playlists[i]); focusTrack(_SBGetCurrentView().getItemByIndex(0)); return; @@ -252,8 +241,7 @@ function Player() //{{{ liberator.echoerr("E475: Invalid argument: " + arg); } - else - { + else { // load main library if there are no args _SBShowMainLibrary(); } @@ -287,8 +275,7 @@ function Player() //{{{ commands.add(["see[k]"], "Seek to a track position", - function (args) - { + function (args) { let arg = args[0]; // intentionally supports 999:99:99 @@ -297,14 +284,12 @@ function Player() //{{{ function ms(t, m) Math.abs(parseInt(t, 10) * { s: 1000, m: 60000, h: 3600000 }[m]) - if (/:/.test(arg)) - { + if (/:/.test(arg)) { let [seconds, minutes, hours] = arg.split(":").reverse(); hours = hours || 0; var value = ms(seconds, "s") + ms(minutes, "m") + ms(hours, "h"); } - else - { + else { if (!/[smh]/.test(arg.substr(-1))) arg += "s"; // default to seconds @@ -321,22 +306,18 @@ function Player() //{{{ commands.add(["mediav[iew]"], "Change the current media view", - function (args) - { + function (args) { // FIXME: is this a SB restriction? --djk if (!gBrowser.currentMediaPage) return void liberator.echoerr("Exxx: Can only set the media view from the media tab"); // XXX let arg = args[0]; - if (arg) - { + if (arg) { let pages = player.getMediaPages(); - for ([, page] in Iterator(pages)) - { - if (util.compareIgnoreCase(arg, page.contentTitle) == 0) - { + for ([, page] in Iterator(pages)) { + if (util.compareIgnoreCase(arg, page.contentTitle) == 0) { player.loadMediaPage(page, gBrowser.currentMediaListView.mediaList, gBrowser.currentMediaListView); return; } @@ -353,8 +334,7 @@ function Player() //{{{ commands.add(["sort[view]"], "Sort the current media view", - function (args) - { + function (args) { player.sortBy(args, true); }); @@ -362,8 +342,7 @@ function Player() //{{{ // FIXME: use :add -q like cmus? (not very vim-like are it's multi-option commands) --djk commands.add(["qu[eue]"], "Queue tracks by artist/album/track", - function (args) - { + function (args) { // Store the old view // let prev_view = gMM.status.view; let library = LibraryUtils.mainLibrary; @@ -372,8 +351,7 @@ function Player() //{{{ .createInstance(Ci.sbIMutablePropertyArray); // args - switch (args.length) - { + switch (args.length) { case 3: customProps.appendProperty(SBProperties.trackName, args[2]); case 2: @@ -396,8 +374,7 @@ function Player() //{{{ // TODO: maybe :vol! could toggle mute on/off? --djk commands.add(["vol[ume]"], "Set the volume", - function (args) - { + function (args) { let arg = args[0]; if (!/^[+-]?\d+$/.test(arg)) @@ -421,18 +398,15 @@ function Player() //{{{ function map(list) list.map(function (i) [i, ""]); let [artist, album] = [args[0], args[1]]; - if (args.completeArg == 0) - { + if (args.completeArg == 0) { context.title = ["Artists"]; context.completions = map(library.getArtists()); } - else if (args.completeArg == 1) - { + else if (args.completeArg == 1) { context.title = ["Albums by " + artist]; context.completions = map(library.getAlbums(artist)); } - else if (args.completeArg == 2) - { + else if (args.completeArg == 2) { context.title = ["Tracks from " + album + " by " + artist]; context.completions = map(library.getTracks(artist, album)); } @@ -462,53 +436,44 @@ function Player() //{{{ * @property {string} The player volume as a percentage. */ get volume() gMM.volumeControl.volume, - set volume(value) - { + set volume(value) { gMM.volumeControl.volume = value; }, // FIXME: can't be called from non-media tabs since 840e78 - play: function play() - { + play: function play() { // Check if there is any selection in place, else play first item of the visible view. - if (_SBGetCurrentView().selection.count != 0) - { + if (_SBGetCurrentView().selection.count != 0) { // Play the selection. gMM.sequencer.playView(_SBGetCurrentView(), _SBGetCurrentView().getIndexForItem(_SBGetCurrentView().selection.currentMediaItem)); focusTrack(gMM.sequencer.currentItem); } - else - { + else { gMM.sequencer.playView(SBGetBrowser().currentMediaListView, 0); focusTrack(gMM.sequencer.currentItem); } }, - stop: function stop() - { + stop: function stop() { gMM.sequencer.stop(); }, - next: function next() - { + next: function next() { gSongbirdWindowController.doCommand("cmd_control_next"); gSongbirdWindowController.doCommand("cmd_find_current_track"); }, - previous: function previous() - { + previous: function previous() { gSongbirdWindowController.doCommand("cmd_control_previous"); gSongbirdWindowController.doCommand("cmd_find_current_track"); }, - togglePlayPause: function togglePlayPause() - { + togglePlayPause: function togglePlayPause() { gSongbirdWindowController.doCommand("cmd_control_playpause"); focusTrack(gMM.sequencer.currentItem); }, - toggleShuffle: function toggleShuffle() - { + toggleShuffle: function toggleShuffle() { if (gMM.sequencer.mode != gMM.sequencer.MODE_SHUFFLE) gMM.sequencer.mode = gMM.sequencer.MODE_SHUFFLE; else @@ -516,10 +481,8 @@ function Player() //{{{ }, // FIXME: not really toggling - good enough for now. - toggleRepeat: function toggleRepeat() - { - switch (gMM.sequencer.repeatMode) - { + toggleRepeat: function toggleRepeat() { + switch (gMM.sequencer.repeatMode) { case gMM.sequencer.MODE_REPEAT_NONE: gMM.sequencer.repeatMode = gMM.sequencer.MODE_REPEAT_ONE; break; @@ -542,8 +505,7 @@ function Player() //{{{ * @param {number} interval The time interval (ms) to advance the * current track. */ - seekForward: function seekForward(interval) - { + seekForward: function seekForward(interval) { seek(interval, true); }, @@ -554,8 +516,7 @@ function Player() //{{{ * @param {number} interval The time interval (ms) to rewind the * current track. */ - seekBackward: function seekBackward(interval) - { + seekBackward: function seekBackward(interval) { seek(interval, false); }, @@ -564,8 +525,7 @@ function Player() //{{{ * * @param {number} The new position (ms) in the track. */ - seekTo: function seekTo(position) - { + seekTo: function seekTo(position) { // FIXME: if not playing if (!gMM.playbackControl) this.play(); @@ -578,32 +538,27 @@ function Player() //{{{ // FIXME: 10% ? // I think just general increments of say 0.05 might be better --djk - increaseVolume: function increaseVolume() - { + increaseVolume: function increaseVolume() { gMM.volumeControl.volume = gMM.volumeControl.volume * 1.1; }, - decreaseVolume: function decreaseVolume() - { + decreaseVolume: function decreaseVolume() { if (gMM.volumeControl.volume == 0) gMM.volumeControl.volume = 0.1; else gMM.volumeControl.volume = gMM.volumeControl.volume * 0.9; }, - focusPlayingTrack :function focusPlayingTrack() - { + focusPlayingTrack :function focusPlayingTrack() { focusTrack(gMM.sequencer.currentItem); }, - listTracks: function listTracks(view) - { + listTracks: function listTracks(view) { //let myView = LibraryUtils.createStandardMediaListView(LibraryUtils.mainLibrary, args); let length = view.length; let tracksList = []; - for (let i = 0; i < length; i++) - { + for (let i = 0; i < length; i++) { let mediaItem = view.getItemByIndex(i); let trackName = mediaItem.getProperty(SBProperties.trackName); let albumName = mediaItem.getProperty(SBProperties.albumName); @@ -615,8 +570,7 @@ function Player() //{{{ return tracksList; }, - searchView: function searchView(args) - { + searchView: function searchView(args) { let currentView = _SBGetCurrentView(); let mediaItemList = currentView.mediaList; let search = _getSearchString(currentView); @@ -631,8 +585,7 @@ function Player() //{{{ let mySearchView = LibraryUtils.createStandardMediaListView(mediaItemList, searchString); - if (mySearchView.length) - { + if (mySearchView.length) { lastSearchView = mySearchView; lastSearchIndex = 0; focusTrack(mySearchView.getItemByIndex(lastSearchIndex)); @@ -641,29 +594,23 @@ function Player() //{{{ liberator.echoerr("E486 Pattern not found: " + searchString, commandline.FORCE_SINGLELINE); }, - searchViewAgain: function searchViewAgain(reverse) - { - function echo(str) - { + searchViewAgain: function searchViewAgain(reverse) { + function echo(str) { setTimeout(function () { commandline.echo(str, commandline.HL_WARNINGMSG, commandline.APPEND_TO_MESSAGES | commandline.FORCE_SINGLELINE); }, 0); } - if (reverse) - { - if (lastSearchIndex == 0) - { + if (reverse) { + if (lastSearchIndex == 0) { lastSearchIndex = lastSearchView.length - 1; echo("Search hit TOP, continuing at BOTTOM"); } else lastSearchIndex = lastSearchIndex - 1; } - else - { - if (lastSearchIndex == (lastSearchView.length - 1)) - { + else { + if (lastSearchIndex == (lastSearchView.length - 1)) { lastSearchIndex = 0; echo("Search hit BOTTOM, continuing at TOP"); } @@ -682,8 +629,7 @@ function Player() //{{{ * * @param {string} str The contents of the search dialog. */ - onSearchKeyPress: function (str) - { + onSearchKeyPress: function (str) { if (options["incsearch"]) this.searchView(str); }, @@ -693,28 +639,24 @@ function Player() //{{{ * * @param {string} str The contents of the search dialog. */ - onSearchSubmit: function (str) - { + onSearchSubmit: function (str) { this.searchView(str); }, /** * The search dialog cancel callback. */ - onSearchCancel: function () - { + onSearchCancel: function () { // TODO: restore the view state if altered by an 'incsearch' search }, - getPlaylists: function getPlaylists() - { + getPlaylists: function getPlaylists() { let mainLibrary = LibraryUtils.mainLibrary; let playlists = [mainLibrary]; let listener = { onEnumerationBegin: function () { }, onEnumerationEnd: function () { }, - onEnumeratedItem: function (list, item) - { + onEnumeratedItem: function (list, item) { // FIXME: why are there null items and duplicates? if (!playlists.some(function (list) list.name == item.name) && item.name != null) playlists.push(item); @@ -728,42 +670,35 @@ function Player() //{{{ }, // Play track at 'row' in 'playlist' - playPlaylist: function playPlaylist(playlist, row) - { + playPlaylist: function playPlaylist(playlist, row) { gMM.sequencer.playView(playlist.createView(), row); }, - getMediaPages: function getMediaPages() - { + getMediaPages: function getMediaPages() { let list = gBrowser.currentMediaPage.mediaListView.mediaList; let pages = services.get("mediaPageManager").getAvailablePages(list); return ArrayConverter.JSArray(pages).map(function (page) page.QueryInterface(Ci.sbIMediaPageInfo)); }, - loadMediaPage: function loadMediaList(page, list, view) - { + loadMediaPage: function loadMediaList(page, list, view) { services.get("mediaPageManager").setPage(list, page); gBrowser.loadMediaList(list, null, null, view, null); }, - rateMediaItem: function rateMediaItem(rating) - { + rateMediaItem: function rateMediaItem(rating) { if (gMM.sequencer.currentItem) gMM.sequencer.currentItem.setProperty(SBProperties.rating, rating); }, - getUserViewable: function getUserViewable() - { + getUserViewable: function getUserViewable() { let propManager = services.get("propertyManager"); let propEnumerator = propManager.propertyIDs; let properties = []; - while (propEnumerator.hasMore()) - { + while (propEnumerator.hasMore()) { let propertyId = propEnumerator.getNext(); - if (propManager.getPropertyInfo(propertyId).userViewable) - { + if (propManager.getPropertyInfo(propertyId).userViewable) { //liberator.dump("propertyId - " + propManager.getPropertyInfo(propertyId).id); properties.push(propManager.getPropertyInfo(propertyId).displayName); } @@ -772,13 +707,11 @@ function Player() //{{{ return properties; }, - sortBy: function sortBy(property, order) - { + sortBy: function sortBy(property, order) { let pa = Cc["@songbirdnest.com/Songbird/Properties/MutablePropertyArray;1"].createInstance(Ci.sbIMutablePropertyArray); liberator.dump("Property: " + property); - switch (property.string) - { + switch (property.string) { case "#": case "Title": pa.appendProperty(SBProperties.trackName, "a");