Prepared the code for missing QtWebKit (starting from Qt 5.6).

Fri, 25 Dec 2015 14:03:57 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 25 Dec 2015 14:03:57 +0100
changeset 4619
aa2319888257
parent 4618
c730a41bbb9e
child 4620
49d9c6b58678

Prepared the code for missing QtWebKit (starting from Qt 5.6).

E5XML/ShortcutsWriter.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpViewersPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/SecurityPage.py file | annotate | diff | comparison | revisions
Preferences/Shortcuts.py file | annotate | diff | comparison | revisions
Preferences/ShortcutsDialog.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
install.py file | annotate | diff | comparison | revisions
--- a/E5XML/ShortcutsWriter.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/E5XML/ShortcutsWriter.py	Fri Dec 25 14:03:57 2015 +0100
@@ -93,9 +93,13 @@
             if hasattr(ref, "getActions"):
                 self.__writeActions(category, ref.getActions())
     
-        self.__writeActions(
-            "HelpViewer",
-            e5App().getObject("DummyHelpViewer").getActions())
+        try:
+            self.__writeActions(
+                "HelpViewer",
+                e5App().getObject("DummyHelpViewer").getActions())
+        except KeyError:
+            # no QtWebKit available
+            pass
     
         # add the main end tag
         self.writeEndElement()
--- a/Preferences/ConfigurationDialog.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/ConfigurationDialog.py	Fri Dec 25 14:03:57 2015 +0100
@@ -277,27 +277,14 @@
                 "0helpPage":
                 [self.tr("Help"), "preferences-help.png",
                  None, None, None],
-                "helpAppearancePage":
-                [self.tr("Appearance"), "preferences-styles.png",
-                 "HelpAppearancePage", "0helpPage", None],
                 "helpDocumentationPage":
                 [self.tr("Help Documentation"),
                  "preferences-helpdocumentation.png",
                  "HelpDocumentationPage", "0helpPage", None],
-                "helpFlashCookieManagerPage":
-                [self.tr("Flash Cookie Manager"),
-                 "flashCookie16.png",
-                 "HelpFlashCookieManagerPage", "0helpPage", None],
                 "helpViewersPage":
                 [self.tr("Help Viewers"),
                  "preferences-helpviewers.png",
                  "HelpViewersPage", "0helpPage", None],
-                "helpVirusTotalPage":
-                [self.tr("VirusTotal Interface"), "virustotal.png",
-                 "HelpVirusTotalPage", "0helpPage", None],
-                "helpWebBrowserPage":
-                [self.tr("eric6 Web Browser"), "ericWeb.png",
-                 "HelpWebBrowserPage", "0helpPage", None],
                 
                 "0projectPage":
                 [self.tr("Project"), "preferences-project.png",
@@ -323,6 +310,25 @@
                 [self.tr("Viewmanager"), "preferences-viewmanager.png",
                  "ViewmanagerPage", "0interfacePage", None],
             }
+            try:
+                from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+                self.configItems.update({
+                    "helpAppearancePage":
+                    [self.tr("Appearance"), "preferences-styles.png",
+                     "HelpAppearancePage", "0helpPage", None],
+                    "helpFlashCookieManagerPage":
+                    [self.tr("Flash Cookie Manager"),
+                     "flashCookie16.png",
+                     "HelpFlashCookieManagerPage", "0helpPage", None],
+                    "helpVirusTotalPage":
+                    [self.tr("VirusTotal Interface"), "virustotal.png",
+                     "HelpVirusTotalPage", "0helpPage", None],
+                    "helpWebBrowserPage":
+                    [self.tr("eric6 Web Browser"), "ericWeb.png",
+                     "HelpWebBrowserPage", "0helpPage", None],
+                })
+            except ImportError:
+                pass
             
             self.configItems.update(
                 e5App().getObject("PluginManager").getPluginConfigData())
@@ -351,24 +357,30 @@
                 "0helpPage":
                 [self.tr("Help"), "preferences-help.png",
                  None, None, None],
