Sat, 14 Jul 2012 17:56:26 +0200
Simplified the code a little bit by deleting the checks for the existance of QWebElement because Qt 4.7 is the minimum requirement.
--- a/APIs/Python3/eric5.api Sat Jul 14 16:28:04 2012 +0200 +++ b/APIs/Python3/eric5.api Sat Jul 14 17:56:26 2012 +0200 @@ -2407,7 +2407,6 @@ eric5.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.rowCount?4(parent=QModelIndex()) eric5.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.setSourceModel?4(sourceModel) eric5.Helpviewer.History.HistoryTreeModel.HistoryTreeModel?1(sourceModel, parent=None) -eric5.Helpviewer.JavaScriptResources.fetchLinks_js?7 eric5.Helpviewer.JavaScriptResources.parseForms_js?7 eric5.Helpviewer.Network.AboutAccessHandler.AboutAccessHandler.createRequest?4(op, request, outgoingData=None) eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler._homePage?8
--- a/Documentation/Source/eric5.Helpviewer.JavaScriptResources.html Sat Jul 14 16:28:04 2012 +0200 +++ b/Documentation/Source/eric5.Helpviewer.JavaScriptResources.html Sat Jul 14 17:56:26 2012 +0200 @@ -26,7 +26,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>fetchLinks_js</td></tr><tr><td>parseForms_js</td></tr> +<tr><td>parseForms_js</td></tr> </table> <h3>Classes</h3> <table>
--- a/Helpviewer/AdBlock/AdBlockPage.py Sat Jul 14 16:28:04 2012 +0200 +++ b/Helpviewer/AdBlock/AdBlockPage.py Sat Jul 14 17:56:26 2012 +0200 @@ -8,7 +8,6 @@ """ from PyQt4.QtCore import QObject -from PyQt4 import QtWebKit import Helpviewer.HelpWindow @@ -25,42 +24,41 @@ @param page reference to the web page (QWebPage) @param host host name (string) """ - if hasattr(QtWebKit, 'QWebElement'): - if not rule.isEnabled(): - return - - filter = rule.filter() - offset = filter.find("##") - if offset == -1: - return + if not rule.isEnabled(): + return + + filter = rule.filter() + offset = filter.find("##") + if offset == -1: + return + + selectorQuery = "" + if offset > 0: + domainRules = filter[:offset] + selectorQuery = filter[offset + 2:] + domains = domainRules.split(",") - selectorQuery = "" - if offset > 0: - domainRules = filter[:offset] - selectorQuery = filter[offset + 2:] - domains = domainRules.split(",") - - match = False - for domain in domains: - reverse = domain[0] == '~' - if reverse: - xdomain = domain[1:] - if host.endswith(xdomain): - return - match = True - if host.endswith(domain): - match = True - if not match: - return - - if offset == 0: - selectorQuery = filter[2:] - - document = page.mainFrame().documentElement() - elements = document.findAll(selectorQuery) - for element in elements.toList(): - element.setStyleProperty("visibility", "hidden") - element.removeFromDocument() + match = False + for domain in domains: + reverse = domain[0] == '~' + if reverse: + xdomain = domain[1:] + if host.endswith(xdomain): + return + match = True + if host.endswith(domain): + match = True + if not match: + return + + if offset == 0: + selectorQuery = filter[2:] + + document = page.mainFrame().documentElement() + elements = document.findAll(selectorQuery) + for element in elements.toList(): + element.setStyleProperty("visibility", "hidden") + element.removeFromDocument() def applyRulesToPage(self, page): """ @@ -68,17 +66,16 @@ @param page reference to the web page (QWebPage) """ - if hasattr(QtWebKit, 'QWebElement'): - if page is None or page.mainFrame() is None: - return - - manager = Helpviewer.HelpWindow.HelpWindow.adblockManager() - if not manager.isEnabled(): - return - - host = page.mainFrame().url().host() - subscriptions = manager.subscriptions() - for subscription in subscriptions: - rules = subscription.pageRules() - for rule in rules: - self.__checkRule(rule, page, host) + if page is None or page.mainFrame() is None: + return + + manager = Helpviewer.HelpWindow.HelpWindow.adblockManager() + if not manager.isEnabled(): + return + + host = page.mainFrame().url().host() + subscriptions = manager.subscriptions() + for subscription in subscriptions: + rules = subscription.pageRules() + for rule in rules: + self.__checkRule(rule, page, host)
--- a/Helpviewer/HelpBrowserWV.py Sat Jul 14 16:28:04 2012 +0200 +++ b/Helpviewer/HelpBrowserWV.py Sat Jul 14 17:56:26 2012 +0200 @@ -13,7 +13,6 @@ from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \ QInputDialog, QLineEdit, QClipboard, QMouseEvent, QLabel, QToolTip, QColor, \ QPalette, QFrame, QPrinter, QPrintDialog, QDialog -from PyQt4 import QtWebKit from PyQt4.QtWebKit import QWebView, QWebPage, QWebSettings try: from PyQt4.QtWebKit import QWebElement @@ -29,7 +28,6 @@ from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog from .Bookmarks.BookmarkNode import BookmarkNode -from .JavaScriptResources import fetchLinks_js try: from .SslInfoDialog import SslInfoDialog from PyQt4.QtNetwork import QSslCertificate @@ -590,14 +588,13 @@ self.setAcceptDrops(True) - if hasattr(QtWebKit, 'QWebElement'): - self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") - self.__accessKeysPressed = False - self.__accessKeyLabels = [] - self.__accessKeyNodes = {} - - self.page().loadStarted.connect(self.__hideAccessKeys) - self.page().scrollRequested.connect(self.__hideAccessKeys) + self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") + self.__accessKeysPressed = False + self.__accessKeyLabels = [] + self.__accessKeyNodes = {} + + self.page().loadStarted.connect(self.__hideAccessKeys) + self.page().scrollRequested.connect(self.__hideAccessKeys) self.__rss = [] @@ -613,12 +610,6 @@ @param frame reference to the web frame (QWebFrame) """ - if not hasattr(QtWebKit, 'QWebElement'): - # test this only for Qt < 4.6.0 - if not QWebSettings.globalSettings()\ - .testAttribute(QWebSettings.JavascriptEnabled): - return - self.page().settings().setAttribute(QWebSettings.JavascriptEnabled, True) if self.__javaScriptBinding is None: self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self) @@ -649,52 +640,28 @@ """ resources = [] - if hasattr(QtWebKit, 'QWebElement'): - baseUrl = self.page().mainFrame().baseUrl() - - linkElements = self.page().mainFrame().findAllElements("html > head > link") + baseUrl = self.page().mainFrame().baseUrl() + + linkElements = self.page().mainFrame().findAllElements("html > head > link") + + for linkElement in linkElements.toList(): + rel = linkElement.attribute("rel") + href = linkElement.attribute("href") + type_ = linkElement.attribute("type") + title = linkElement.attribute("title") - for linkElement in linkElements.toList(): - rel = linkElement.attribute("rel") - href = linkElement.attribute("href") - type_ = linkElement.attribute("type") - title = linkElement.attribute("title") - - if href == "" or type_ == "": - continue - if relation and rel != relation: - continue - - resource = LinkedResource() - resource.rel = rel - resource.type_ = type_ - resource.href = baseUrl.resolved(QUrl.fromEncoded(href)) - resource.title = title - - resources.append(resource) - else: - baseUrlString = self.page().mainFrame().evaluateJavaScript("document.baseURI") - baseUrl = QUrl.fromEncoded(baseUrlString) + if href == "" or type_ == "": + continue + if relation and rel != relation: + continue - lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js) - for m in lst: - rel = m["rel"] - type_ = m["type"] - href = m["href"] - title = m["title"] - - if href == "" or type_ == "": - continue - if relation and rel != relation: - continue - - resource = LinkedResource() - resource.rel = rel - resource.type_ = type_ - resource.href = baseUrl.resolved(QUrl.fromEncoded(href)) - resource.title = title - - resources.append(resource) + resource = LinkedResource() + resource.rel = rel + resource.type_ = type_ + resource.href = baseUrl.resolved(QUrl.fromEncoded(href)) + resource.title = title + + resources.append(resource) return resources @@ -1154,14 +1121,13 @@ .setData(guessedUrl) menu.addSeparator() - if hasattr(QtWebKit, 'QWebElement'): - element = hit.element() - if not element.isNull() and \ - element.tagName().lower() == "input" and \ - element.attribute("type", "text") == "text": - menu.addAction(self.trUtf8("Add to web search toolbar"), - self.__addSearchEngine).setData(element) - menu.addSeparator() + element = hit.element() + if not element.isNull() and \ + element.tagName().lower() == "input" and \ + element.attribute("type", "text") == "text": + menu.addAction(self.trUtf8("Add to web search toolbar"), + self.__addSearchEngine).setData(element) + menu.addSeparator() menu.addAction(UI.PixmapCache.getIcon("webInspector.png"), self.trUtf8("Web Inspector..."), self.__webInspector) @@ -1541,19 +1507,18 @@ if self.mw.personalInformationManager().viewKeyPressEvent(self, evt): return - if hasattr(QtWebKit, 'QWebElement'): - if self.__enableAccessKeys: - self.__accessKeysPressed = ( - evt.modifiers() == Qt.ControlModifier and \ - evt.key() == Qt.Key_Control) - if not self.__accessKeysPressed: - if self.__checkForAccessKey(evt): - self.__hideAccessKeys() - evt.accept() - return + if self.__enableAccessKeys: + self.__accessKeysPressed = ( + evt.modifiers() == Qt.ControlModifier and \ + evt.key() == Qt.Key_Control) + if not self.__accessKeysPressed: + if self.__checkForAccessKey(evt): self.__hideAccessKeys() - else: - QTimer.singleShot(300, self.__accessKeyShortcut) + evt.accept() + return + self.__hideAccessKeys() + else: + QTimer.singleShot(300, self.__accessKeyShortcut) self.ctrlPressed = (evt.key() == Qt.Key_Control) super().keyPressEvent(evt) @@ -1564,9 +1529,8 @@ @param evt reference to the key event (QKeyEvent) """ - if hasattr(QtWebKit, 'QWebElement'): - if self.__enableAccessKeys: - self.__accessKeysPressed = evt.key() == Qt.Key_Control + if self.__enableAccessKeys: + self.__accessKeysPressed = evt.key() == Qt.Key_Control self.ctrlPressed = False super().keyReleaseEvent(evt) @@ -1577,10 +1541,9 @@ @param evt reference to the focus event (QFocusEvent) """ - if hasattr(QtWebKit, 'QWebElement'): - if self.__accessKeysPressed: - self.__hideAccessKeys() - self.__accessKeysPressed = False + if self.__accessKeysPressed: + self.__hideAccessKeys() + self.__accessKeysPressed = False super().focusOutEvent(evt) @@ -2026,10 +1989,9 @@ """ Public method to indicate a change of the settings. """ - if hasattr(QtWebKit, 'QWebElement'): - self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") - if not self.__enableAccessKeys: - self.__hideAccessKeys() + self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled") + if not self.__enableAccessKeys: + self.__hideAccessKeys() self.reload()
--- a/Helpviewer/JavaScriptResources.py Sat Jul 14 16:28:04 2012 +0200 +++ b/Helpviewer/JavaScriptResources.py Sat Jul 14 17:56:26 2012 +0200 @@ -7,24 +7,6 @@ Module containing some HTML resources. """ -fetchLinks_js = """ -(function (){ - var links = new Array; - var it = document.evaluate('/html/head/link', document, null, XPathResult.ANY_TYPE, null); - var link = it.iterateNext(); - while (link) { - var obj = new Object; - obj.rel = link.rel; - obj.type = link.type; - obj.href = link.href; - obj.title = link.title; - links.push(obj); - link = it.iterateNext(); - } - return links; -})(); -""" - parseForms_js = """ (function (){ var forms = new Array;