mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-23 04:07:58 +01:00
new liberator.util.readFromClipboard, so also non-Firefox extensions have access to the clipboard
This commit is contained in:
@@ -79,6 +79,16 @@ liberator.util = { //{{{
|
||||
return "<unknown type>";
|
||||
},
|
||||
|
||||
copyToClipboard: function (str, verbose)
|
||||
{
|
||||
var clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
|
||||
.getService(Components.interfaces.nsIClipboardHelper);
|
||||
clipboardHelper.copyString(str);
|
||||
|
||||
if (verbose)
|
||||
liberator.echo("Yanked " + str, liberator.commandline.FORCE_SINGLELINE);
|
||||
},
|
||||
|
||||
escapeHTML: function (str)
|
||||
{
|
||||
// XXX: the following code is _much_ slower than a simple .replace()
|
||||
@@ -236,6 +246,34 @@ liberator.util = { //{{{
|
||||
return string;
|
||||
},
|
||||
|
||||
// same as Firefox's readFromClipboard function, but needed for apps like Thunderbird
|
||||
readFromClipboard: function()
|
||||
{
|
||||
var url;
|
||||
try
|
||||
{
|
||||
var clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].getService(Components.interfaces.nsIClipboard);
|
||||
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
|
||||
trans.addDataFlavor("text/unicode");
|
||||
if (clipboard.supportsSelectionClipboard())
|
||||
clipboard.getData(trans, clipboard.kSelectionClipboard);
|
||||
else
|
||||
clipboard.getData(trans, clipboard.kGlobalClipboard);
|
||||
|
||||
var data = {};
|
||||
var dataLen = {};
|
||||
trans.getTransferData("text/unicode", data, dataLen);
|
||||
if (data)
|
||||
{
|
||||
data = data.value.QueryInterface(Components.interfaces.nsISupportsString);
|
||||
url = data.data.substring(0, dataLen.value / 2);
|
||||
}
|
||||
}
|
||||
catch (ex) { }
|
||||
|
||||
return url;
|
||||
},
|
||||
|
||||
// takes a string like 'google bla, www.osnews.com'
|
||||
// and returns an array ['www.google.com/search?q=bla', 'www.osnews.com']
|
||||
stringToURLArray: function (str)
|
||||
|
||||
Reference in New Issue
Block a user