1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 18:37:58 +01:00

Better handling of operations on list options with complex types. Closes #37.

This commit is contained in:
Kris Maglione
2015-04-25 12:48:31 -07:00
parent aee0c79752
commit 61df94e750
5 changed files with 16 additions and 6 deletions

View File

@@ -682,7 +682,6 @@ var Bookmarks = Module("bookmarks", {
context.format = history.format;
context.title = [/*L*/keyword + " Quick Search"];
context.keys = { text: "url", description: "title", icon: "icon" };
// context.background = true;
context.compare = CompletionContext.Sort.unsorted;
context.generate = function () {
let [begin, end] = item.url.split("%s");

View File

@@ -394,11 +394,12 @@ var CommandMode = Class("CommandMode", {
commandline.hideCompletions();
let result = this.command;
modes.delay(function () {
if (!this.keepCommand || commandline.silent || commandline.quiet)
commandline.hide();
if (!waiting)
this[this.accepted ? "onSubmit" : "onCancel"](commandline.command);
this[this.accepted ? "onSubmit" : "onCancel"](result);
if (commandline.messageCount === this.messageCount)
commandline.clearMessage();
}, this);

View File

@@ -953,7 +953,6 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
// decide where to load the first url
switch (where) {
case dactyl.NEW_TAB:
if (!dactyl.has("tabs"))
return open(loc, dactyl.NEW_WINDOW);

View File

@@ -705,9 +705,13 @@ var Option = Class("Option", {
return this.value.filter(function (item) !this.has(item), new RealSet(values));
case "=":
if (invert) {
let keepValues = this.value.filter(function (item) !this.has(item), new RealSet(values));
let addValues = values.filter(function (item) !this.has(item), new RealSet(this.value));
return addValues.concat(keepValues);
let old = this.value.map(String);
let new_ = values.map(String);
let map = Ary(this.value).concat(values).map(val => [String(val), val]).toObject();
let keepValues = old.filter(function (item) !this.has(item), new RealSet(new_));
let addValues = new_.filter(function (item) !this.has(item), new RealSet(old));
return addValues.concat(keepValues).map(s => map[s]);
}
return values;
}

View File

@@ -83,6 +83,13 @@ var Promises = Module("Promises", {
});
},
/**
* Returns true if the passed object is a promise.
*/
isPromise: function isPromise(obj) {
return isObject(obj) && typeof obj.then === "function";
},
/**
* Returns a promise which resolves after the given number of
* milliseconds.