-                "helpAppearancePage":
-                [self.tr("Appearance"), "preferences-styles.png",
-                 "HelpAppearancePage", "0helpPage", None],
                 "helpDocumentationPage":
                 [self.tr("Help Documentation"),
                  "preferences-helpdocumentation.png",
                  "HelpDocumentationPage", "0helpPage", None],
-                "helpFlashCookieManagerPage":
-                [self.tr("Flash Cookie Manager"),
-                 "flashCookie16.png",
-                 "HelpFlashCookieManagerPage", "0helpPage", None],
-                "helpVirusTotalPage":
-                [self.tr("VirusTotal Interface"), "virustotal.png",
-                 "HelpVirusTotalPage", "0helpPage", None],
-                "helpWebBrowserPage":
-                [self.tr("eric6 Web Browser"), "ericWeb.png",
-                 "HelpWebBrowserPage", "0helpPage", None],
             }
+            try:
+                from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+                self.configItems.update({
+                    "helpAppearancePage":
+                    [self.tr("Appearance"), "preferences-styles.png",
+                     "HelpAppearancePage", "0helpPage", None],
+                    "helpFlashCookieManagerPage":
+                    [self.tr("Flash Cookie Manager"),
+                     "flashCookie16.png",
+                     "HelpFlashCookieManagerPage", "0helpPage", None],
+                    "helpVirusTotalPage":
+                    [self.tr("VirusTotal Interface"), "virustotal.png",
+                     "HelpVirusTotalPage", "0helpPage", None],
+                    "helpWebBrowserPage":
+                    [self.tr("eric6 Web Browser"), "ericWeb.png",
+                     "HelpWebBrowserPage", "0helpPage", None],
+                })
+            except ImportError:
+                pass
         
         elif displayMode == ConfigurationWidget.TrayStarterMode:
             self.configItems = {
--- a/Preferences/ConfigurationPages/HelpViewersPage.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/ConfigurationPages/HelpViewersPage.py	Fri Dec 25 14:03:57 2015 +0100
@@ -41,6 +41,15 @@
         
         # set initial values
         hvId = Preferences.getHelp("HelpViewerType")
+        # check availability of QtWebKit
+        try:
+            from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+        except ImportError:
+            # not available, reset help viewer to default
+            if hvId == 1:
+                hvId = Preferences.Prefs.helpDefaults["HelpViewerType"]
+            self.helpBrowserButton.setEnabled(False)
+        
         if hvId == 1:
             self.helpBrowserButton.setChecked(True)
         elif hvId == 2:
--- a/Preferences/ConfigurationPages/SecurityPage.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/ConfigurationPages/SecurityPage.py	Fri Dec 25 14:03:57 2015 +0100
@@ -11,7 +11,10 @@
 
 from PyQt5.QtCore import pyqtSlot
 from PyQt5.QtWidgets import QDialog
-from PyQt5.QtWebKit import QWebSettings
+try:
+    from PyQt5.QtWebKit import QWebSettings
+except ImportError:
+    QWebSettings = None
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_SecurityPage import Ui_SecurityPage
@@ -43,7 +46,7 @@
             Preferences.getUser("UseMasterPassword"))
         self.masterPasswordButton.setEnabled(
             Preferences.getUser("UseMasterPassword"))
-        if hasattr(QWebSettings, "DnsPrefetchEnabled"):
+        if QWebSettings and hasattr(QWebSettings, "DnsPrefetchEnabled"):
             self.dnsPrefetchCheckBox.setChecked(
                 Preferences.getHelp("DnsPrefetchEnabled"))
         else:
--- a/Preferences/Shortcuts.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/Shortcuts.py	Fri Dec 25 14:03:57 2015 +0100
@@ -180,8 +180,12 @@
             for act in actions:
                 __saveShortcut(act, category, prefClass)
     
