1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 19:07:58 +01:00

add "s" and "a" mappings to extended hints mode for saving hint targets

This commit is contained in:
Doug Kearns
2007-10-09 12:47:31 +00:00
parent e4b3f111f2
commit 35f1205176
3 changed files with 36 additions and 2 deletions

2
NEWS
View File

@@ -2,6 +2,8 @@
2007-xx-xx: 2007-xx-xx:
* version 0.6 * version 0.6
* THIS VERSION ONLY WORKS WITH FIREFOX 3.0 * THIS VERSION ONLY WORKS WITH FIREFOX 3.0
* added "s" and "a" mappings to extended hints mode for saving hint
targets
* "d", "D" and :bdelete support count now * "d", "D" and :bdelete support count now
* :back/:forward can use tabcompletion * :back/:forward can use tabcompletion
* :undoall support, and tabcompletion for :undo <tab> * :undoall support, and tabcompletion for :undo <tab>

View File

@@ -452,6 +452,8 @@ function Hints() //{{{
}; };
// TODO: move these functions somewhere more general
// this function 'click' an element, which also works // this function 'click' an element, which also works
// for javascript links // for javascript links
this.openHints = function(new_tab, new_window) this.openHints = function(new_tab, new_window)
@@ -546,6 +548,28 @@ function Hints() //{{{
vimperator.echo("Yanked " + loc, vimperator.commandline.FORCE_SINGLELINE); vimperator.echo("Yanked " + loc, vimperator.commandline.FORCE_SINGLELINE);
}; };
this.saveHints = function(skip_prompt)
{
var elems = this.hintedElements();
for (var i = 0; i < elems.length; i++)
{
var doc = elems[i].ownerDocument;
var url = makeURLAbsolute(elems[i].refElem.baseURI, elems[i].refElem.href);
var text = elems[i].refElem.textContent;
try
{
urlSecurityCheck(url, doc.nodePrincipal);
saveURL(url, text, null, true, skip_prompt, makeURI(url, doc.characterSet));
}
catch (e)
{
vimperator.echoerr(e);
}
}
}
function setMouseOverElement(elem) function setMouseOverElement(elem)
{ {
var doc = window.document; var doc = window.document;

View File

@@ -1033,7 +1033,8 @@ function Mappings() //{{{
"<li><code class=\"mapping\">t</code> to open its location in a new tab</li>" + "<li><code class=\"mapping\">t</code> to open its location in a new tab</li>" +
"<li><code class=\"mapping\">O</code> to open its location in an <code class=\"command\">:open</code> query (not implemented yet)</li>" + "<li><code class=\"mapping\">O</code> to open its location in an <code class=\"command\">:open</code> query (not implemented yet)</li>" +
"<li><code class=\"mapping\">T</code> to open its location in an <code class=\"command\">:tabopen</code> query (not implemented yet)</li>" + "<li><code class=\"mapping\">T</code> to open its location in an <code class=\"command\">:tabopen</code> query (not implemented yet)</li>" +
"<li><code class=\"mapping\">s</code> to save its destination (not implemented yet)</li>" + "<li><code class=\"mapping\">s</code> to save its destination</li>" +
"<li><code class=\"mapping\">a</code> to save its destination (prompting for save location)</li>" +
"<li><code class=\"mapping\">&lt;C-w&gt;</code> to open its destination in a new window</li>" + "<li><code class=\"mapping\">&lt;C-w&gt;</code> to open its destination in a new window</li>" +
"</ul>" + "</ul>" +
"Multiple hints can be separated by commas where it makes sense. <code class=\"mapping\">;ab,ac,adt</code> opens <code>AB</code>, <code>AC</code> and <code>AD</code> in a new tab.<br/>" + "Multiple hints can be separated by commas where it makes sense. <code class=\"mapping\">;ab,ac,adt</code> opens <code>AB</code>, <code>AC</code> and <code>AD</code> in a new tab.<br/>" +
@@ -1110,7 +1111,14 @@ function Mappings() //{{{
} }
)); ));
addDefaultMap(new Map([vimperator.modes.HINTS], ["s"], addDefaultMap(new Map([vimperator.modes.HINTS], ["s"],
function() { vimperator.echoerr('Saving of links not yet implemented'); }, function() { vimperator.hints.saveHints(true); },
{
cancel_mode: true,
always_active: false
}
));
addDefaultMap(new Map([vimperator.modes.HINTS], ["a"],
function() { vimperator.hints.saveHints(false); },
{ {
cancel_mode: true, cancel_mode: true,
always_active: false always_active: false