Adds QtWebEngine support, while keeping QtWebKit support.

This commit is contained in:
Olivier Keshavjee 2017-06-15 15:24:06 +02:00
parent dfed1e7ec9
commit 2ff7cf80c6
3 changed files with 59 additions and 23 deletions

View file

@ -1,10 +1,10 @@
#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtWebKitWidgets import QWebView
from PyQt5.QtWidgets import QPlainTextEdit, qApp, QTabWidget, QFrame
from PyQt5.QtWidgets import QPlainTextEdit, qApp, QTabWidget, QFrame, QTextEdit
from manuskript.exporter.manuskript.markdown import markdown, markdownSettings
from manuskript.ui.views.webView import webView
from manuskript.ui.exporters.manuskript.plainTextSettings import exporterSettings
import os
@ -50,10 +50,12 @@ class HTML(markdown):
w1 = QPlainTextEdit()
w1.setFrameShape(QFrame.NoFrame)
w1.setReadOnly(True)
w2 = QWebView()
t.addTab(w0, qApp.translate("Export", "Markdown source"))
t.addTab(w1, qApp.translate("Export", "HTML Source"))
t.addTab(w2, qApp.translate("Export", "HTML Output"))
if webView:
w2 = webView()
t.addTab(w2, qApp.translate("Export", "HTML Output"))
t.setCurrentIndex(2)
return t
@ -77,7 +79,8 @@ class HTML(markdown):
previewWidget.widget(0).setPlainText(md)
self.preparesTextEditView(previewWidget.widget(1), settings["Preview"]["PreviewFont"])
previewWidget.widget(1).setPlainText(html)
previewWidget.widget(2).setHtml(html, QUrl.fromLocalFile(path))
w2 = previewWidget.widget(2)
if isinstance(w2, QTextEdit):
w2.setHtml(html)
else:
w2.setHtml(html, QUrl.fromLocalFile(path))

View file

@ -4,8 +4,6 @@ import random
import shutil
from PyQt5.QtCore import QUrl
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWebKitWidgets import QWebView
from PyQt5.QtWidgets import qApp
from manuskript.exporter.pandoc.abstractOutput import abstractOutput

View file

@ -1,22 +1,57 @@
#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtCore import QUrl
from PyQt5.QtNetwork import QNetworkAccessManager
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
from PyQt5.QtWidgets import QLabel
from manuskript.ui.views.webView import webView, webEngine
from manuskript.functions import appPath
class PDFViewer(QWebView):
pdf_viewer_page = "file://"+appPath('libs/pdf.js/web/viewer.html')
if webEngine == "QtWebKit":
def __init__(self, parent=None):
QWebView.__init__(self, parent)
self.settings = QWebSettings.globalSettings()
self.settings.setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWebKitWidgets import QWebView
def loadPDF(self, pdf):
url = QUrl(self.pdf_viewer_page+"?file="+pdf)
self.settings.clearMemoryCaches()
self.load(url)
class PDFViewer(QWebView):
pdf_viewer_page = "file://"+appPath('libs/pdf.js/web/viewer.html')
def __init__(self, parent=None):
QWebView.__init__(self, parent)
self.settings = QWebSettings.globalSettings()
self.settings.setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
def loadPDF(self, pdf):
url = QUrl(self.pdf_viewer_page+"?file="+pdf)
self.settings.clearMemoryCaches()
self.load(url)
elif webEngine == "QtWebEngine":
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, QWebEngineSettings
class PDFViewer(QWebEngineView):
pdf_viewer_page = "file://"+appPath('libs/pdf.js/web/viewer.html')
def __init__(self, parent=None):
QWebEngineView.__init__(self, parent)
self.settings = QWebEngineSettings.globalSettings()
self.settings.setAttribute(QWebEngineSettings.LocalContentCanAccessFileUrls, True)
def loadPDF(self, pdf):
url = QUrl(self.pdf_viewer_page+"?file="+pdf)
self.load(url)
else:
class PDFViewer(QLabel):
def __init__(self, parent=None):
QLabel.__init__(self, parent)
self.setText("No Web Engine installed capable of displaying PDF.\n\n"
"Consider installing QtWebKit or QtWebEngine.")
def loadPDF(self, pdf):
pass