Fix for slowdown if a file URL refers to a missing drive. Might be a windows-only thing.

This commit is contained in:
Charles Haley 2020-05-27 12:33:23 +01:00
parent 989f06b0b5
commit 912723e7e2
3 changed files with 15 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

View File

@ -28,7 +28,7 @@ from calibre.gui2.widgets import LineEditECM
from calibre.gui2.widgets2 import to_plain_text from calibre.gui2.widgets2 import to_plain_text
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
from calibre.utils.imghdr import what from calibre.utils.imghdr import what
from polyglot.builtins import filter, iteritems, itervalues, unicode_type from polyglot.builtins import filter, iteritems, itervalues, unicode_type, as_bytes
# Cleanup Qt markup {{{ # Cleanup Qt markup {{{
@ -764,7 +764,7 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{
with lopen(path, 'rb') as f: with lopen(path, 'rb') as f:
data = f.read() data = f.read()
except EnvironmentError: except EnvironmentError:
pass return QByteArray(I('blank-1x1.png', data=True))
else: else:
return QByteArray(data) return QByteArray(data)

View File

@ -11,7 +11,7 @@ from PyQt5.Qt import (
QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QIcon, QKeySequence, QLabel, QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QIcon, QKeySequence, QLabel,
QLayout, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea, QSize, QLayout, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea, QSize,
QSizePolicy, QStyle, QStyledItemDelegate, Qt, QTabWidget, QTextBrowser, QSizePolicy, QStyle, QStyledItemDelegate, Qt, QTabWidget, QTextBrowser,
QToolButton, QUndoCommand, QUndoStack, QWidget, pyqtSignal QToolButton, QUndoCommand, QUndoStack, QWidget, pyqtSignal, QByteArray
) )
from calibre.ebooks.metadata import rating_to_stars from calibre.ebooks.metadata import rating_to_stars
@ -482,6 +482,18 @@ class HTMLDisplay(QTextBrowser):
return return
self.anchor_clicked.emit(qurl) self.anchor_clicked.emit(qurl)
def loadResource(self, rtype, qurl):
if qurl.isLocalFile():
path = qurl.toLocalFile()
try:
with lopen(path, 'rb') as f:
data = f.read()
except EnvironmentError:
return QByteArray(I('blank-1x1.png', data=True))
else:
return QByteArray(data)
else:
QTextBrowser.loadResource(self, rtype, qurl)
class ScrollingTabWidget(QTabWidget): class ScrollingTabWidget(QTabWidget):