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:
Panagiotis Ktistakis 2016-04-18 22:54:17 +03:00
parent d33fae455d
commit bd6783c7e6
3 changed files with 29 additions and 3 deletions

View File

@ -654,13 +654,14 @@ class CommandDispatcher:
frame.scroll(dx, dy)
@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.
Args:
sel: Use the primary selection instead of the clipboard.
title: Yank the title instead of the URL.
domain: Yank only the scheme, domain, and port number.
pretty: Yank the URL in pretty decoded form.
"""
if title:
s = self._tabbed_browser.page_title(self._current_index())
@ -672,8 +673,11 @@ class CommandDispatcher:
':' + str(port) if port > -1 else '')
what = 'domain'
else:
s = self._current_url().toString(
QUrl.FullyEncoded | QUrl.RemovePassword)
cur_url = self._current_url()
if pretty:
s = cur_url.toString(QUrl.RemovePassword)
else:
s = cur_url.toString(QUrl.FullyEncoded | QUrl.RemovePassword)
what = 'URL'
if sel and QApplication.clipboard().supportsSelection():

View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test title</title>
</head>
<body>
foo
</body>
</html>

View File

@ -33,6 +33,18 @@ Feature: Yanking and pasting.
Then the message "Yanked domain to clipboard: http://localhost:(port)" should be shown
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
Scenario: Pasting an URL