eric7/UI/UserInterface.py

branch
eric7-maintenance
changeset 9192
a763d57e23bc
parent 9111
4ac66b6c33a4
parent 9167
2d2b9a26e904
diff -r bd90cbe0b7d2 -r a763d57e23bc eric7/UI/UserInterface.py
--- a/eric7/UI/UserInterface.py	Mon Jun 06 16:34:37 2022 +0200
+++ b/eric7/UI/UserInterface.py	Fri Jul 01 11:02:32 2022 +0200
@@ -16,11 +16,11 @@
 import getpass
 import functools
 import contextlib
+import pathlib
 
 from PyQt6.QtCore import (
-    pyqtSlot, QTimer, QFile, QFileInfo, pyqtSignal, PYQT_VERSION_STR, QDate,
-    QIODevice, qVersion, QProcess, QSize, QUrl, QObject, Qt, QUuid, QThread,
-    QUrlQuery
+    pyqtSlot, QTimer, QFile, pyqtSignal, PYQT_VERSION_STR, QDate, QIODevice,
+    qVersion, QProcess, QSize, QUrl, QObject, Qt, QUuid, QThread, QUrlQuery
 )
 from PyQt6.QtGui import (
     QAction, QKeySequence, QDesktopServices, QSessionManager
@@ -605,7 +605,7 @@
         self.toolProcs = []
         self.__initExternalToolsActions()
         
-        # redirect handling of http and https URLs to ourselves
+        # redirect handling of http, https and file URLs to ourselves
         QDesktopServices.setUrlHandler("file", self.handleUrl)
         QDesktopServices.setUrlHandler("http", self.handleUrl)
         QDesktopServices.setUrlHandler("https", self.handleUrl)
@@ -4043,10 +4043,18 @@
         # webengine (chromium) version
         with contextlib.suppress(ImportError):
             from WebBrowser.Tools import WebBrowserTools
-            chromeVersion = WebBrowserTools.getWebEngineVersions()[0]
+            chromiumVersion, chromiumSecurityVersion = (
+                WebBrowserTools.getWebEngineVersions()[0:2]
+            )
             versionText += (
                 """<tr><td><b>WebEngine</b></td><td>{0}</td></tr>"""
-            ).format(chromeVersion)
+                .format(chromiumVersion)
+            )
+            if chromiumSecurityVersion:
+                versionText += self.tr(
+                    """<tr><td><b>WebEngine (Security)</b></td>"""
+                    """<td>{0}</td></tr>"""
+                ).format(chromiumSecurityVersion)
         
         # eric7 version
         versionText += ("""<tr><td><b>{0}</b></td><td>{1}</td></tr>"""
@@ -6760,25 +6768,25 @@
         if not fn:
             return
         
-        ext = QFileInfo(fn).suffix()
-        if not ext:
+        fpath = pathlib.Path(fn)
+        if not fpath.suffix:
             ex = selectedFilter.split("(*")[1].split(")")[0]
             if ex:
-                fn += ex
+                fpath = fpath.with_suffix(ex)
         
         ok = (
             EricMessageBox.yesNo(
                 self,
                 self.tr("Export Keyboard Shortcuts"),
                 self.tr("""<p>The keyboard shortcuts file <b>{0}</b> exists"""
-                        """ already. Overwrite it?</p>""").format(fn))
-            if os.path.exists(fn) else
+                        """ already. Overwrite it?</p>""").format(fpath))
+            if fpath.exists() else
             True
         )
         
         if ok:
             from Preferences import Shortcuts
-            Shortcuts.exportShortcuts(fn)
+            Shortcuts.exportShortcuts(str(fpath))
 
     def __importShortcuts(self):
         """
@@ -7063,13 +7071,13 @@
         if not sessionFile:
             return
         
-        ext = QFileInfo(sessionFile).suffix()
-        if not ext:
+        fpath = pathlib.Path(sessionFile)
+        if not fpath.suffix:
             ex = selectedFilter.split("(*")[1].split(")")[0]
             if ex:
-                sessionFile += ex
-        
-        self.__writeSession(filename=sessionFile)
+                fpath = fpath.with_suffix(ex)
+        
+        self.__writeSession(filename=str(fpath))
     
     def __loadSessionFromFile(self):
         """
@@ -7477,7 +7485,7 @@
             for url in event.mimeData().urls():
                 fname = url.toLocalFile()
                 if fname:
-                    if QFileInfo(fname).isFile():
+                    if pathlib.Path(fname).is_file():
                         self.viewmanager.openSourceFile(fname)
                     else:
                         EricMessageBox.information(
@@ -7536,6 +7544,10 @@
         if not self.viewmanager.closeViewManager():
             return False
         
+        QDesktopServices.unsetUrlHandler("file")
+        QDesktopServices.unsetUrlHandler("http")
+        QDesktopServices.unsetUrlHandler("https")
+        
         if sessionCreated and not self.__disableCrashSession:
             self.__deleteCrashSession()
         

eric ide

mercurial