--- a/WebBrowser/WebBrowserView.py Sat Oct 01 15:12:23 2016 +0200 +++ b/WebBrowser/WebBrowserView.py Mon Oct 03 19:02:45 2016 +0200 @@ -14,8 +14,10 @@ except NameError: pass +import os + from PyQt5.QtCore import pyqtSignal, QUrl, QFileInfo, Qt, QTimer, QEvent, \ - QPoint, QDateTime + QPoint, QDateTime, qVersion from PyQt5.QtGui import QDesktopServices, QClipboard, QIcon, \ QContextMenuEvent, QPixmap from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication @@ -34,6 +36,7 @@ import Preferences import UI.PixmapCache +import Utilities class WebBrowserView(QWebEngineView): @@ -164,9 +167,14 @@ self.__mw.newTab(name) return - if not name.scheme(): - name.setUrl(Preferences.getWebBrowser("DefaultScheme") + - name.toString()) + if not name.scheme() and not os.path.exists(name.toString()): + name.setScheme(Preferences.getWebBrowser("DefaultScheme")) + else: + if Utilities.isWindowsPlatform(): + name.setUrl("file:///" + Utilities.fromNativeSeparators( + name.toString())) + else: + name.setUrl("file://" + name.toString()) if len(name.scheme()) == 1 or \ name.scheme() == "file": @@ -184,10 +192,7 @@ .format(name.toLocalFile())) return - if name.toLocalFile().endswith(".pdf") or \ - name.toLocalFile().endswith(".PDF") or \ - name.toLocalFile().endswith(".chm") or \ - name.toLocalFile().endswith(".CHM"): + if name.toLocalFile().lower().endswith((".pdf", ".chm")): started = QDesktopServices.openUrl(name) if not started: E5MessageBox.critical( @@ -210,10 +215,7 @@ .format(name.toString())) return else: - if name.toString().endswith(".pdf") or \ - name.toString().endswith(".PDF") or \ - name.toString().endswith(".chm") or \ - name.toString().endswith(".CHM"): + if name.toString().lower().endswith((".pdf", ".chm")): started = QDesktopServices.openUrl(name) if not started: E5MessageBox.critical( @@ -317,7 +319,12 @@ """ Public slot to clear the current selection. """ - self.triggerPageAction(QWebEnginePage.Unselect) + if qVersion() >= "5.7.0": + self.triggerPageAction(QWebEnginePage.Unselect) + else: + self.page().runJavaScript( + "window.getSelection().empty()", + WebBrowserPage.SafeJsWorld) def isForwardAvailable(self): """