Add --pretty flag to :yank
With --pretty, the URL is yanked in a "pretty form", with most percent-encoded characters decoded. Partially fixes #1372.
This commit is contained in:
parent
d33fae455d
commit
bd6783c7e6
@ -654,13 +654,14 @@ class CommandDispatcher:
|
|||||||
frame.scroll(dx, dy)
|
frame.scroll(dx, dy)
|
||||||
|
|
||||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||||
def yank(self, title=False, sel=False, domain=False):
|
def yank(self, title=False, sel=False, domain=False, pretty=False):
|
||||||
"""Yank the current URL/title to the clipboard or primary selection.
|
"""Yank the current URL/title to the clipboard or primary selection.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
sel: Use the primary selection instead of the clipboard.
|
sel: Use the primary selection instead of the clipboard.
|
||||||
title: Yank the title instead of the URL.
|
title: Yank the title instead of the URL.
|
||||||
domain: Yank only the scheme, domain, and port number.
|
domain: Yank only the scheme, domain, and port number.
|
||||||
|
pretty: Yank the URL in pretty decoded form.
|
||||||
"""
|
"""
|
||||||
if title:
|
if title:
|
||||||
s = self._tabbed_browser.page_title(self._current_index())
|
s = self._tabbed_browser.page_title(self._current_index())
|
||||||
@ -672,8 +673,11 @@ class CommandDispatcher:
|
|||||||
':' + str(port) if port > -1 else '')
|
':' + str(port) if port > -1 else '')
|
||||||
what = 'domain'
|
what = 'domain'
|
||||||
else:
|
else:
|
||||||
s = self._current_url().toString(
|
cur_url = self._current_url()
|
||||||
QUrl.FullyEncoded | QUrl.RemovePassword)
|
if pretty:
|
||||||
|
s = cur_url.toString(QUrl.RemovePassword)
|
||||||
|
else:
|
||||||
|
s = cur_url.toString(QUrl.FullyEncoded | QUrl.RemovePassword)
|
||||||
what = 'URL'
|
what = 'URL'
|
||||||
|
|
||||||
if sel and QApplication.clipboard().supportsSelection():
|
if sel and QApplication.clipboard().supportsSelection():
|
||||||
|
10
tests/integration/data/title with spaces.html
Normal file
10
tests/integration/data/title with spaces.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Test title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
foo
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -33,6 +33,18 @@ Feature: Yanking and pasting.
|
|||||||
Then the message "Yanked domain to clipboard: http://localhost:(port)" should be shown
|
Then the message "Yanked domain to clipboard: http://localhost:(port)" should be shown
|
||||||
And the clipboard should contain "http://localhost:(port)"
|
And the clipboard should contain "http://localhost:(port)"
|
||||||
|
|
||||||
|
Scenario: Yanking fully encoded URL
|
||||||
|
When I open data/title with spaces.html
|
||||||
|
And I run :yank
|
||||||
|
Then the message "Yanked URL to clipboard: http://localhost:(port)/data/title%20with%20spaces.html" should be shown
|
||||||
|
And the clipboard should contain "http://localhost:(port)/data/title%20with%20spaces.html"
|
||||||
|
|
||||||
|
Scenario: Yanking pretty decoded URL
|
||||||
|
When I open data/title with spaces.html
|
||||||
|
And I run :yank --pretty
|
||||||
|
Then the message "Yanked URL to clipboard: http://localhost:(port)/data/title with spaces.html" should be shown
|
||||||
|
And the clipboard should contain "http://localhost:(port)/data/title with spaces.html"
|
||||||
|
|
||||||
#### :paste
|
#### :paste
|
||||||
|
|
||||||
Scenario: Pasting an URL
|
Scenario: Pasting an URL
|
||||||
|
Loading…
Reference in New Issue
Block a user