mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Restore copying of HTML
This commit is contained in:
parent
0a45fa19af
commit
02848afe3c
@ -661,9 +661,13 @@ class DocumentView(QWebView): # {{{
|
||||
def selected_text(self):
|
||||
return self.document.selectedText().replace(u'\u00ad', u'').strip()
|
||||
|
||||
@property
|
||||
def selected_html(self):
|
||||
return self.document.selectedHtml().replace(u'\u00ad', u'').strip()
|
||||
|
||||
def selection_changed(self):
|
||||
if self.manager is not None:
|
||||
self.manager.selection_changed(self.selected_text)
|
||||
self.manager.selection_changed(self.selected_text, self.selected_html)
|
||||
|
||||
def _selectedText(self):
|
||||
t = unicode(self.selectedText()).strip()
|
||||
|
@ -10,8 +10,8 @@ from functools import partial
|
||||
from threading import Thread
|
||||
|
||||
from PyQt5.Qt import (
|
||||
QAction, QApplication, QByteArray, QIcon, QInputDialog, QModelIndex, QObject,
|
||||
QPropertyAnimation, QSize, Qt, QTime, QTimer, pyqtSignal
|
||||
QAction, QApplication, QByteArray, QIcon, QInputDialog, QMimeData, QModelIndex,
|
||||
QObject, QPropertyAnimation, QSize, Qt, QTime, QTimer, pyqtSignal
|
||||
)
|
||||
|
||||
from calibre import as_unicode, force_unicode, isbytestring, prints
|
||||
@ -174,7 +174,7 @@ class EbookViewer(MainWindow):
|
||||
self.pending_toc_click = None
|
||||
self.cursor_hidden = False
|
||||
self.existing_bookmarks= []
|
||||
self.selected_text = None
|
||||
self.selected_text = self.selected_html = None
|
||||
self.was_maximized = False
|
||||
self.read_settings()
|
||||
self.autosave_timer = t = QTimer(self)
|
||||
@ -570,13 +570,19 @@ class EbookViewer(MainWindow):
|
||||
self.link_clicked(url)
|
||||
self.view.setFocus(Qt.OtherFocusReason)
|
||||
|
||||
def selection_changed(self, selected_text):
|
||||
self.selected_text = selected_text.strip()
|
||||
self.action_copy.setEnabled(bool(self.selected_text))
|
||||
def selection_changed(self, selected_text, selected_html):
|
||||
self.selected_text = selected_text
|
||||
self.selected_html = selected_html
|
||||
self.action_copy.setEnabled(bool(self.selected_text) or bool(self.selected_html))
|
||||
|
||||
def copy(self, x=False):
|
||||
if self.selected_text:
|
||||
QApplication.clipboard().setText(self.selected_text)
|
||||
if self.selected_text or self.selected_html:
|
||||
md = QMimeData()
|
||||
if self.selected_text:
|
||||
md.setText(self.selected_text)
|
||||
if self.selected_html:
|
||||
md.setHtml(self.selected_html)
|
||||
QApplication.clipboard().setMimeData(md)
|
||||
|
||||
def back(self, x):
|
||||
pos = self.history.back(self.pos.value())
|
||||
|
Loading…
x
Reference in New Issue
Block a user