UI/UserInterface.py

changeset 4619
aa2319888257
parent 4414
5caf22e10678
child 4621
b46304716d28
--- 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)

eric ide

mercurial