Пример #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()
Пример #2
0
 def setupUi(self):
     self.view = webview.WebView()
     self.view.setAcceptHoverEvents(True)
     scene = QGraphicsScene()
     scene.addItem(self.view)
     scene.setActiveWindow(self.view)
     self.gview = QGraphicsView(scene, self)
     self.gview.setFrameShape(QFrame.NoFrame)
     self.gview.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
     self.gview.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
     mainLayout = QVBoxLayout()
     mainLayout.addWidget(self.gview)
     mainLayout.setContentsMargins(0, 0, 0, 0)
     mainLayout.setSpacing(0)
     self.setLayout(mainLayout)
     if "dev" in sys.argv:
         print("Dev mode")
         inspector = QWebInspector()
         inspector.setPage(self.view.page())
         inspector.setVisible(True)
         inspector.show()
     self.setWindowIcon(QIcon("python.png"))  
class WebInspector(QWidget):
    """WebInspector widget class"""
    def __init__(self, parent):
        super(WebInspector, self).__init__(parent)
        vbox = QVBoxLayout(self)
        self._webInspector = QWebInspector(self)
        vbox.addWidget(self._webInspector)
        self.btnDock = QPushButton(translations.TR_UNDOCK)
        vbox.addWidget(self.btnDock)

        ExplorerContainer.register_tab(translations.TR_TAB_WEB_INSPECTOR, self)
        IDE.register_service('web_inspector', self)

    def refresh_inspector(self):
        """Refresh WebInspector widget by hiding and showing"""
        self._webInspector.hide()
        self._webInspector.show()

    def set_inspection_page(self, page):
        """Method to load an argument page object on the WebInspector"""
        self._webInspector.setPage(page)
        self._webInspector.setVisible(True)
Пример #4
0
class WebInspector(QWidget):
    """WebInspector widget class"""

    def __init__(self, parent):
        super(WebInspector, self).__init__(parent)
        vbox = QVBoxLayout(self)
        self._webInspector = QWebInspector(self)
        vbox.addWidget(self._webInspector)
        self.btnDock = QPushButton(translations.TR_UNDOCK)
        vbox.addWidget(self.btnDock)

        ExplorerContainer.register_tab(translations.TR_TAB_WEB_INSPECTOR, self)
        IDE.register_service('web_inspector', self)

    def refresh_inspector(self):
        """Refresh WebInspector widget by hiding and showing"""
        self._webInspector.hide()
        self._webInspector.show()

    def set_inspection_page(self, page):
        """Method to load an argument page object on the WebInspector"""
        self._webInspector.setPage(page)
        self._webInspector.setVisible(True)
Пример #5
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()