mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
support html stripping on middle click paste too
This commit is contained in:
parent
3cd54d349a
commit
ccf571290b
1 changed files with 21 additions and 10 deletions
|
@ -830,9 +830,18 @@ class EditorWebView(AnkiWebView):
|
||||||
if shiftPaste:
|
if shiftPaste:
|
||||||
self.triggerPageAction(QWebPage.Paste)
|
self.triggerPageAction(QWebPage.Paste)
|
||||||
QWebView.keyPressEvent(self, evt)
|
QWebView.keyPressEvent(self, evt)
|
||||||
if self.origClip:
|
|
||||||
self.restoreClip()
|
self.restoreClip()
|
||||||
|
|
||||||
|
def mouseReleaseEvent(self, evt):
|
||||||
|
if not isMac and not isWin and evt.button() == Qt.MidButton:
|
||||||
|
# middle click on x11; munge the clipboard before standard
|
||||||
|
# handling
|
||||||
|
self.prepareClip(mode=QClipboard.Selection)
|
||||||
|
AnkiWebView.mouseReleaseEvent(self, evt)
|
||||||
|
self.restoreClip(mode=QClipboard.Selection)
|
||||||
|
else:
|
||||||
|
AnkiWebView.mouseReleaseEvent(self, evt)
|
||||||
|
|
||||||
# Buggy; disable for now.
|
# Buggy; disable for now.
|
||||||
# def contextMenuEvent(self, evt):
|
# def contextMenuEvent(self, evt):
|
||||||
# # adjust in case the user is going to paste
|
# # adjust in case the user is going to paste
|
||||||
|
@ -863,10 +872,10 @@ class EditorWebView(AnkiWebView):
|
||||||
evt.accept()
|
evt.accept()
|
||||||
QWebView.dropEvent(self, new)
|
QWebView.dropEvent(self, new)
|
||||||
|
|
||||||
def prepareClip(self, keep=False):
|
def prepareClip(self, keep=False, mode=QClipboard.Clipboard):
|
||||||
clip = self.editor.mw.app.clipboard()
|
clip = self.editor.mw.app.clipboard()
|
||||||
mime = clip.mimeData()
|
mime = clip.mimeData(mode=mode)
|
||||||
self.saveClip()
|
self.saveClip(mode=mode)
|
||||||
if keep:
|
if keep:
|
||||||
new = QMimeData()
|
new = QMimeData()
|
||||||
if mime.hasHtml():
|
if mime.hasHtml():
|
||||||
|
@ -876,15 +885,17 @@ class EditorWebView(AnkiWebView):
|
||||||
mime = new
|
mime = new
|
||||||
else:
|
else:
|
||||||
mime = self._processMime(mime)
|
mime = self._processMime(mime)
|
||||||
clip.setMimeData(mime)
|
clip.setMimeData(mime, mode=mode)
|
||||||
|
|
||||||
def restoreClip(self):
|
def restoreClip(self, mode=QClipboard.Clipboard):
|
||||||
|
if not self.origClip:
|
||||||
|
return
|
||||||
clip = self.editor.mw.app.clipboard()
|
clip = self.editor.mw.app.clipboard()
|
||||||
clip.setMimeData(self.origClip)
|
clip.setMimeData(self.origClip, mode=mode)
|
||||||
|
|
||||||
def saveClip(self):
|
def saveClip(self, mode):
|
||||||
# we don't own the clipboard object, so we need to copy it
|
# we don't own the clipboard object, so we need to copy it
|
||||||
mime = self.editor.mw.app.clipboard().mimeData()
|
mime = self.editor.mw.app.clipboard().mimeData(mode=mode)
|
||||||
n = QMimeData()
|
n = QMimeData()
|
||||||
if mime.hasText():
|
if mime.hasText():
|
||||||
n.setText(mime.text())
|
n.setText(mime.text())
|
||||||
|
|
Loading…
Reference in a new issue