mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add fetching calres: resources to HTMLDisplay. This permits a copy of a note in a composite column to display properly.
This commit is contained in:
parent
b0766d7a62
commit
2856922aeb
@ -9,11 +9,12 @@ from qt.core import (
|
|||||||
QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence, QLabel, QLayout, QMenu,
|
QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence, QLabel, QLayout, QMenu,
|
||||||
QMimeData, QPainter, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea,
|
QMimeData, QPainter, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea,
|
||||||
QSize, QSizePolicy, QStyle, QStyledItemDelegate, QStyleOptionToolButton,
|
QSize, QSizePolicy, QStyle, QStyledItemDelegate, QStyleOptionToolButton,
|
||||||
QStylePainter, Qt, QTabWidget, QTextBrowser, QTextCursor, QTimer, QToolButton,
|
QStylePainter, Qt, QTabWidget, QTextBrowser, QTextDocument, QTextCursor, QTimer, QToolButton,
|
||||||
QUndoCommand, QUndoStack, QUrl, QWidget, pyqtSignal,
|
QUndoCommand, QUndoStack, QUrl, QWidget, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre import prepare_string_for_xml
|
from calibre import prepare_string_for_xml
|
||||||
|
from calibre.db.notes.connect import RESOURCE_URL_SCHEME
|
||||||
from calibre.constants import builtin_colors_dark, builtin_colors_light
|
from calibre.constants import builtin_colors_dark, builtin_colors_light
|
||||||
from calibre.ebooks.metadata import rating_to_stars
|
from calibre.ebooks.metadata import rating_to_stars
|
||||||
from calibre.gui2 import UNDEFINED_QDATETIME, gprefs, rating_font
|
from calibre.gui2 import UNDEFINED_QDATETIME, gprefs, rating_font
|
||||||
@ -589,6 +590,14 @@ class HTMLDisplay(QTextBrowser):
|
|||||||
return QByteArray(data)
|
return QByteArray(data)
|
||||||
elif qurl.scheme() == 'calibre-icon':
|
elif qurl.scheme() == 'calibre-icon':
|
||||||
return QIcon.icon_as_png(qurl.path().lstrip('/'), as_bytearray=True)
|
return QIcon.icon_as_png(qurl.path().lstrip('/'), as_bytearray=True)
|
||||||
|
elif qurl.scheme() == RESOURCE_URL_SCHEME and int(rtype) == int(QTextDocument.ResourceType.ImageResource):
|
||||||
|
from calibre.gui2.ui import get_gui
|
||||||
|
gui = get_gui()
|
||||||
|
if gui is not None:
|
||||||
|
db = gui.current_db.new_api
|
||||||
|
resource = db.get_notes_resource(f'{qurl.host()}:{qurl.path()[1:]}')
|
||||||
|
if resource is not None:
|
||||||
|
return QByteArray(resource['data'])
|
||||||
else:
|
else:
|
||||||
return QTextBrowser.loadResource(self, rtype, qurl)
|
return QTextBrowser.loadResource(self, rtype, qurl)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user