-    for act in e5App().getObject("DummyHelpViewer").getActions():
-        __saveShortcut(act, "HelpViewer", prefClass)
+    try:
+        for act in e5App().getObject("DummyHelpViewer").getActions():
+            __saveShortcut(act, "HelpViewer", prefClass)
+    except KeyError:
+        # no QtWebKit available
+        pass
 
 
 def exportShortcuts(fn):
@@ -324,6 +328,10 @@
             actions = ref.getActions()
             __setAction(actions, shortcuts[category])
     
-    if "HelpViewer" in shortcuts:
-        __setAction(e5App().getObject("DummyHelpViewer").getActions(),
-                    shortcuts["HelpViewer"])
+    try:
+        if "HelpViewer" in shortcuts:
+            __setAction(e5App().getObject("DummyHelpViewer").getActions(),
+                        shortcuts["HelpViewer"])
+    except KeyError:
+        # no QtWebKit available
+        pass
--- a/Preferences/ShortcutsDialog.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/ShortcutsDialog.py	Fri Dec 25 14:03:57 2015 +0100
@@ -188,10 +188,15 @@
                                                 objectType=objectType)
                 self.pluginCategoryItems.append(categoryItem)
         
-        self.helpViewerItem = self.__generateCategoryItem(
-            self.tr("eric6 Web Browser"))
-        for act in e5App().getObject("DummyHelpViewer").getActions():
-            self.__generateShortcutItem(self.helpViewerItem, act, True)
+        try:
+            dummyHelpViewer = e5App().getObject("DummyHelpViewer")
+            self.helpViewerItem = self.__generateCategoryItem(
+                self.tr("eric6 Web Browser"))
+            for act in dummyHelpViewer.getActions():
+                self.__generateShortcutItem(self.helpViewerItem, act, True)
+        except KeyError:
+            # no QtWebKit available
+            pass
         
         self.__resort()
         self.__resizeColumns()
@@ -431,9 +436,13 @@
             if ref is not None and hasattr(ref, "getActions"):
                 self.__saveCategoryActions(categoryItem, ref.getActions())
         
-        self.__saveCategoryActions(
-            self.helpViewerItem,
-            e5App().getObject("DummyHelpViewer").getActions())
+        try:
+            dummyHelpViewer = e5App().getObject("DummyHelpViewer")
+            self.__saveCategoryActions(
+                self.helpViewerItem, dummyHelpViewer.getActions())
+        except KeyError:
+            # no QtWebKit available
+            pass
         
         Shortcuts.saveShortcuts()
         Preferences.syncPreferences()
--- a/Preferences/__init__.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/Preferences/__init__.py	Fri Dec 25 14:03:57 2015 +0100
@@ -33,7 +33,10 @@
 from PyQt5.QtGui import QColor, QFont, QPalette
 from PyQt5.QtWidgets import QInputDialog, QApplication
 from PyQt5.QtNetwork import QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings
+try:
+    from PyQt5.QtWebKit import QWebSettings
+except ImportError:
+    QWebSettings = None
 from PyQt5.Qsci import QsciScintilla, QsciLexerPython
 
 from E5Gui import E5FileDialog
@@ -805,7 +808,6 @@
     
     # defaults for the help settings
     helpDefaults = {
-        "HelpViewerType": 1,      # this corresponds with the radio button id
         "CustomViewer": "",
         "PythonDocDir": "",
         "Python2DocDir": "",
@@ -907,12 +909,19 @@
         "FlashCookiesBlacklist": [],
         "FlashCookiesDataPath": flashDataPathForOS(),
     }
+    if QWebSettings:
+        helpDefaults["HelpViewerType"] = 1,      # eric browser
+    else:
+        helpDefaults["HelpViewerType"] = 2,      # Qt Assistant
     
     @classmethod
     def initWebSettingsDefaults(cls):
         """
         Class method to initialize the web settings related defaults.
         """
+        if QWebSettings is None:
+            return
+        
         websettings = QWebSettings.globalSettings()
         fontFamily = websettings.fontFamily(QWebSettings.StandardFont)
         fontSize = websettings.fontSize(QWebSettings.DefaultFontSize)
