Fix paste when clipboard is empty

This commit is contained in:
Florian Bruhin 2014-04-21 20:29:58 +02:00
parent 4f58d067b4
commit a6789095b3

View File

@ -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.