aboutsummaryrefslogtreecommitdiffstats
path: root/bookmarks.js
diff options
context:
space:
mode:
authorAlex Kovar2010-10-31 12:55:36 -0500
committerAlex Kovar2010-10-31 12:55:36 -0500
commit94da6e9fd2adbc4887b04d8d5b3b0dd9eeffdbbc (patch)
tree920aff443d7aef9c4e2faa3d253b73d93c5d548b /bookmarks.js
parent9b7b313930beb1ddf0f132993caa8f59ff319e06 (diff)
downloadvimium-94da6e9fd2adbc4887b04d8d5b3b0dd9eeffdbbc.tar.bz2
refacted completion dialog to handle key inputs on its own
Diffstat (limited to 'bookmarks.js')
-rw-r--r--bookmarks.js50
1 files changed, 10 insertions, 40 deletions
diff --git a/bookmarks.js b/bookmarks.js
index 6708067e..1ec0c3d1 100644
--- a/bookmarks.js
+++ b/bookmarks.js
@@ -29,7 +29,6 @@ function activateBookmarkFindMode() {
},
enable: function() {
this.enabled = true;
- this.query = [];
if(!this.initialized) {
initialize.call(this)
@@ -46,12 +45,6 @@ function activateBookmarkFindMode() {
this.completionDialog.hide()
HUD.hide();
},
- getQueryString: function() {
- return this.query.join("")
- },
- find: function(query) {
- this.finder.find(query)
- },
renderHUD: function() {
if (this.newTab)
HUD.show("Open bookmark in new tab");
@@ -64,18 +57,10 @@ function activateBookmarkFindMode() {
// private method
var initialize = function() {
var self = this;
- this.initialized = true;
- this.finder = new BookmarkFinder({
- onResultsFound: function(bookmarks) {
- self.bookmarksFound = bookmarks;
- if(bookmarks.length>10) {
- bookmarks=bookmarks.slice(0, 10)
- }
- self.completionDialog.showCompletions(self.getQueryString(), bookmarks)
- }
- });
+ self.initialized = true;
- this.completionDialog = new CompletionDialog({
+ self.completionDialog = new CompletionDialog({
+ source: findBookmarks,
onSelect: function(selection) {
var url = selection.url
var isABookmarklet = function(url) {
@@ -121,18 +106,6 @@ function activateBookmarkFindMode() {
if (isEscape(event)) {
self.disable();
}
- else if (event.keyCode == keyCodes.backspace || event.keyCode == keyCodes.deleteKey) {
- if (self.query.length == 0) {
- self.disable();
- } else {
- self.query.pop();
- self.finder.find(self.getQueryString())
- }
- }
- else if(keyChar!=="up" && keyChar!=="down" && keyChar!=="left" && keyChar!="right") {
- self.query.push(keyChar);
- self.finder.find(self.getQueryString())
- }
event.stopPropagation();
event.preventDefault();
@@ -149,17 +122,14 @@ function activateBookmarkFindMode() {
})
}
- var BookmarkFinder = function(config) {
- this.port = chrome.extension.connect({ name: "getBookmarks" })
- this.port.onMessage.addListener(function(msg) {
- (config.onResultsFound && config.onResultsFound(msg.bookmarks))
+ var findBookmarks = function(searchString, callback) {
+ var port = chrome.extension.connect({ name: "getBookmarks" })
+ port.onMessage.addListener(function(msg) {
+ callback(msg.bookmarks)
+ port = null
})
- }
- BookmarkFinder.prototype = {
- find: function(query) {
- this.port.postMessage({query:query})
- }
- }
+ port.postMessage({query:searchString})
+ };
//export global
window.BookmarkMode = BookmarkMode;