@@ -2402,7 +2411,14 @@
         from Utilities.crypto import pwConvert
         return pwConvert(prefClass.settings.value(
             "Help/" + key, prefClass.helpDefaults[key]), encode=False)
-    elif key in ["HelpViewerType", "DiskCacheSize", "AcceptCookies",
+    elif key == "HelpViewerType":
+        # special treatment to adjust for missing QtWebKit
+        value = int(prefClass.settings.value(
+            "Help/" + key, prefClass.helpDefaults[key]))
+        if QWebSettings is None:
+            value = prefClass.helpDefaults[key]
+        return value
+    elif key in ["DiskCacheSize", "AcceptCookies",
                  "KeepCookiesUntil", "StartupBehavior", "HistoryLimit",
                  "OfflineStorageDatabaseQuota",
                  "OfflineWebApplicationCacheQuota", "CachePolicy",
@@ -3096,3 +3112,6 @@
 
 initPreferences()
 initRecentSettings()
+
+#
+# eflag: noqa = M613
--- a/UI/UserInterface.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/UI/UserInterface.py	Fri Dec 25 14:03:57 2015 +0100
@@ -27,6 +27,11 @@
 from PyQt5.Qsci import QSCINTILLA_VERSION_STR
 from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkAccessManager, \
     QNetworkRequest, QNetworkReply
+try:
+    from PyQt5 import QtWebKit      # __IGNORE_WARNING__
+    WEBKIT_AVAILABLE = True
+except ImportError:
+    WEBKIT_AVAILABLE = False
 
 from .Info import Version, BugAddress, Program, FeatureAddress
 from . import Config
@@ -457,9 +462,10 @@
         self.__initExternalToolsActions()
         
         # create a dummy help window for shortcuts handling
-        from Helpviewer.HelpWindow import HelpWindow
-        self.dummyHelpViewer = \
-            HelpWindow(None, '.', None, 'help viewer', True, True)
+        if WEBKIT_AVAILABLE:
+            from Helpviewer.HelpWindow import HelpWindow
+            self.dummyHelpViewer = \
+                HelpWindow(None, '.', None, 'help viewer', True, True)
         
         # register all relevant objects
         splash.showMessage(self.tr("Registering Objects..."))
@@ -474,7 +480,8 @@
         e5App().registerObject("TaskViewer", self.taskViewer)
         e5App().registerObject("TemplateViewer", self.templateViewer)
         e5App().registerObject("Shell", self.shell)
-        e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer)
+        if WEBKIT_AVAILABLE:
+            e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer)
         e5App().registerObject("PluginManager", self.pluginManager)
         e5App().registerObject("ToolbarManager", self.toolbarManager)
         e5App().registerObject("Cooperation", self.cooperation)
@@ -1583,25 +1590,29 @@
         self.whatsThisAct.triggered.connect(self.__whatsThis)
         self.actions.append(self.whatsThisAct)
 
