Example #1
0
    def __init__(self, url, total_time):
        QtGui.QMainWindow.__init__(self)

        self.progress = 0
        self.url = url
        self.total_time = total_time
        QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True)
        self.setGeometry(QtCore.QRect(200, 30, 1024, 700))

        # Graphics view
        self.view = QtGui.QGraphicsView()
        self.view.setViewportUpdateMode(QtGui.QGraphicsView.MinimalViewportUpdate)
        self.view.setOptimizationFlags(QtGui.QGraphicsView.DontSavePainterState)
        self.view.setFrameShape(QtGui.QFrame.NoFrame)
        self.view.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
        self.view.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.view.resize(800, 700)

        self.scene_width = 1024
        self.scene_height = 700
        self.view.setSceneRect(QtCore.QRectF(0, 0, self.scene_width, self.scene_height))

        self.view.setRenderHints(QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform)

        # Graphics scene
        self.scene = QtGui.QGraphicsScene()
        self.view.setScene(self.scene)

        # Graphics web view
        self.fast_view = QtWebKit.QGraphicsWebView()
        #self.fast_view.page().setViewportSize(QtCore.QSize(600, 600))
        self.fast_view.resize(1024, 768)
        self.settings = self.fast_view.settings()
        self.settings.setAttribute(QtWebKit.QWebSettings.AcceleratedCompositingEnabled, True)
        #self.settings.setAttribute(QtWebKit.QWebSettings.WebGLEnabled, True)
        #self.settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)

        # GL widget for QGraphicsView
        self.qglwidget = QtOpenGL.QGLWidget()
        self.view.setViewport(self.qglwidget)
        self.scene.addItem(self.fast_view)

        self.setCentralWidget(self.view)

        self.fast_view.loadFinished.connect(self.finishLoading)
        self.openInfographic()
Example #2
0
    def __init__(self, url):
        super(MainWindow, self).__init__()

        self.progress = 0

        fd = QtCore.QFile(":/jquery.min.js")

        if fd.open(QtCore.QIODevice.ReadOnly | QtCore.QFile.Text):
            self.jQuery = QtCore.QTextStream(fd).readAll()
            fd.close()
        else:
            self.jQuery = ''

        QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True)
        self.setGeometry(QtCore.QRect(200, 50, 1024, 600))

        # Graphics view
        self.view = QtGui.QGraphicsView()
        self.view.setViewportUpdateMode(
            QtGui.QGraphicsView.MinimalViewportUpdate)
        self.view.setOptimizationFlags(
            QtGui.QGraphicsView.DontSavePainterState)
        self.view.setFrameShape(QtGui.QFrame.NoFrame)
        self.view.setSizePolicy(QtGui.QSizePolicy.Fixed,
                                QtGui.QSizePolicy.Fixed)
        self.view.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.view.resize(800, 600)

        self.scene_width = 1024
        self.scene_height = 600
        self.view.setSceneRect(
            QtCore.QRectF(0, 0, self.scene_width, self.scene_height))
        #self.view.set

        self.view.setRenderHints(QtGui.QPainter.Antialiasing
                                 | QtGui.QPainter.SmoothPixmapTransform)

        # Graphics scene
        self.scene = QtGui.QGraphicsScene()
        self.view.setScene(self.scene)

        # Graphics web view
        self.fast_view = QtWebKit.QGraphicsWebView()
        #self.fast_view.page().setViewportSize(QtCore.QSize(600, 600))
        self.fast_view.resize(1024, 768)
        self.settings = self.fast_view.settings()
        self.settings.setAttribute(
            QtWebKit.QWebSettings.AcceleratedCompositingEnabled, True)
        self.settings.setAttribute(QtWebKit.QWebSettings.WebGLEnabled, True)
        self.settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)

        # GL widget for QGraphicsView
        self.qglwidget = QtOpenGL.QGLWidget()
        self.view.setViewport(self.qglwidget)
        self.scene.addItem(self.fast_view)

        # Connect progressions
        self.fast_view.load(url)
        self.fast_view.loadFinished.connect(self.adjustLocation)
        self.fast_view.titleChanged.connect(self.adjustTitle)
        self.fast_view.loadProgress.connect(self.setProgress)
        self.fast_view.loadFinished.connect(self.finishLoading)

        # Location
        self.locationEdit = QtGui.QLineEdit(self)
        self.locationEdit.setSizePolicy(
            QtGui.QSizePolicy.Expanding,
            self.locationEdit.sizePolicy().verticalPolicy())
        self.locationEdit.returnPressed.connect(self.changeLocation)

        # Toolbar
        toolBar = self.addToolBar("Navigation")
        toolBar.addAction(self.fast_view.pageAction(QtWebKit.QWebPage.Back))
        toolBar.addAction(self.fast_view.pageAction(QtWebKit.QWebPage.Forward))
        toolBar.addAction(self.fast_view.pageAction(QtWebKit.QWebPage.Reload))
        toolBar.addAction(self.fast_view.pageAction(QtWebKit.QWebPage.Stop))
        toolBar.addWidget(self.locationEdit)

        # Menu bar
        viewMenu = self.menuBar().addMenu("&View")
        viewSourceAction = QtGui.QAction("Page Source", self)
        viewSourceAction.triggered.connect(self.viewSource)
        viewMenu.addAction(viewSourceAction)

        # Button
        buttonMenu = self.menuBar().addMenu("&Open Infographic")
        openAction = QtGui.QAction("Open", self)
        openAction.triggered.connect(self.openInfographic)
        buttonMenu.addAction(openAction)

        viewCaptureAction = QtGui.QAction("Capture", self)
        viewCaptureAction.triggered.connect(self.initGrab)
        buttonMenu.addAction(viewCaptureAction)

        #
        effectMenu = self.menuBar().addMenu("&Effect")
        effectMenu.addAction("Highlight all links", self.highlightAllLinks)

        self.rotateAction = QtGui.QAction(self.style().standardIcon(
            QtGui.QStyle.SP_FileDialogDetailedView),
                                          "Turn images upside down",
                                          self,
                                          checkable=True,
                                          toggled=self.rotateImages)
        effectMenu.addAction(self.rotateAction)

        toolsMenu = self.menuBar().addMenu("&Tools")
        toolsMenu.addAction("Remove GIF images", self.removeGifImages)
        toolsMenu.addAction("Remove all inline frames",
                            self.removeInlineFrames)
        toolsMenu.addAction("Remove all object elements",
                            self.removeObjectElements)
        toolsMenu.addAction("Remove all embedded elements",
                            self.removeEmbeddedElements)

        self.setCentralWidget(self.view)
        self.setUnifiedTitleAndToolBarOnMac(True)