Esempio n. 1
0
class WebPage(QWebPage):
	def __init__(self):
		super(WebPage, self).__init__()
		self.inspector = QWebInspector()
		self.inspector.setPage(self)
		self.inspector.resize(1024, 400)
		diskCache = QNetworkDiskCache(self)
		diskCache.setCacheDirectory(assets.fs.dataPath() + '/Cache')
		self.networkAccessManager().setCache(diskCache)
		self.networkAccessManager().setCookieJar(assets.dataJar)

	def acceptNavigationRequest(self, frame, request, type):
		if(type == QWebPage.NavigationTypeLinkClicked):
			url = request.url().toString()
			if(frame == self.mainFrame()):
				self.view().load(url)
				return False
			elif frame == None:
				# self.createWindow(QWebPage.WebBrowserWindow, url)
				webbrowser.open(request.url().toString())
				return False
		return QWebPage.acceptNavigationRequest(self, frame, request, type)

	# def downloadRequested(self, request):
	# 	print(request)

	def findText(self, text):
		return super(WebPage, self).findText(text, QWebPage.FindBackward)

	def showInspector(self):
		self.inspector.show()
		self.inspector.activateWindow()

	def hideInspector(self):
		self.inspector.close()

	def createWindow(self, type, url = None):
		from window import Window
		window = Window(self.view().parentWidget(), url, isDialog = (type == QWebPage.WebModalDialog))
		return window.webView.page()

	def javaScriptAlert(self, frame, msg):
		QMessageBox.information(self.view().parentWidget(), None, msg)

	def javaScriptConfirm(self, frame, msg):
		return QMessageBox.question(self.view().parentWidget(), None, msg) == QMessageBox.Yes

	# There is a bug in PyQt
	# def javaScriptPrompt(self, frame, msg, defaultValue):
	# 	result = QInputDialog.getText(self.view().parentWidget(), None, msg)
	# 	return (result[1], result[0])

	def close(self):
		self.hideInspector()
		assets.dataJar.save()
Esempio n. 2
0
class WebPage(QWebPage):
    def __init__(self):
        super(WebPage, self).__init__()
        self.inspector = QWebInspector()
        self.inspector.setPage(self)
        self.inspector.resize(1024, 400)
        diskCache = QNetworkDiskCache(self)
        diskCache.setCacheDirectory(assets.fs.dataPath() + '/Cache')
        self.networkAccessManager().setCache(diskCache)
        self.networkAccessManager().setCookieJar(assets.dataJar)

    def javaScriptConsoleMessage(self, messgae, lineNumber, sourceId):
        if assets.manifest['debug']:
            print("==>[console]: %s @%s: %s" % (sourceId, lineNumber, messgae))

    def userAgentForUrl(self, url):
        return "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36"

    def acceptNavigationRequest(self, frame, request, type):
        if(type == QWebPage.NavigationTypeLinkClicked):
            url = request.url().toString()
            if(frame == self.mainFrame()):
                    self.view().load(url)
                    return False
            elif frame == None:
                    # self.createWindow(QWebPage.WebBrowserWindow, url)
                    webbrowser.open(request.url().toString())
                    return False
        return QWebPage.acceptNavigationRequest(self, frame, request, type)

    # def downloadRequested(self, request):
    #         print(request)

    def findText(self, text):
        return super(WebPage, self).findText(text, QWebPage.FindBackward)

    def showInspector(self):
        self.inspector.show()
        self.inspector.activateWindow()

    def hideInspector(self):
        self.inspector.close()

    def createWindow(self, type, url = None):
        from dae.window import Window
        window = Window(self.view().parentWidget(), url, isDialog = (type == QWebPage.WebModalDialog))
        return window.webView.page()

    def javaScriptAlert(self, frame, msg):
        QMessageBox.information(self.view().parentWidget(), None, msg)

    def javaScriptConfirm(self, frame, msg):
        return QMessageBox.question(self.view().parentWidget(), None, msg) == QMessageBox.Yes

    # There is a bug in PyQt
    # def javaScriptPrompt(self, frame, msg, defaultValue):
    #         result = QInputDialog.getText(self.view().parentWidget(), None, msg)
    #         return (result[1], result[0])

    def close(self):
        self.hideInspector()
        assets.dataJar.save()