-        self.helpviewerAct = E5Action(
-            self.tr('Helpviewer'),
-            UI.PixmapCache.getIcon("help.png"),
-            self.tr('&Helpviewer...'),
-            QKeySequence(self.tr("F1")),
-            0, self, 'helpviewer')
-        self.helpviewerAct.setStatusTip(self.tr(
-            'Open the helpviewer window'))
-        self.helpviewerAct.setWhatsThis(self.tr(
-            """<b>Helpviewer</b>"""
-            """<p>Display the eric6 web browser. This window will show"""
-            """ HTML help files and help from Qt help collections. It has"""
-            """ the capability to navigate to links, set bookmarks, print"""
-            """ the displayed help and some more features. You may use it to"""
-            """ browse the internet as well</p><p>If called with a word"""
-            """ selected, this word is search in the Qt help collection.</p>"""
-        ))
-        self.helpviewerAct.triggered.connect(self.__helpViewer)
-        self.actions.append(self.helpviewerAct)
+        if WEBKIT_AVAILABLE:
+            self.helpviewerAct = E5Action(
+                self.tr('Helpviewer'),
+                UI.PixmapCache.getIcon("help.png"),
+                self.tr('&Helpviewer...'),
+                QKeySequence(self.tr("F1")),
+                0, self, 'helpviewer')
+            self.helpviewerAct.setStatusTip(self.tr(
+                'Open the helpviewer window'))
+            self.helpviewerAct.setWhatsThis(self.tr(
+                """<b>Helpviewer</b>"""
+                """<p>Display the eric6 web browser. This window will show"""
+                """ HTML help files and help from Qt help collections. It"""
+                """ has the capability to navigate to links, set bookmarks,"""
+                """ print the displayed help and some more features. You may"""
+                """ use it to browse the internet as well</p><p>If called"""
+                """ with a word selected, this word is search in the Qt help"""
+                """ collection.</p>"""
+            ))
+            self.helpviewerAct.triggered.connect(self.__helpViewer)
+            self.actions.append(self.helpviewerAct)
+        else:
+            self.helpviewerAct = None
         
         self.__initQtDocActions()
         self.__initPythonDocActions()
@@ -1893,19 +1904,22 @@
         self.miniEditorAct.triggered.connect(self.__openMiniEditor)
         self.actions.append(self.miniEditorAct)
 
