38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from PyQt4 import QtCore, QtGui, QtWebKit
|
|
|
|
class WebPage(QtWebKit.QWebPage):
|
|
def __init__(self, parent):
|
|
super(QtWebKit.QWebPage, self).__init__(parent)
|
|
|
|
def javaScriptConsoleMessage(self, message, lineNumber, sourceId):
|
|
print str(message) + " on line: " + str(lineNumber) + " Source: " + str(sourceId)
|
|
|
|
class WebViewCreator(QtGui.QWidget):
|
|
def __init__(self, app, delegate):
|
|
|
|
QtGui.QWidget.__init__(self)
|
|
|
|
self.app = app
|
|
self.delegate = delegate
|
|
|
|
self.view = QtWebKit.QWebView(self)
|
|
self.view.loadFinished.connect(self.load_finished)
|
|
|
|
self.page = WebPage(self)
|
|
self.view.setPage(self.page)
|
|
self.page.settings().setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True)
|
|
|
|
layout = QtGui.QVBoxLayout(self)
|
|
layout.addWidget(self.view)
|
|
|
|
frame = self.view.page().mainFrame()
|
|
frame.addToJavaScriptWindowObject("controller", self.app.controller)
|
|
frame.addToJavaScriptWindowObject("console", self.app.console)
|
|
|
|
url = self.app.resources_uri() + "/index.html"
|
|
self.view.load(QtCore.QUrl(url))
|
|
|
|
|
|
def load_finished(self, ok):
|
|
self.view.page().mainFrame().evaluateJavaScript("var OS_TYPE = 'linux';")
|
|
self.delegate.load_finished(ok)
|