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):
|
def selected_text(self):
|
||||||
return self.document.selectedText().replace(u'\u00ad', u'').strip()
|
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):
|
def selection_changed(self):
|
||||||
if self.manager is not None:
|
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):
|
def _selectedText(self):
|
||||||
t = unicode(self.selectedText()).strip()
|
t = unicode(self.selectedText()).strip()
|
||||||
|
@ -10,8 +10,8 @@ from functools import partial
|
|||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QAction, QApplication, QByteArray, QIcon, QInputDialog, QModelIndex, QObject,
|
QAction, QApplication, QByteArray, QIcon, QInputDialog, QMimeData, QModelIndex,
|
||||||
QPropertyAnimation, QSize, Qt, QTime, QTimer, pyqtSignal
|
QObject, QPropertyAnimation, QSize, Qt, QTime, QTimer, pyqtSignal
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre import as_unicode, force_unicode, isbytestring, prints
|
from calibre import as_unicode, force_unicode, isbytestring, prints
|
||||||
@ -174,7 +174,7 @@ class EbookViewer(MainWindow):
|
|||||||
self.pending_toc_click = None
|
self.pending_toc_click = None
|
||||||
self.cursor_hidden = False
|
self.cursor_hidden = False
|
||||||
self.existing_bookmarks= []
|
self.existing_bookmarks= []
|
||||||
self.selected_text = None
|
self.selected_text = self.selected_html = None
|
||||||
self.was_maximized = False
|
self.was_maximized = False
|
||||||
self.read_settings()
|
self.read_settings()
|
||||||
self.autosave_timer = t = QTimer(self)
|
self.autosave_timer = t = QTimer(self)
|
||||||
@ -570,13 +570,19 @@ class EbookViewer(MainWindow):
|
|||||||
self.link_clicked(url)
|
self.link_clicked(url)
|
||||||
self.view.setFocus(Qt.OtherFocusReason)
|
self.view.setFocus(Qt.OtherFocusReason)
|
||||||
|
|
||||||
def selection_changed(self, selected_text):
|
def selection_changed(self, selected_text, selected_html):
|
||||||
self.selected_text = selected_text.strip()
|
self.selected_text = selected_text
|
||||||
self.action_copy.setEnabled(bool(self.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):
|
def copy(self, x=False):
|
||||||
if self.selected_text:
|
if self.selected_text or self.selected_html:
|
||||||
QApplication.clipboard().setText(self.selected_text)
|
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):
|
def back(self, x):
|
||||||
pos = self.history.back(self.pos.value())
|
pos = self.history.back(self.pos.value())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user