From 5279a3b5cd5de31a924d52fa6fb35f0ae4dbb02a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 11 Jun 2021 20:14:52 +0530 Subject: [PATCH] Check for deletion before emitting signal to avoid runtime error when aborting with interrupt --- src/calibre/ebooks/pdf/html_writer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/pdf/html_writer.py b/src/calibre/ebooks/pdf/html_writer.py index c61e140ff0..e4b37c438a 100644 --- a/src/calibre/ebooks/pdf/html_writer.py +++ b/src/calibre/ebooks/pdf/html_writer.py @@ -15,10 +15,11 @@ from html5_parser import parse from io import BytesIO from itertools import count, repeat from qt.core import ( - QApplication, QMarginsF, QObject, QPageLayout, Qt, QTimer, QUrl, pyqtSignal + QApplication, QMarginsF, QObject, QPageLayout, Qt, QTimer, QUrl, pyqtSignal, sip +) +from qt.webengine import ( + QWebEnginePage, QWebEngineProfile, QWebEngineUrlRequestInterceptor ) -from qt.webengine import QWebEngineUrlRequestInterceptor -from qt.webengine import QWebEnginePage, QWebEngineProfile from calibre import detect_ncpus, human_readable, prepare_string_for_xml from calibre.constants import __version__, iswindows @@ -226,7 +227,8 @@ class Renderer(QWebEnginePage): def printing_done(self, pdf_data): self.working = False - self.work_done.emit(self, bytes(pdf_data)) + if not sip.isdeleted(self): + self.work_done.emit(self, bytes(pdf_data)) def convert_html_file(self, path, page_layout, settle_time=0, wait_for_title=None): self.working = True