Simplified the code a little bit by deleting the checks for the existance of QWebElement because Qt 4.7 is the minimum requirement.

Sat, 14 Jul 2012 17:56:26 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 14 Jul 2012 17:56:26 +0200
changeset 1947
84626f18f2c3
parent 1945
47016f5af3b8
child 1950
4f004ec74b48

Simplified the code a little bit by deleting the checks for the existance of QWebElement because Qt 4.7 is the minimum requirement.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.JavaScriptResources.html file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockPage.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/JavaScriptResources.py file | annotate | diff | comparison | revisions
--- 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
Binary file Documentation/Help/source.qch has changed
--- 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;

eric ide

mercurial