Fix paste when clipboard is empty
This commit is contained in:
parent
4f58d067b4
commit
a6789095b3
@ -25,6 +25,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt
|
|||||||
from PyQt5.QtGui import QClipboard
|
from PyQt5.QtGui import QClipboard
|
||||||
|
|
||||||
import qutebrowser.utils.url as urlutils
|
import qutebrowser.utils.url as urlutils
|
||||||
|
import qutebrowser.utils.message as message
|
||||||
import qutebrowser.config.config as config
|
import qutebrowser.config.config as config
|
||||||
import qutebrowser.commands.utils as cmdutils
|
import qutebrowser.commands.utils as cmdutils
|
||||||
from qutebrowser.widgets.tabwidget import TabWidget
|
from qutebrowser.widgets.tabwidget import TabWidget
|
||||||
@ -314,20 +315,27 @@ class TabbedBrowser(TabWidget):
|
|||||||
# FIXME display message or wrap
|
# FIXME display message or wrap
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@cmdutils.register(instance='mainwindow.tabs')
|
@cmdutils.register(instance='mainwindow.tabs', nargs=(0,1))
|
||||||
def paste(self, sel=False):
|
def paste(self, sel=False, tab=False):
|
||||||
"""Open a page from the clipboard.
|
"""Open a page from the clipboard.
|
||||||
|
|
||||||
Command handler for :paste.
|
Command handler for :paste.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
sel: True to use primary selection, False to use clipboard
|
sel: True to use primary selection, False to use clipboard
|
||||||
|
tab: True to open in a new tab.
|
||||||
"""
|
"""
|
||||||
# FIXME what happens for invalid URLs?
|
# FIXME what happens for invalid URLs?
|
||||||
clip = QApplication.clipboard()
|
clip = QApplication.clipboard()
|
||||||
mode = QClipboard.Selection if sel else QClipboard.Clipboard
|
mode = QClipboard.Selection if sel else QClipboard.Clipboard
|
||||||
url = clip.text(mode)
|
url = clip.text(mode)
|
||||||
|
if not url:
|
||||||
|
message.error("Clipboard is empty.")
|
||||||
|
return
|
||||||
logging.debug("Clipboard contained: '{}'".format(url))
|
logging.debug("Clipboard contained: '{}'".format(url))
|
||||||
|
if tab:
|
||||||
|
self.tabopen(url)
|
||||||
|
else:
|
||||||
self.cur.openurl(url)
|
self.cur.openurl(url)
|
||||||
|
|
||||||
@cmdutils.register(instance='mainwindow.tabs')
|
@cmdutils.register(instance='mainwindow.tabs')
|
||||||
@ -339,12 +347,7 @@ class TabbedBrowser(TabWidget):
|
|||||||
Args:
|
Args:
|
||||||
sel: True to use primary selection, False to use clipboard
|
sel: True to use primary selection, False to use clipboard
|
||||||
"""
|
"""
|
||||||
# FIXME what happens for invalid URLs?
|
self.paste(sel, True)
|
||||||
clip = QApplication.clipboard()
|
|
||||||
mode = QClipboard.Selection if sel else QClipboard.Clipboard
|
|
||||||
url = clip.text(mode)
|
|
||||||
logging.debug("Clipboard contained: '{}'".format(url))
|
|
||||||
self.tabopen(url)
|
|
||||||
|
|
||||||
def keyPressEvent(self, e):
|
def keyPressEvent(self, e):
|
||||||
"""Extend TabWidget (QWidget)'s keyPressEvent to emit a signal.
|
"""Extend TabWidget (QWidget)'s keyPressEvent to emit a signal.
|
||||||
|
Loading…
Reference in New Issue
Block a user