diff -r 4c60a21ce6dd -r d3d64f3128b3 WebBrowser/SpeedDial/SpeedDial.py --- a/WebBrowser/SpeedDial/SpeedDial.py Wed Feb 07 18:57:46 2018 +0100 +++ b/WebBrowser/SpeedDial/SpeedDial.py Wed Feb 07 20:14:09 2018 +0100 @@ -323,7 +323,8 @@ thumbnailer = PageThumbnailer(self) thumbnailer.setUrl(QUrl.fromEncoded(url.encode("utf-8"))) thumbnailer.setLoadTitle(loadTitle) - thumbnailer.thumbnailCreated.connect(self.__thumbnailCreated) + thumbnailer.thumbnailCreated.connect( + lambda imag: self.__thumbnailCreated(imag, thumbnailer)) self.__thumbnailers.append(thumbnailer) thumbnailer.start() @@ -385,43 +386,41 @@ """ return self.__speedDialSize - def __thumbnailCreated(self, image): + def __thumbnailCreated(self, image, thumbnailer): """ Private slot to handle the creation of a thumbnail image. - @param image thumbnail image (QPixmap) + @param image thumbnail image + @type QPixmap + @param thumbnailer reference to the page thumbnailer + @type PageThumbnailer """ - from .PageThumbnailer import PageThumbnailer - thumbnailer = self.sender() - if not isinstance(thumbnailer, PageThumbnailer) or \ - thumbnailer not in self.__thumbnailers: - return - - loadTitle = thumbnailer.loadTitle() - title = thumbnailer.title() - url = thumbnailer.url().toString() - fileName = self.__imageFileName(url) - - if image.isNull(): - fileName = "qrc:icons/brokenPage.png" - title = self.tr("Unable to load") - page = self.pageForUrl(thumbnailer.url()) - page.broken = True - else: - if not image.save(fileName, "PNG"): - qWarning( - "SpeedDial.__thumbnailCreated: Cannot save thumbnail" - " to {0}".format(fileName)) - - self.__regenerateScript = True - thumbnailer.deleteLater() - self.__thumbnailers.remove(thumbnailer) - - if loadTitle: - self.pageTitleLoaded.emit(url, title) - - self.thumbnailLoaded.emit( - url, pixmapToDataUrl(QPixmap(fileName)).toString()) + if thumbnailer in self.__thumbnailers: + loadTitle = thumbnailer.loadTitle() + title = thumbnailer.title() + url = thumbnailer.url().toString() + fileName = self.__imageFileName(url) + + if image.isNull(): + fileName = "qrc:icons/brokenPage.png" + title = self.tr("Unable to load") + page = self.pageForUrl(thumbnailer.url()) + page.broken = True + else: + if not image.save(fileName, "PNG"): + qWarning( + "SpeedDial.__thumbnailCreated: Cannot save thumbnail" + " to {0}".format(fileName)) + + self.__regenerateScript = True + thumbnailer.deleteLater() + self.__thumbnailers.remove(thumbnailer) + + if loadTitle: + self.pageTitleLoaded.emit(url, title) + + self.thumbnailLoaded.emit( + url, pixmapToDataUrl(QPixmap(fileName)).toString()) def __escapeTitle(self, title): """