Tools/TrayStarter.py

changeset 4986
248b5a87158d
parent 4673
6fa2418f010c
child 5389
9b1c800daff3
--- a/Tools/TrayStarter.py	Sat May 21 19:16:12 2016 +0200
+++ b/Tools/TrayStarter.py	Sun May 22 13:02:44 2016 +0200
@@ -20,6 +20,7 @@
 
 import Globals
 import UI.PixmapCache
+from UI.Info import Version, Program
 
 import Utilities
 import Preferences
@@ -31,7 +32,7 @@
     """
     Class implementing a starter for the system tray.
     """
-    def __init__(self, usePyQt4, settingsDir):
+    def __init__(self, usePyQt4, settingsDir, webEngine=False):
         """
         Constructor
         
@@ -39,6 +40,8 @@
         @type bool
         @param settingsDir directory to be used for the settings files
         @type str
+        @keyparam webEngine flag indicating QtWebEngine is used
+        @type bool
         """
         super(TrayStarter, self).__init__(
             UI.PixmapCache.getIcon(
@@ -46,6 +49,7 @@
         
         self.usePyQt4 = usePyQt4
         self.settingsDir = settingsDir
+        self.__webEngine = webEngine
         
         self.maxMenuFilePathLen = 75
         
@@ -90,6 +94,10 @@
         self.__menu.addSeparator()
         
         self.__menu.addAction(
+            self.tr("Show Versions"), self.__showVersions)
+        self.__menu.addSeparator()
+        
+        self.__menu.addAction(
             self.tr("QRegExp editor"), self.__startQRegExp)
         self.__menu.addAction(
             self.tr("Python re editor"), self.__startPyRe)
@@ -306,7 +314,10 @@
         """
         Private slot to start the eric6 web browser.
         """
-        self.__startProc("eric6_webbrowser.py")
+        if self.__webEngine:
+            self.__startProc("eric6_browser.py")
+        else:
+            self.__startProc("eric6_webbrowser.py")
 
     def __startUIPreviewer(self):
         """
@@ -486,3 +497,47 @@
         from Plugins.AboutPlugin.AboutDialog import AboutDialog
         dlg = AboutDialog()
         dlg.exec_()
+    
+    def __showVersions(self):
+        """
+        Private slot to handle the Versions dialog.
+        """
+        from PyQt5.QtCore import qVersion, PYQT_VERSION_STR
+        from PyQt5.Qsci import QSCINTILLA_VERSION_STR
+        
+        try:
+            import sipconfig
+            sip_version_str = sipconfig.Configuration().sip_version_str
+        except ImportError:
+            sip_version_str = "sip version not available"
+        
+        versionText = self.tr(
+            """<h3>Version Numbers</h3>"""
+            """<table>""")
+        versionText += """<tr><td><b>Python</b></td><td>{0}</td></tr>"""\
+            .format(sys.version.split()[0])
+        versionText += """<tr><td><b>Qt</b></td><td>{0}</td></tr>"""\
+            .format(qVersion())
+        versionText += """<tr><td><b>PyQt</b></td><td>{0}</td></tr>"""\
+            .format(PYQT_VERSION_STR)
+        versionText += """<tr><td><b>sip</b></td><td>{0}</td></tr>"""\
+            .format(sip_version_str)
+        versionText += """<tr><td><b>QScintilla</b></td><td>{0}</td></tr>"""\
+            .format(QSCINTILLA_VERSION_STR)
+        if self.__webEngine:
+            from WebBrowser.Tools import WebBrowserTools
+            chromeVersion = WebBrowserTools.getWebEngineVersions()[0]
+            versionText += \
+                """<tr><td><b>WebEngine</b></td><td>{0}</td></tr>"""\
+                .format(chromeVersion)
+        try:
+            from PyQt5.QtWebKit import qWebKitVersion
+            versionText += """<tr><td><b>WebKit</b></td><td>{0}</td></tr>"""\
+                .format(qWebKitVersion())
+        except ImportError:
+            pass
+        versionText += """<tr><td><b>{0}</b></td><td>{1}</td></tr>"""\
+            .format(Program, Version)
+        versionText += self.tr("""</table>""")
+        
+        E5MessageBox.about(None, Program, versionText)

eric ide

mercurial