From 4473dafcb82103572810cb501ca8bce56ca93c5e Mon Sep 17 00:00:00 2001 From: abe Date: Wed, 22 Sep 2010 01:38:54 +0200 Subject: Added activeteLinkHintsModeWithQueue and resetLinkHintsMode to linkHints.js and added 'q cmd' and 'q help cmd' to commands.js --- commands.js | 4 +++- linkHints.js | 37 +++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/commands.js b/commands.js index a9fa0aba..01f7735c 100644 --- a/commands.js +++ b/commands.js @@ -112,6 +112,7 @@ function clearKeyMappingsAndSetDefaults() { mapKeyToCommand('f', 'activateLinkHintsMode'); mapKeyToCommand('F', 'activateLinkHintsModeToOpenInNewTab'); + mapKeyToCommand('q', 'activeteLinkHintsModeWithQueue'); mapKeyToCommand('/', 'enterFindMode'); mapKeyToCommand('n', 'performFind'); @@ -156,6 +157,7 @@ addCommand('focusInput', 'Focus the first (or n-th) text box on the pag addCommand('activateLinkHintsMode', 'Enter link hints mode to open links in current tab'); addCommand('activateLinkHintsModeToOpenInNewTab', 'Enter link hints mode to open links in new tab'); +addCommand('activeteLinkHintsModeWithQueue', 'Enter link hints mode to open multiple links in a new tab'); addCommand('enterFindMode', 'Enter find mode'); addCommand('performFind', 'Cycle forward to the next find match'); @@ -185,7 +187,7 @@ var commandGroups = { "scrollPageUp", "scrollFullPageDown", "reload", "toggleViewSource", "zoomIn", "zoomOut", "copyCurrentUrl", "goUp", "enterInsertMode", "focusInput", - "activateLinkHintsMode", "activateLinkHintsModeToOpenInNewTab", + "activateLinkHintsMode", "activateLinkHintsModeToOpenInNewTab", "activeteLinkHintsModeWithQueue", "enterFindMode", "performFind", "performBackwardsFind"], historyNavigation: ["goBack", "goForward"], diff --git a/linkHints.js b/linkHints.js index fcaa832b..5a7fb118 100644 --- a/linkHints.js +++ b/linkHints.js @@ -13,6 +13,7 @@ var hintMarkerContainingDiv = null; var hintKeystrokeQueue = []; var linkHintsModeActivated = false; var shouldOpenLinkHintInNewTab = false; +var shouldOpenLinkHintWithQueue = false; // Whether link hint's "open in current/new tab" setting is currently toggled var openLinkModeToggle = false; // Whether we have added to the page the CSS needed to display link hints. @@ -32,25 +33,32 @@ var clickableElementsXPath = (function() { })(); // We need this as a top-level function because our command system doesn't yet support arguments. -function activateLinkHintsModeToOpenInNewTab() { activateLinkHintsMode(true); } +function activateLinkHintsModeToOpenInNewTab() { activateLinkHintsMode(true, false); } -function activateLinkHintsMode(openInNewTab) { +function activeteLinkHintsModeWithQueue() { activateLinkHintsMode(true, true); } + +function activateLinkHintsMode(openInNewTab, withQueue) { if (!linkHintsCssAdded) addCssToPage(linkHintCss); // linkHintCss is declared by vimiumFrontend.js linkHintCssAdded = true; linkHintsModeActivated = true; - setOpenLinkMode(openInNewTab); + setOpenLinkMode(openInNewTab, withQueue); buildLinkHints(); document.addEventListener("keydown", onKeyDownInLinkHintsMode, true); document.addEventListener("keyup", onKeyUpInLinkHintsMode, true); } -function setOpenLinkMode(openInNewTab) { +function setOpenLinkMode(openInNewTab, withQueue) { shouldOpenLinkHintInNewTab = openInNewTab; - if (shouldOpenLinkHintInNewTab) - HUD.show("Open link in new tab"); - else - HUD.show("Open link in current tab"); + shouldOpenLinkHintWithQueue = withQueue + if (shouldOpenLinkHintWithQueue) { + HUD.show("Open multiple links in a new tab"); + } else { + if (shouldOpenLinkHintInNewTab) + HUD.show("Open link in new tab"); + else + HUD.show("Open link in current tab"); + } } /* @@ -206,9 +214,14 @@ function updateLinkHints() { setTimeout(function() { simulateClick(matchedLink); }, 400); else simulateClick(matchedLink); - matchedLink.focus(); + if (!shouldOpenLinkHintWithQueue) { + matchedLink.focus(); + deactivateLinkHintsMode(); + } else { + console.log("Reseting Hint Link Mode"); + resetLinkHintsMode(); + } } - deactivateLinkHintsMode(); } } @@ -289,6 +302,10 @@ function deactivateLinkHintsMode() { HUD.hide(); } +function resetLinkHintsMode() { + hintKeystrokeQueue = []; +} + /* * Creates a link marker for the given link. */ -- cgit v1.2.3 From 7c4f41a35b6af3efbc3adfa5a1e6bbab667fc096 Mon Sep 17 00:00:00 2001 From: abe Date: Thu, 23 Sep 2010 00:25:11 +0200 Subject: added resetLinkHintsMode --- linkHints.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/linkHints.js b/linkHints.js index 5a7fb118..b30c74e0 100644 --- a/linkHints.js +++ b/linkHints.js @@ -151,9 +151,10 @@ function isVisible(element, clientRect) { } function onKeyDownInLinkHintsMode(event) { + console.log("Key Down"); if (event.keyCode == keyCodes.shiftKey && !openLinkModeToggle) { // Toggle whether to open link in a new or current tab. - setOpenLinkMode(!shouldOpenLinkHintInNewTab); + setOpenLinkMode(!shouldOpenLinkHintInNewTab, shouldOpenLinkHintWithQueue); openLinkModeToggle = true; } @@ -185,7 +186,7 @@ function onKeyDownInLinkHintsMode(event) { function onKeyUpInLinkHintsMode(event) { if (event.keyCode == keyCodes.shiftKey && openLinkModeToggle) { // Revert toggle on whether to open link in new or current tab. - setOpenLinkMode(!shouldOpenLinkHintInNewTab); + setOpenLinkMode(!shouldOpenLinkHintInNewTab, shouldOpenLinkHintWithQueue); openLinkModeToggle = false; } event.stopPropagation(); @@ -210,17 +211,25 @@ function updateLinkHints() { } else { // When we're opening the link in the current tab, don't navigate to the selected link immediately; // we want to give the user some feedback depicting which link they've selected by focusing it. - if (!shouldOpenLinkHintInNewTab) - setTimeout(function() { simulateClick(matchedLink); }, 400); - else + if (shouldOpenLinkHintWithQueue) { + simulateClick(matchedLink); + resetLinkHintsMode(); + } else if (shouldOpenLinkHintInNewTab) { simulateClick(matchedLink); - if (!shouldOpenLinkHintWithQueue) { + matchedLink.focus(); + deactivateLinkHintsMode(); + } else { + setTimeout(function() { simulateClick(matchedLink); }, 400); + matchedLink.focus(); + deactivateLinkHintsMode(); + } + /*if (!shouldOpenLinkHintWithQueue) { matchedLink.focus(); deactivateLinkHintsMode(); } else { console.log("Reseting Hint Link Mode"); resetLinkHintsMode(); - } + }*/ } } } @@ -303,7 +312,8 @@ function deactivateLinkHintsMode() { } function resetLinkHintsMode() { - hintKeystrokeQueue = []; + deactivateLinkHintsMode(); + activeteLinkHintsModeWithQueue(); } /* -- cgit v1.2.3 From fd909e1bdbe10d598522498c32a6c4b8db231644 Mon Sep 17 00:00:00 2001 From: abe Date: Thu, 23 Sep 2010 00:26:49 +0200 Subject: Clean up code --- linkHints.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/linkHints.js b/linkHints.js index b30c74e0..c470dfe0 100644 --- a/linkHints.js +++ b/linkHints.js @@ -223,13 +223,6 @@ function updateLinkHints() { matchedLink.focus(); deactivateLinkHintsMode(); } - /*if (!shouldOpenLinkHintWithQueue) { - matchedLink.focus(); - deactivateLinkHintsMode(); - } else { - console.log("Reseting Hint Link Mode"); - resetLinkHintsMode(); - }*/ } } } -- cgit v1.2.3 From 547ca0464279f2fcc1b1da8379b32dc1caeb882f Mon Sep 17 00:00:00 2001 From: abe Date: Thu, 23 Sep 2010 00:51:08 +0200 Subject: Added ab3 to Credits ;) --- CREDITS | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS b/CREDITS index 8c986adc..b9af3760 100644 --- a/CREDITS +++ b/CREDITS @@ -15,5 +15,6 @@ Contributors: markstos rodimius tsigo + Werner Laurensse (github: ab3) Feel free to add real names in addition to GitHub usernames. -- cgit v1.2.3 From 7329e2dbd195c17c53acb647247194eb7536ddec Mon Sep 17 00:00:00 2001 From: Werner Laurensse Date: Thu, 23 Sep 2010 00:55:13 +0200 Subject: Updated README --- README.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/README.markdown b/README.markdown index 2e144110..3908c809 100644 --- a/README.markdown +++ b/README.markdown @@ -36,6 +36,7 @@ Navigating the current page: scroll up a full page f activate link hints mode to open in current tab F activate link hints mode to open in new tab + q activate link hints mode to open multiple links in a new tab r reload gf view source zi zoom in -- cgit v1.2.3