diff -r 936662560d04 -r b108ff4d845c eric7/WebBrowser/WebBrowserView.py --- a/eric7/WebBrowser/WebBrowserView.py Sun Oct 17 16:00:54 2021 +0200 +++ b/eric7/WebBrowser/WebBrowserView.py Mon Oct 18 16:43:02 2021 +0200 @@ -530,8 +530,8 @@ pos = evt.pos() reason = evt.reason() QTimer.singleShot( - 0, - lambda: self._contextMenuEvent(QContextMenuEvent(reason, pos))) + 0, functools.partial( + self._contextMenuEvent, QContextMenuEvent(reason, pos))) # needs to be done this way because contextMenuEvent is blocking # the main loop @@ -561,7 +561,6 @@ pos = evt.globalPos() self.__menu.popup(QPoint(pos.x(), pos.y() + 1)) - # TODO: change all lambda functions to partials to fix an issue def __createContextMenu(self, menu, hitTest): """ Private method to populate the context menu. @@ -645,19 +644,19 @@ self.tr("Open Link in New Tab\tCtrl+LMB")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__openLinkInNewTab(act)) + functools.partial(self.__openLinkInNewTab, act)) act = menu.addAction( UI.PixmapCache.getIcon("newWindow"), self.tr("Open Link in New Window")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__openLinkInNewWindow(act)) + functools.partial(self.__openLinkInNewWindow, act)) act = menu.addAction( UI.PixmapCache.getIcon("privateMode"), self.tr("Open Link in New Private Window")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__openLinkInNewPrivateWindow(act)) + functools.partial(self.__openLinkInNewPrivateWindow, act)) menu.addSeparator() menu.addAction( UI.PixmapCache.getIcon("download"), @@ -667,20 +666,20 @@ self.tr("Bookmark this Link")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__bookmarkLink(act)) + functools.partial(self.__bookmarkLink, act)) menu.addSeparator() act = menu.addAction( UI.PixmapCache.getIcon("editCopy"), self.tr("Copy Link to Clipboard")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__copyLink(act)) + functools.partial(self.__copyLink, act)) act = menu.addAction( UI.PixmapCache.getIcon("mailSend"), self.tr("Send Link")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__sendLink(act)) + functools.partial(self.__sendLink, act)) if ( Preferences.getWebBrowser("VirusTotalEnabled") and Preferences.getWebBrowser("VirusTotalServiceKey") != "" @@ -690,7 +689,7 @@ self.tr("Scan Link with VirusTotal")) act.setData(hitTest.linkUrl()) act.triggered.connect( - lambda: self.__virusTotal(act)) + functools.partial(self.__virusTotal, act)) def __createImageContextMenu(self, menu, hitTest): """ @@ -709,7 +708,7 @@ self.tr("Open Image in New Tab")) act.setData(hitTest.imageUrl()) act.triggered.connect( - lambda: self.__openLinkInNewTab(act)) + functools.partial(self.__openLinkInNewTab, act)) menu.addSeparator() menu.addAction( UI.PixmapCache.getIcon("download"), @@ -721,13 +720,13 @@ self.tr("Copy Image Location to Clipboard")) act.setData(hitTest.imageUrl()) act.triggered.connect( - lambda: self.__copyLink(act)) + functools.partial(self.__copyLink, act)) act = menu.addAction( UI.PixmapCache.getIcon("mailSend"), self.tr("Send Image Link")) act.setData(hitTest.imageUrl()) act.triggered.connect( - lambda: self.__sendLink(act)) + functools.partial(self.__sendLink, act)) if hitTest.imageUrl().scheme() in ["http", "https"]: menu.addSeparator() @@ -739,7 +738,7 @@ self.tr("Search image in {0}").format(searchEngineName)) act.setData(engine.getSearchQuery(hitTest.imageUrl())) act.triggered.connect( - lambda: self.__searchImage(act)) + functools.partial(self.__searchImage, act)) self.__imageSearchMenu = menu.addMenu( self.tr("Search image with...")) for searchEngineName in engine.searchEngineNames(): @@ -758,7 +757,7 @@ self.tr("Block Image")) act.setData(hitTest.imageUrl().toString()) act.triggered.connect( - lambda: self.__blockImage(act)) + functools.partial(self.__blockImage, act)) if ( Preferences.getWebBrowser("VirusTotalEnabled") and Preferences.getWebBrowser("VirusTotalServiceKey") != "" @@ -768,7 +767,7 @@ self.tr("Scan Image with VirusTotal")) act.setData(hitTest.imageUrl()) act.triggered.connect( - lambda: self.__virusTotal(act)) + functools.partial(self.__virusTotal, act)) def __createMediaContextMenu(self, menu, hitTest): """ @@ -804,13 +803,13 @@ self.tr("Copy Media Address to Clipboard")) act.setData(hitTest.mediaUrl()) act.triggered.connect( - lambda: self.__copyLink(act)) + functools.partial(self.__copyLink, act)) act = menu.addAction( UI.PixmapCache.getIcon("mailSend"), self.tr("Send Media Address")) act.setData(hitTest.mediaUrl()) act.triggered.connect( - lambda: self.__sendLink(act)) + functools.partial(self.__sendLink, act)) menu.addAction( UI.PixmapCache.getIcon("download"), self.tr("Save Media"), self.__downloadMedia) @@ -834,7 +833,7 @@ self.tr("Send Text")) act.setData(self.selectedText()) act.triggered.connect( - lambda: self.__sendLink(act)) + functools.partial(self.__sendLink, act)) engineName = self.__mw.openSearchManager().currentEngineName() if engineName: @@ -867,29 +866,29 @@ googleTranslatorUrl = QUrl( "http://translate.google.com/#auto/{0}/{1}".format( langCode, self.selectedText())) - act1 = menu.addAction( + act = menu.addAction( UI.PixmapCache.getIcon("translate"), self.tr("Google Translate")) - act1.setData(googleTranslatorUrl) - act1.triggered.connect( - lambda: self.__openLinkInNewTab(act1)) + act.setData(googleTranslatorUrl) + act.triggered.connect( + functools.partial(self.__openLinkInNewTab, act)) wiktionaryUrl = QUrl( "http://{0}.wiktionary.org/wiki/Special:Search?search={1}" .format(langCode, self.selectedText())) - act2 = menu.addAction( + act = menu.addAction( UI.PixmapCache.getIcon("wikipedia"), self.tr("Dictionary")) - act2.setData(wiktionaryUrl) - act2.triggered.connect( - lambda: self.__openLinkInNewTab(act2)) + act.setData(wiktionaryUrl) + act.triggered.connect( + functools.partial(self.__openLinkInNewTab, act)) menu.addSeparator() guessedUrl = QUrl.fromUserInput(self.selectedText().strip()) if self.__isUrlValid(guessedUrl): - act3 = menu.addAction(self.tr("Go to web address")) - act3.setData(guessedUrl) - act3.triggered.connect( - lambda: self.__openLinkInNewTab(act3)) + act = menu.addAction(self.tr("Go to web address")) + act.setData(guessedUrl) + act.triggered.connect( + functools.partial(self.__openLinkInNewTab, act)) def __createPageContextMenu(self, menu): """ @@ -934,13 +933,13 @@ self.tr("Copy Page Link")) act.setData(self.url()) act.triggered.connect( - lambda: self.__copyLink(act)) + functools.partial(self.__copyLink, act)) act = menu.addAction( UI.PixmapCache.getIcon("mailSend"), self.tr("Send Page Link")) act.setData(self.url()) act.triggered.connect( - lambda: self.__sendLink(act)) + functools.partial(self.__sendLink, act)) menu.addSeparator() from .UserAgent.UserAgentMenu import UserAgentMenu @@ -971,12 +970,12 @@ w3url = QUrl.fromEncoded( b"http://validator.w3.org/check?uri=" + QUrl.toPercentEncoding(bytes(self.url().toEncoded()).decode())) - act1 = menu.addAction( + act = menu.addAction( UI.PixmapCache.getIcon("w3"), self.tr("Validate Page")) - act1.setData(w3url) - act1.triggered.connect( - lambda: self.__openLinkInNewTab(act1)) + act.setData(w3url) + act.triggered.connect( + functools.partial(self.__openLinkInNewTab, act)) from .WebBrowserLanguagesDialog import WebBrowserLanguagesDialog languages = Preferences.toList( @@ -992,12 +991,12 @@ b"&u=" + QUrl.toPercentEncoding( bytes(self.url().toEncoded()).decode())) - act2 = menu.addAction( + act = menu.addAction( UI.PixmapCache.getIcon("translate"), self.tr("Google Translate")) - act2.setData(googleTranslatorUrl) - act2.triggered.connect( - lambda: self.__openLinkInNewTab(act2)) + act.setData(googleTranslatorUrl) + act.triggered.connect( + functools.partial(self.__openLinkInNewTab, act)) def __checkForForm(self, act, pos): """ @@ -1734,7 +1733,8 @@ ): return - QTimer.singleShot(0, lambda: self.__showTabCrashPage(status)) + QTimer.singleShot(0, + functools.partial(self.__showTabCrashPage, status)) def __showTabCrashPage(self, status): """