-        self.webBrowserAct = E5Action(
-            self.tr('eric6 Web Browser'),
-            UI.PixmapCache.getIcon("ericWeb.png"),
-            self.tr('eric6 &Web Browser...'),
-            0, 0, self, 'web_browser')
-        self.webBrowserAct.setStatusTip(self.tr(
-            'Start the eric6 Web Browser'))
-        self.webBrowserAct.setWhatsThis(self.tr(
-            """<b>eric6 Web Browser</b>"""
-            """<p>Browse the Internet with the eric6 Web Browser.</p>"""
-        ))
-        self.webBrowserAct.triggered.connect(self.__startWebBrowser)
-        self.actions.append(self.webBrowserAct)
+        if WEBKIT_AVAILABLE:
+            self.webBrowserAct = E5Action(
+                self.tr('eric6 Web Browser'),
+                UI.PixmapCache.getIcon("ericWeb.png"),
+                self.tr('eric6 &Web Browser...'),
+                0, 0, self, 'web_browser')
+            self.webBrowserAct.setStatusTip(self.tr(
+                'Start the eric6 Web Browser'))
+            self.webBrowserAct.setWhatsThis(self.tr(
+                """<b>eric6 Web Browser</b>"""
+                """<p>Browse the Internet with the eric6 Web Browser.</p>"""
+            ))
+            self.webBrowserAct.triggered.connect(self.__startWebBrowser)
+            self.actions.append(self.webBrowserAct)
+        else:
+            self.webBrowserAct = None
 
         self.iconEditorAct = E5Action(
             self.tr('Icon Editor'),
@@ -2519,8 +2533,9 @@
         self.__menus["help"] = QMenu(self.tr('&Help'), self)
         mb.addMenu(self.__menus["help"])
         self.__menus["help"].setTearOffEnabled(True)
-        self.__menus["help"].addAction(self.helpviewerAct)
-        self.__menus["help"].addSeparator()
+        if self.helpviewerAct:
+            self.__menus["help"].addAction(self.helpviewerAct)
+            self.__menus["help"].addSeparator()
         self.__menus["help"].addAction(self.ericDocAct)
         self.__menus["help"].addAction(self.pythonDocAct)
         self.__menus["help"].addAction(self.python2DocAct)
@@ -2628,8 +2643,9 @@
         toolstb.addAction(self.miniEditorAct)
         toolstb.addAction(self.iconEditorAct)
         toolstb.addAction(self.snapshotAct)
-        toolstb.addSeparator()
-        toolstb.addAction(self.webBrowserAct)
+        if self.webBrowserAct:
+            toolstb.addSeparator()
+            toolstb.addAction(self.webBrowserAct)
         self.toolbarManager.addToolBar(toolstb, toolstb.windowTitle())
         
         # setup the settings toolbar
@@ -2647,7 +2663,9 @@
         # setup the help toolbar
         helptb.addAction(self.whatsThisAct)
         self.toolbarManager.addToolBar(helptb, helptb.windowTitle())
-        self.toolbarManager.addAction(self.helpviewerAct, helptb.windowTitle())
+        if self.helpviewerAct:
+            self.toolbarManager.addAction(self.helpviewerAct,
+                                          helptb.windowTitle())
         
         # setup the view profiles toolbar
         profilestb.addActions(self.viewProfileActGrp.actions())
@@ -3322,7 +3340,8 @@
         btMenu.addAction(self.miniEditorAct)
         btMenu.addAction(self.iconEditorAct)
         btMenu.addAction(self.snapshotAct)
-        btMenu.addAction(self.webBrowserAct)
+        if self.webBrowserAct:
+            btMenu.addAction(self.webBrowserAct)
         
         ptMenu = QMenu(self.tr("&Plugin Tools"), self)
         ptMenu.aboutToShow.connect(self.__showPluginToolsMenu)
@@ -4792,8 +4811,11 @@
             if hvType == 1:
                 self.launchHelpViewer(home)
             elif hvType == 2:
-                self.__assistant(home, version=4)
-            elif hvType == 3:
+                if home.startswith("qthelp://"):
+                    self.__assistant(home, version=4)
+                else:
+                    self.__webBrowser(home)
+            elif hvType in 3:
                 self.__webBrowser(home)
             else:
                 self.__customViewer(home)
@@ -4849,7 +4871,10 @@
             if hvType == 1:
                 self.launchHelpViewer(home)
             elif hvType == 2:
-                self.__assistant(home, version=4)
+                if home.startswith("qthelp://"):
+                    self.__assistant(home, version=4)
+                else:
+                    self.__webBrowser(home)
             elif hvType == 3:
                 self.__webBrowser(home)
             else:
@@ -4912,7 +4937,10 @@
         if hvType == 1:
             self.launchHelpViewer(home)
         elif hvType == 2:
-            self.__assistant(home, version=4)
+            if home.startswith("qthelp://"):
+                self.__assistant(home, version=4)
+            else:
+                self.__webBrowser(home)
         elif hvType == 3:
             self.__webBrowser(home)
         else:
@@ -4972,7 +5000,10 @@
         if hvType == 1:
             self.launchHelpViewer(home)
         elif hvType == 2:
-            self.__assistant(home, version=4)
+            if home.startswith("qthelp://"):
+                self.__assistant(home, version=4)
+            else:
+                self.__webBrowser(home)
         elif hvType == 3:
             self.__webBrowser(home)
         else:
@@ -5034,7 +5065,10 @@
         if hvType == 1:
             self.launchHelpViewer(home)
         elif hvType == 2:
-            self.__assistant(home, version=4)
+            if home.startswith("qthelp://"):
+                self.__assistant(home, version=4)
+            else:
+                self.__webBrowser(home)
         elif hvType == 3:
             self.__webBrowser(home)
         else:
@@ -5068,7 +5102,10 @@
         if hvType == 1:
             self.launchHelpViewer(home)
         elif hvType == 2:
-            self.__assistant(home, version=4)
+            if home.startswith("qthelp://"):
+                self.__assistant(home, version=4)
+            else:
+                self.__webBrowser(home)
         elif hvType == 3:
             self.__webBrowser(home)
         else:
@@ -5118,7 +5155,10 @@
         if hvType == 1:
             self.launchHelpViewer(home)
         elif hvType == 2:
-            self.__assistant(home, version=4)
+            if home.startswith("qthelp://"):
+                self.__assistant(home, version=4)
+            else:
+                self.__webBrowser(home)
         elif hvType == 3:
             self.__webBrowser(home)
         else:
@@ -5137,31 +5177,35 @@
             homeUrl = QUrl(home)
             if not homeUrl.scheme():
                 home = QUrl.fromLocalFile(home).toString()
-        if not (useSingle or Preferences.getHelp("SingleHelpWindow")) or \
-           self.helpWindow is None:
-            from Helpviewer.HelpWindow import HelpWindow
-            help = HelpWindow(home, '.', None, 'help viewer', True,
-                              searchWord=searchWord)
+        
+        if WEBKIT_AVAILABLE:
+            if not (useSingle or Preferences.getHelp("SingleHelpWindow")) or \
+               self.helpWindow is None:
+                from Helpviewer.HelpWindow import HelpWindow
+                help = HelpWindow(home, '.', None, 'help viewer', True,
+                                  searchWord=searchWord)
 
-            if QApplication.desktop().width() > 400 and \
-               QApplication.desktop().height() > 500:
-                help.show()
+                if QApplication.desktop().width() > 400 and \
+                   QApplication.desktop().height() > 500:
+                    help.show()
+                else:
+                    help.showMaximized()
+                
+                if useSingle or Preferences.getHelp("SingleHelpWindow"):
+                    self.helpWindow = help
+                    self.helpWindow.helpClosed.connect(self.__helpClosed)
+                    self.preferencesChanged.connect(
+                        self.helpWindow.preferencesChanged)
+                    self.masterPasswordChanged.connect(
+                        self.helpWindow.masterPasswordChanged)
+            elif searchWord is not None:
+                self.helpWindow.search(searchWord)
+                self.helpWindow.raise_()
             else:
-                help.showMaximized()
-            
-            if useSingle or Preferences.getHelp("SingleHelpWindow"):
-                self.helpWindow = help
-                self.helpWindow.helpClosed.connect(self.__helpClosed)
-                self.preferencesChanged.connect(
-                    self.helpWindow.preferencesChanged)
-                self.masterPasswordChanged.connect(
-                    self.helpWindow.masterPasswordChanged)
-        elif searchWord is not None:
-            self.helpWindow.search(searchWord)
-            self.helpWindow.raise_()
+                self.helpWindow.newTab(home)
+                self.helpWindow.raise_()
         else:
-            self.helpWindow.newTab(home)
-            self.helpWindow.raise_()
+            self.__webBrowser(home)
     
     def __helpClosed(self):
         """
@@ -5205,10 +5249,13 @@
             (boolean)
         @return reference to the help window instance (HelpWindow)
         """
-        if self.helpWindow is None:
-            self.launchHelpViewer("", useSingle=True)
-        self.helpWindow.raise_()
-        return self.helpWindow
+        if WEBKIT_AVAILABLE:
+            if self.helpWindow is None:
+                self.launchHelpViewer("", useSingle=True)
+            self.helpWindow.raise_()
+            return self.helpWindow
+        else:
+            return None
     
     @pyqtSlot()
     @pyqtSlot(str)
--- a/install.py	Wed Dec 23 19:08:09 2015 +0100
+++ b/install.py	Fri Dec 25 14:03:57 2015 +0100
@@ -1109,13 +1109,12 @@
     if pyqtVariant == "PyQt4":
         impModulesList = [
             "PyQt4.QtGui", "PyQt4.QtNetwork", "PyQt4.QtSql",
-            "PyQt4.QtSvg", "PyQt4.QtWebKit",
+            "PyQt4.QtSvg",
         ]
     else:
         impModulesList = [
             "PyQt5.QtGui", "PyQt5.QtNetwork", "PyQt5.QtPrintSupport",
-            "PyQt5.QtSql", "PyQt5.QtSvg", "PyQt5.QtWebKit",
-            "PyQt5.QtWebKitWidgets", "PyQt5.QtWidgets",
+            "PyQt5.QtSql", "PyQt5.QtSvg", "PyQt5.QtWidgets",
         ]
     modulesOK = True
     for impModule in impModulesList:

eric ide

mercurial