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()