Esempio n. 1
0
class KontenaApp(object):

    def __init__(self, argv):
        self.app = app = QApplication(argv)
        self.browser = QWebView()
        requests_table = RequestsTable()
        manager = KontenaManager(self, requests_table)
        page = QWebPage()
        page.setNetworkAccessManager(manager)
        self.browser.setPage(page)
        grid = QGridLayout()
        grid.addWidget(self.browser, 0, 0)
        # grid.addWidget(requests_table, 4, 0)
        self.window = QWidget()
        self.window.setLayout(grid)

    def open_app(self, data):
        data.seek(23)
        self.kontena = ZipFile(data)

    def read_file(self, file_name):
        return self.kontena.read(file_name)

    def exe(self):
        self.browser.load(QUrl('file:///index.html'))
        self.window.show()
        sys.exit(self.app.exec_())
Esempio n. 2
0
    def __init__(self, title, url, width, height, resizable, fullscreen,
                 min_size, webview_ready):
        super(BrowserView, self).__init__()
        BrowserView.instance = self

        self._file_name_semaphor = threading.Semaphore(0)

        self.resize(width, height)
        self.setWindowTitle(title)

        if not resizable:
            self.setFixedSize(width, height)

        if fullscreen:
            self.showFullScreen()

        self.setMinimumSize(min_size[0], min_size[1])

        self.view = QWebView(self)
        self.view.setContextMenuPolicy(
            QtCore.Qt.NoContextMenu)  # disable right click context menu
        if url != None:
            self.view.setUrl(QtCore.QUrl(url))

        self.setCentralWidget(self.view)
        self.url_trigger.connect(self._handle_load_url)
        self.html_trigger.connect(self._handle_load_html)
        self.dialog_trigger.connect(self._handle_file_dialog)
        self.destroy_trigger.connect(self._handle_destroy_window)

        self.move(QApplication.desktop().availableGeometry().center() -
                  self.rect().center())
        self.activateWindow()
        self.raise_()
        webview_ready.set()
Esempio n. 3
0
 def show(self):
     self.webview = QWebView()
     self.webview.setPage(self.webpage)
     window = self.webview.window()
     window.setAttribute(Qt.WA_DeleteOnClose)
     self.application.syncX()
     self.webview.show()
Esempio n. 4
0
    def __init__(self,parent=None):
        '''
        zoom: zoom out times
        openedpg: current openedpage
        signal 'openUrl' will be emited(with param url:unicode)
        signal 'openatnewtab' will be emited(with param url:unicode)
        signal 'openremoteatnewtab' will be emited(with param url:unicode)
        signal 'openRemoteUrl' will be emited(with param url:unicode)
        '''
        QWebView.__init__(self,parent)
        self.page().setNetworkAccessManager(PyChmNetworkAccessManager(self))
        self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) 
        #self.setUrl(QtCore.QUrl('http://www.baidu.com'))
        self.connect(self,QtCore.SIGNAL('linkClicked(const QUrl&)'),self.onLinkClicked)
#        self.connect(self.zob,QtCore.SIGNAL('clicked()'),self.zoomout)
#        self.connect(self.zib,QtCore.SIGNAL('clicked()'),self.zoomin)
#        self.connect(self.normb,QtCore.SIGNAL('clicked()'),self.normsize)
#        self.connect(self.bb,QtCore.SIGNAL('clicked()'),self.back)
#        self.connect(self.fb,QtCore.SIGNAL('clicked()'),self.forward)
        self.connect(self,QtCore.SIGNAL('loadFinished(bool)'),self.onLoadFinished)
        self.zoom=1.0
        self.setTextSizeMultiplier(1.0)
        self.reload()
        self.openedpg=None
        self.scrolltopos=0
Esempio n. 5
0
class Scraper(QObject):
	def __init__(self):
		self.app = QApplication(sys.argv)
		QObject.__init__(self,self.app)
		self.view = QWebView()
		self.page = self.view.page() #QWebPage(self.app)
		self.page.mainFrame().loadFinished.connect(self.loadFinished)
		self.db = {}
		self.attset = Set()
		self.view.show()
	def start(self):
		print "loading %s"%self.url
		self.load(self.url)
	def load(self,url):
		self.page.mainFrame().setUrl(QUrl(url))
	def loadFinished(self):
		document = self.page.mainFrame().documentElement()
		document.evaluateJavaScript("""
			var evt = document.createEvent('MouseEvents');
			evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			Element.prototype.click = function() {
				this.dispatchEvent(evt);
			};
		""")
		print "yay"
    def initUI(self,x,y,url):
        self.setGeometry(x,y,650,400)

        print url
        browser = QWebView(self)
        browser.load(QUrl(url))
        browser.show()
Esempio n. 7
0
 def __init__(self, name, app, scope, r_server, delay=1, proxy=None, forbidden_extensions=None, allowed_regex='.*?'):
     QWebView.__init__(self)
     self.name = name
     self.app = app
     self.scope = scope
     self.r_server = r_server
     self.delay = delay
     self.current_level = -1
     self.async_res = []
     self._t_pool = dict()
     LOGGER.debug("<%s> Initialized" % name)
     
     manager = NetworkAccessManager(proxy, forbidden_extensions, allowed_regex)
     manager.finished.connect(self._on_finished)
     webpage = WebPage("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.94 Chrome/37.0.2062.94 Safari/537.36")
     webpage.setNetworkAccessManager(manager)
     #webpage.mainFrame().javaScriptWindowObjectCleared.connect(self._on_jsWinObjCleared)
     
     self.setHtml('<html><head></head><body><h1>Multithreaded Crawler</h1><p>Waiting for orders, sir!</p></body></html>', QUrl('http://localhost'))
     self.setPage(webpage)
     self.loadFinished.connect(self._on_loadFinished)
     
     self.settings().setAttribute(QWebSettings.PluginsEnabled, True)
     self.settings().setAttribute(QWebSettings.JavaEnabled, True)
     self.settings().setAttribute(QWebSettings.AutoLoadImages, True)
     self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
Esempio n. 8
0
    def initUI(self):
        view = QWebView()
        view.setHtml(self.html)

        self.setCentralWidget(view)
        self.resize(450, 550)
        self.setWindowTitle('Help')
Esempio n. 9
0
 def __init__(self, html):
     super(Window, self).__init__()
     view = QWebView(self)
     layout = QVBoxLayout(self)
     layout.addWidget(view)
     view.setPage(MyWebPage())
     view.setHtml(html.htmlString())
Esempio n. 10
0
 def __init__(self):
     super(WebRender, self).__init__()
     vbox, temporary_directory = QVBoxLayout(self), mkdtemp()
     # Web Frame
     self.webFrame = QWebView()  # QWebView = QWebFrame + QWebSettings
     self.webFrame.setStyleSheet(
         "QWebView{ background:#fff }")  # no dark bg
     settings = self.webFrame.settings()  # QWebSettings instance
     settings.setDefaultTextEncoding("utf-8")
     settings.setIconDatabasePath(temporary_directory)
     settings.setLocalStoragePath(temporary_directory)
     settings.setOfflineStoragePath(temporary_directory)
     settings.setOfflineWebApplicationCachePath(temporary_directory)
     settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
     settings.setAttribute(QWebSettings.LocalStorageEnabled, True)
     settings.setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, True)
     settings.setAttribute(QWebSettings.PluginsEnabled, True)
     settings.setAttribute(QWebSettings.DnsPrefetchEnabled, True)
     settings.setAttribute(QWebSettings.JavascriptCanOpenWindows, True)
     settings.setAttribute(QWebSettings.JavascriptCanCloseWindows, True)
     settings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     settings.setAttribute(QWebSettings.SpatialNavigationEnabled, True)
     settings.setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls,
                           True)
     settings.setAttribute(QWebSettings.OfflineWebApplicationCacheEnabled,
                           True)
     vbox.addWidget(self.webFrame)
    def _create_view(self, svg, section=None):
        view = QWebView(self)
        view.setRenderHint(QtGui.QPainter.TextAntialiasing, False)
        view.setPage(LoggingWebPage())
        view.setContextMenuPolicy(QtCore.Qt.PreventContextMenu)

        # the HTML page that will contain the SVG
        path = os.path.dirname(os.path.realpath(__file__))
        html = QUrl(os.path.join(path, "index.html"))  # make file configurable

        # setup the JS interface
        frame = view.page().mainFrame()
        self.js = JSInterface(frame)
        #self.js.registered.connect(self.register)
        self.js.visibility.connect(self.listen)

        # mouse interaction signals
        self.clicked = self.js.leftclicked
        self.rightClicked = self.js.rightclicked

        # Inject JSInterface into the JS global namespace as "Widget"
        frame.addToJavaScriptWindowObject('Widget', self.js)  # confusing?

        # when the page (and all the JS) has loaded, load the SVG
        def load_svg():
            print "blorrt", svg
            self.js.load(svg, section)
        view.loadFinished.connect(load_svg)

        # load the page
        # print "url", QUrl(url)
        view.load(html)

        return view
Esempio n. 12
0
    def __init__(self, parent, network_analyzer, url=None):
        QWidget.__init__(self, parent)

        self.webView = QWebView()
        self.webView.setPage(QgepWebPage(self.webView))

        self.networkAnalyzer = network_analyzer

        settings = QSettings()

        layout = QVBoxLayout(self)
        if url is None:
            url = settings.value(
                "/QGEP/SvgProfilePath",
                u'qrc:///plugins/qgepplugin/svgprofile/index.html')

        developermode = settings.value("/QGEP/DeveloperMode", False, type=bool)

        if developermode is True:
            self.webView.page().settings().setAttribute(
                QWebSettings.DeveloperExtrasEnabled, True)
        else:
            self.webView.setContextMenuPolicy(Qt.NoContextMenu)

        self.webView.load(QUrl(url))
        self.frame = self.webView.page().mainFrame()
        self.frame.javaScriptWindowObjectCleared.connect(self.initJs)

        layout.addWidget(self.webView)
Esempio n. 13
0
    def mouseReleaseEvent(self, mouseEvent):
        if self.clickedInScrollBar:
            self.clickedInScrollBar = False
        else:
            if self.ignored.count(mouseEvent):
                self.ignored.remove(mouseEvent)
                return QWebView.mousePressEvent(self, mouseEvent)

            if self.scrolling:
                self.pressed = False
                self.scrolling = False
                self.handIsClosed = False
                QApplication.restoreOverrideCursor()
                return

            if self.pressed:
                self.pressed = False
                self.scrolling = False
                self.handIsClosed = False
                QApplication.restoreOverrideCursor()

                event1 = QMouseEvent(QEvent.MouseButtonPress, self.position, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier)
                event2 = QMouseEvent(mouseEvent)
                self.ignored.append(event1)
                self.ignored.append(event2)
                QApplication.postEvent(self, event1)
                QApplication.postEvent(self, event2)
                return
        return QWebView.mouseReleaseEvent(self, mouseEvent)
Esempio n. 14
0
File: stats.py Progetto: sss/calibre
    def __init__(self, container, do_embed=False):
        self.container = container
        self.log = self.logger = container.log
        self.do_embed = do_embed
        must_use_qt()
        self.parser = CSSParser(loglevel=logging.CRITICAL,
                                log=logging.getLogger('calibre.css'))

        self.loop = QEventLoop()
        self.view = QWebView()
        self.page = Page(self.log)
        self.view.setPage(self.page)
        self.page.setViewportSize(QSize(1200, 1600))

        self.view.loadFinished.connect(self.collect, type=Qt.QueuedConnection)

        self.render_queue = list(container.spine_items)
        self.font_stats = {}
        self.font_usage_map = {}
        self.font_spec_map = {}
        self.font_rule_map = {}
        self.all_font_rules = {}

        QTimer.singleShot(0, self.render_book)

        if self.loop.exec_() == 1:
            raise Exception(
                'Failed to gather statistics from book, see log for details')
Esempio n. 15
0
class DocWindow(QWidget):
    app = None

    def __init__(self, app):
        super(DocWindow, self).__init__()
        DocWindow.app = app
        self.vlayout = QVBoxLayout()
        self.view = DocView()
        self.backbtn = QPushButton('Back')
        self.closebtn = QPushButton('Close')
        self.vlayout.setContentsMargins(1, 1, 1, 1)
        self.vlayout.setSpacing(1)
        self.vlayout.addWidget(self.view)
        hlayout = QHBoxLayout()
        buttonbox = QWidget()
        buttonbox.setLayout(hlayout)
        self.vlayout.addWidget(buttonbox)
        hlayout.addWidget(self.closebtn)
        hlayout.addWidget(self.backbtn)
        self.closebtn.clicked.connect(self.hide)
        self.backbtn.clicked.connect(self.view.back)
        self.setLayout(self.vlayout)
        self.setWindowTitle('BlueSky documentation')

    def show_cmd_doc(self, cmd):
        if not cmd:
            cmd = 'Command-Reference'
        self.view.load(
            QUrl.fromLocalFile(
                QFileInfo('data/html/' + cmd.lower() +
                          '.html').absoluteFilePath()))
Esempio n. 16
0
class AboutPage(QtGui.QWidget):

    def __init__(self, banner_path=None, content=None):
        QtGui.QWidget.__init__(self)

        if banner_path is None:
            banner_path = shared_data(openalea.oalab, 'icons/logo/banner.png')

        self._lay = QtGui.QVBoxLayout(self)

        p = QtGui.QSizePolicy

        self._banner = QtGui.QLabel()
        self._banner.setStyleSheet("QLabel { background-color : #ffffff;}")
        banner = QtGui.QPixmap(banner_path)
        size = banner.size()
        self._banner.setPixmap(banner)

        self._content = QWebView()
        if hasattr(self._content, "setReadOnly"):
            self._content.setReadOnly(True)
        self._content.setHtml(content)

        self._footer = QtGui.QLabel()
        self._footer.setStyleSheet("QLabel { background-color : #459454;}")

        self._lay.addWidget(self._banner)
        self._lay.addWidget(self._content)
        self._lay.addWidget(self._footer)
        self._lay.setContentsMargins(0, 0, 0, 0)
        self._lay.setSpacing(0)
Esempio n. 17
0
    def __init__(self, banner_path=None, content=None):
        QtGui.QWidget.__init__(self)

        if banner_path is None:
            banner_path = shared_data(openalea.oalab, 'icons/logo/banner.png')

        self._lay = QtGui.QVBoxLayout(self)

        p = QtGui.QSizePolicy

        self._banner = QtGui.QLabel()
        self._banner.setStyleSheet("QLabel { background-color : #ffffff;}")
        banner = QtGui.QPixmap(banner_path)
        size = banner.size()
        self._banner.setPixmap(banner)

        self._content = QWebView()
        if hasattr(self._content, "setReadOnly"):
            self._content.setReadOnly(True)
        self._content.setHtml(content)

        self._footer = QtGui.QLabel()
        self._footer.setStyleSheet("QLabel { background-color : #459454;}")

        self._lay.addWidget(self._banner)
        self._lay.addWidget(self._content)
        self._lay.addWidget(self._footer)
        self._lay.setContentsMargins(0, 0, 0, 0)
        self._lay.setSpacing(0)
Esempio n. 18
0
    def __init__(self, opts, log, cover_data=None, toc=None):
        from calibre.gui2 import is_ok_to_use_qt
        from calibre.utils.podofo import get_podofo
        if not is_ok_to_use_qt():
            raise Exception('Not OK to use Qt')
        QObject.__init__(self)

        self.logger = self.log = log
        self.podofo = get_podofo()
        self.doc = self.podofo.PDFDoc()

        self.loop = QEventLoop()
        self.view = QWebView()
        self.page = Page(opts, self.log)
        self.view.setPage(self.page)
        self.view.setRenderHints(QPainter.Antialiasing
                                 | QPainter.TextAntialiasing
                                 | QPainter.SmoothPixmapTransform)
        self.view.loadFinished.connect(self._render_html,
                                       type=Qt.QueuedConnection)
        for x in (Qt.Horizontal, Qt.Vertical):
            self.view.page().mainFrame().setScrollBarPolicy(
                x, Qt.ScrollBarAlwaysOff)
        self.render_queue = []
        self.combine_queue = []
        self.tmp_path = PersistentTemporaryDirectory(u'_pdf_output_parts')

        self.opts = opts
        self.cover_data = cover_data
        self.paged_js = None
        self.toc = toc
Esempio n. 19
0
    def __init__(self, parent=None):
        super(Info, self).__init__(parent)

        self.resize(460, 420)
        self.setStyleSheet("background-color:#3B4141;")
        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        #self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Popup)

        self.layout = QtGui.QVBoxLayout()
        self.setLayout(self.layout)

        self.web_view = QWebView()
        self.layout.addWidget(self.web_view)

        self.quitAction = QtGui.QAction("&Quit",
                                        self,
                                        triggered=QtGui.qApp.quit)
        self.on_offAction = QtGui.QAction("&Switch",
                                          self,
                                          triggered=self.on_off)
        self.trayIconMenu = QtGui.QMenu(self)

        self.trayIconMenu.addAction(self.on_offAction)
        self.trayIconMenu.addSeparator()
        self.trayIconMenu.addAction(self.quitAction)
        self.trayIconMenu.setStyleSheet("color:#ffffff;font-size:18px")

        self.trayIcon = QtGui.QSystemTrayIcon(self)
        self.trayIcon.setContextMenu(self.trayIconMenu)
        self.trayIcon.setIcon(QtGui.QIcon(":/imgs/dictionary-icon.png"))
        self.trayIcon.show()
        self.cpb = QtGui.QApplication.clipboard()
        self.cpb.selectionChanged.connect(self.query)

        self.flag = True
Esempio n. 20
0
	def brow(self):
		app1 = QtGui.QApplication(sys.argv)
		grid = QGridLayout()
		browser = QWebView()
		global browser
		url_input = UrlInput(browser)
		requests_table = RequestsTable()

		manager = Manager(requests_table)
		page = QWebPage()
		page.setNetworkAccessManager(manager)
		browser.setPage(page)

		js_eval = JavaScriptEvaluator(page)
		# action_box = ActionInputBox(page)

		grid.addWidget(url_input, 1, 0)
		# grid.addWidget(action_box, 2, 0)
		grid.addWidget(browser, 3, 0)
		# grid.addWidget(requests_table, 4, 0)
		# grid.addWidget(js_eval, 5, 0)

		main_frame = QWidget()
		main_frame.setLayout(grid)
		main_frame.show()
		sys.exit(app.exec_())
Esempio n. 21
0
 def __init__(self, vertical, parent=None):
     QWebView.__init__(self, parent)
     s = self.settings()
     s.setAttribute(s.JavascriptEnabled, False)
     self.vertical = vertical
     self.page().setLinkDelegationPolicy(self.page().DelegateAllLinks)
     self.linkClicked.connect(self.link_activated)
     self._link_clicked = False
     self.setAttribute(Qt.WA_OpaquePaintEvent, False)
     palette = self.palette()
     self.setAcceptDrops(False)
     palette.setBrush(QPalette.Base, Qt.transparent)
     self.page().setPalette(palette)
     self.css = P('templates/book_details.css', data=True).decode('utf-8')
     for x, icon in [('remove_format', 'trash.png'),
                     ('save_format', 'save.png'),
                     ('restore_format', 'edit-undo.png'),
                     ('copy_link', 'edit-copy.png'),
                     ('manage_author', 'user_profile.png'),
                     ('compare_format', 'diff.png')]:
         ac = QAction(QIcon(I(icon)), '', self)
         ac.current_fmt = None
         ac.current_url = None
         ac.triggered.connect(getattr(self, '%s_triggerred' % x))
         setattr(self, '%s_action' % x, ac)
Esempio n. 22
0
 def initialize(self):
     self.loaded = 1
     grid = QGridLayout()
     self.browser = QWebView()
     # handle clicking of links
     self.browser.linkClicked.connect(self.handleLinkClicked)
     url = 'file:///' + os.path.dirname(
         os.path.realpath(__file__)) + '/../html/index.html'
     self.url_input = UrlInput(self.browser)
     # Load the main page of the website
     self.loadIndexPage()
     # This does something for following links
     self.browser.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
     # url_input at row 1 column 0 of our grid
     grid.addWidget(self.url_input, 1, 0)
     # Button for adding link
     self.lbutton = QPushButton('Add external link', self)
     self.lbutton.clicked.connect(self.lbuttonHandle)
     # Button placed in row 1 column 1 or grid
     grid.addWidget(self.lbutton, 1, 1)
     # Button for adding link to internal link
     self.nbutton = QPushButton('Add internal link', self)
     self.nbutton.clicked.connect(self.nbuttonHandle)
     # button at row 1 column 2 of our grid
     grid.addWidget(self.nbutton, 1, 2)
     # Button for rebuilding site
     # self.rbutton = QPushButton('Rebuild site', self)
     # self.rbutton.clicked.connect(self.rbuttonHandle)
     # # button at row 1 column 1 of our grid
     # grid.addWidget( self.rbutton, 1, 3 )
     # browser frame below it
     grid.addWidget(self.browser, 2, 0, 1, 4)
     self.setLayout(grid)
Esempio n. 23
0
class BookView(QSplitter):
    def __init__(self, parent=None):
        super(BookView, self).__init__(parent=parent)
        self.create_layout()
        self.create_connections()

    def create_layout(self):
        self.web_view = QWebView()
        self.chapter_list = QListWidget()
        self.next_button = QPushButton("Next chapter")
        self.previous_button = QPushButton("Previous chapter")

        hbox = QHBoxLayout()
        hbox.addStretch()
        hbox.addWidget(self.previous_button)
        hbox.addWidget(self.next_button)

        vbox = QVBoxLayout()
        vbox.addWidget(QLabel("Chapters"))
        vbox.addWidget(self.chapter_list)
        vbox.addLayout(hbox)

        widget = QWidget()
        widget.setLayout(vbox)

        self.addWidget(self.web_view)
        self.addWidget(widget)

    def create_connections(self):
        chlist = self.chapter_list
        self.connect(
            self.next_button, SIGNAL("clicked()"),
            lambda: chlist.setCurrentRow(0 if chlist.currentRow(
            ) == chlist.count() - 1 else chlist.currentRow() + 1))
        self.connect(
            self.previous_button, SIGNAL("clicked()"),
            lambda: chlist.setCurrentRow(chlist.count(
            ) - 1 if chlist.currentRow() == 0 else chlist.currentRow() - 1))
        self.connect(self.chapter_list, SIGNAL("currentRowChanged(int)"),
                     self.set_chapter)

        page = self.web_view.page()
        page.setLinkDelegationPolicy(QWebPage.DelegateAllLinks)

    def set_chapter(self, num=None):
        if num is None:
            num = self.chapter_list.currentRow()
        if num < 0:
            num = len(self.book.chapters) - 1
        elif num >= len(self.book.chapters):
            num = 0
        self.web_view.setHtml(
            self.book.get_chapter(num).decode(encoding="utf-8"))

    def load_book(self, book_id):
        self.book = Book(book_id)
        self.chapter_list.clear()
        for chapter in self.book.chapters:
            self.chapter_list.addItem(chapter[0])
        self.chapter_list.setCurrentRow(0)
Esempio n. 24
0
    def showAuthDialog(self):
        from PyQt4.QtWebKit import QWebView

        win = QWebView()
        win.titleChanged.connect(self.getKey)
        win.show()
        win.load(QUrl(self.auth_url))
Esempio n. 25
0
 def __init__(self, base_url=None, gui=False, user_agent=None, proxy=None, allowed_extensions=['.html', '.css', '.js'], timeout=20, cache_file=None, debug=False):
     """
     base_url is the domain that will be crawled
     gui is whether to show webkit window or run headless
     user_agent is used to set the user-agent when downloading content
     proxy is the proxy to download through
     allowed_extensions are the media types to allow
     timeout is the maximum amount of seconds to wait for a request
     """
     self.app = QApplication(sys.argv) # must instantiate first
     QWebView.__init__(self)
     webpage = WebPage(user_agent or settings.user_agents[0])
     manager = NetworkAccessManager(proxy, allowed_extensions)
     manager.finished.connect(self.finished)
     webpage.setNetworkAccessManager(manager)
     self.setPage(webpage)
     self.setHtml('<html><head></head><body>No content loaded</body></html>', QUrl('http://localhost'))
     self.timeout = timeout
     self.cache = pdict.PersistentDict(cache_file or settings.cache_file) # cache to store webpages
     self.base_url = base_url
     self.debug = debug
     self.jquery_lib = None
     QTimer.singleShot(0, self.crawl) # start crawling when all events processed
     if gui: self.show() 
     self.app.exec_() # start GUI thread
Esempio n. 26
0
 def __init__(self):
     super(TweetWindow, self).__init__()
     self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
                         | Qt.Popup | Qt.Tool)
     self.setAttribute(Qt.WA_TranslucentBackground, True)
     self.resize(550, 520)
     point = Utils.getDesktopCenterPoint(self)
     self.move(point["x"], point["y"])
     self.webview = QWebView(self)
     self.webview.settings().setAttribute(QWebSettings.JavascriptEnabled,
                                          True)
     self.webview.settings().setAttribute(
         QWebSettings.DeveloperExtrasEnabled, True)
     self.webview.settings().setAttribute(
         QWebSettings.LocalContentCanAccessRemoteUrls, True)
     self.webview.settings().setAttribute(QWebSettings.LocalStorageEnabled,
                                          True)
     self.webview.settings().setLocalStoragePath(AppProperty.HomeDir +
                                                 "/data")
     #self.webview.setContextMenuPolicy(Qt.NoContextMenu)
     self.webview.settings().setDefaultTextEncoding("utf-8")
     self.webview.setGeometry(1, 1, self.width() - 2, self.height() - 2)
     self.webview.page().mainFrame().javaScriptWindowObjectCleared.connect(
         self.setJavaScriptObject)
     self.webview.setStyleSheet(
         "QWebView{background-color: rgba(255, 193, 245, 0%); }")
     self.webview.page().networkAccessManager().setCookieJar(
         AppProperty.CookieJar)
     self.webview.load(
         QUrl.fromLocalFile(AppProperty.HomeDir + "/html/tweetWindow.html"))
Esempio n. 27
0
 def __init__(self):
     QWebView.__init__(self)
     self.createTrayIcon()
     self.resize(400, 200)
     
     self.setHtml("""
        <script>
            function message() 
            {
                return "jsClicked!"; 
             }
        </script>
        <h1>QtWebKit + Python sample program</h1>
        <input type="button" value="Click JavaScript!"
               onClick="alert('[javascript] ' + message())"/>
        <input type="button" value="Click int!"
               onClick="alert('[python] ' +
                                     python.message(5))"/>
        <input type="button" value="Click string!"
               onClick="alert('[python] ' +
                                     python.message1('55','1f'))"/>
        <br />
     """)
     self.show()
     self.trayIcon.show()
Esempio n. 28
0
    def __init__(self, URL, process=None, main=None):
        QWidget.__init__(self)
        BaseCentralWidget.__init__(self)
        self.path = URL
        self.process = process

        v_box = QVBoxLayout(self)
        #Web Frame
        QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,
                                                   True)
        self.webFrame = QWebView()
        self.webFrame.setAcceptDrops(False)
        factory = WebPluginFactory(self, main)
        self.webFrame.page().setPluginFactory(factory)
        self.webFrame.load(QUrl(URL))

        v_box.addWidget(self.webFrame)

        if process is not None:
            time.sleep(0.5)
            self.webFrame.reload()

        if self.path.endswith(
                'startPage.html') and sys.platform.find('win') != -1:
            content = manage_files.read_file_content(self.path)
            pathCss = os.path.join(resources.PRJ_PATH, 'doc', 'styles',
                                   'ninja.css')
            pathJs = os.path.join(resources.PRJ_PATH, 'doc', 'rsc')
            content = content.replace('styles/ninja.css',
                                      pathCss).replace('src="rsc',
                                                       'src="' + pathJs)
            self.webFrame.setHtml(content)
Esempio n. 29
0
class DocWindow(QWidget):
    app = None

    def __init__(self, app):
        super(DocWindow, self).__init__()
        DocWindow.app = app
        self.vlayout  = QVBoxLayout()
        self.view     = DocView()
        self.backbtn  = QPushButton('Back')
        self.closebtn = QPushButton('Close')
        self.vlayout.setContentsMargins(1, 1, 1, 1)
        self.vlayout.setSpacing(1)
        self.vlayout.addWidget(self.view)
        hlayout = QHBoxLayout()
        buttonbox = QWidget()
        buttonbox.setLayout(hlayout)
        self.vlayout.addWidget(buttonbox)
        hlayout.addWidget(self.closebtn)
        hlayout.addWidget(self.backbtn)
        self.closebtn.clicked.connect(self.hide)
        self.backbtn.clicked.connect(self.view.back)
        self.setLayout(self.vlayout)
        self.setWindowTitle('BlueSky documentation')

    def show_cmd_doc(self, cmd):
        if not cmd:
            cmd = 'Command-Reference'
        self.view.load(QUrl.fromLocalFile(QFileInfo('data/html/' + cmd.lower() + '.html').absoluteFilePath()))
Esempio n. 30
0
    def __init__(self, *args):
        QWebView.__init__(self, *args)
        self.gui = None
        self.tags = ''

        self.setPage(NPWebPage())
        self.page().networkAccessManager().setCookieJar(QNetworkCookieJar())

        http_proxy = get_proxies().get('http', None)
        if http_proxy:
            proxy_parts = urlparse(http_proxy)
            proxy = QNetworkProxy()
            proxy.setType(QNetworkProxy.HttpProxy)
            if proxy_parts.username:
                proxy.setUser(proxy_parts.username)
            if proxy_parts.password:
                proxy.setPassword(proxy_parts.password)
            if proxy_parts.hostname:
                proxy.setHostName(proxy_parts.hostname)
            if proxy_parts.port:
                proxy.setPort(proxy_parts.port)
            self.page().networkAccessManager().setProxy(proxy)

        self.page().setForwardUnsupportedContent(True)
        self.page().unsupportedContent.connect(self.start_download)
        self.page().downloadRequested.connect(self.start_download)
        self.page().networkAccessManager().sslErrors.connect(
            self.ignore_ssl_errors)
Esempio n. 31
0
 def __init__(self, base_url=None, gui=False, user_agent=None, proxy=None, allowed_media=None, allowed_regex='.*?', timeout=20, delay=5, enable_plugins=True):#, cache_file=None):
     """
     base_url is the domain that will be crawled
     gui is whether to show webkit window or run headless
     user_agent is used to set the user-agent when downloading content
     proxy is a QNetworkProxy to download through
     allowed_media are the media extensions to allow
     allowed_regex is a regular expressions of URLS to allow
     timeout is the maximum amount of seconds to wait for a request
     delay is the minimum amount of seconds to wait between requests
     """
     self.app = QApplication(sys.argv) # must instantiate first
     QWebView.__init__(self)
     webpage = WebPage(user_agent or random.choice(settings.user_agents))
     allowed_media = allowed_media or ['css', 'js']
     manager = NetworkAccessManager(proxy, allowed_media, allowed_regex)
     manager.finished.connect(self.finished)
     webpage.setNetworkAccessManager(manager)
     self.setPage(webpage)
     self.setHtml('<html><head></head><body>No content loaded</body></html>', QUrl('http://localhost'))
     self.timeout = timeout
     self.delay = delay
     #self.cache = pdict.PersistentDict(cache_file or settings.cache_file) # cache to store webpages
     self.base_url = base_url
     self.jquery_lib = None
     #enable flash plugin etc.
     self.settings().setAttribute(QWebSettings.PluginsEnabled, enable_plugins)
     #XXXQTimer.singleShot(0, self.run) # start crawling when all events processed
     if gui: self.show() 
Esempio n. 32
0
    def __init__(self, title, url, width, height, resizable, fullscreen):
        super(BrowserView, self).__init__()
        BrowserView.instance = self

        self.resize(width, height)
        self.setWindowTitle(title)

        if not resizable:
            self.setFixedSize(width, height)

        if fullscreen:
            self.showFullScreen()


        self.view = QWebView(self)
        self.view.setUrl(QtCore.QUrl(url))

        #layout = QVBoxLayout(self)
        #self.layout.setContentsMargins(0, 0, 0, 0)
        #self.layout.addWidget(self.view)
        self.setCentralWidget(self.view)
        self.trigger.connect(self._handle_load_url)

        self.move(QApplication.desktop().availableGeometry().center() - self.rect().center())
        self.activateWindow()
        self.raise_()
Esempio n. 33
0
class TestWindow(QtGui.QWidget):
    def __init__(self, parent = None):
        super(TestWindow, self).__init__(parent)

        self.palette = QtGui.QPalette()
        self.gridLayout = QtGui.QGridLayout()
        self.centralWidget = QtGui.QWidget()
        self.button = QtGui.QPushButton("Click")
        self.setWindowTitle("UNIX")
        self.resize(1200,700)
        self.button.clicked.connect(self.clicked)
        self.b = QWebView()
        self.b.load(QUrl('http://www.google.com'))
        IEdit = QtGui.QLineEdit()
        self.Trans = QtGui.QTextEdit()

        self.gridLayout.addWidget(IEdit,0,0)
        self.gridLayout.addWidget(self.button,1,0)
        self.gridLayout.addWidget(self.b,2,0)
        self.gridLayout.addWidget(self.Trans,3,0)

        
        self.setLayout(self.gridLayout)


    def clicked(self):
            self.b.load(QUrl('http://yahoo.com.tw'))
            self.Trans.setText('HI')
Esempio n. 34
0
    def __init__(self,
                 network_manager,
                 splash_proxy_factory,
                 splash_request,
                 verbose=False):
        self.network_manager = network_manager
        self.web_view = QWebView()
        self.web_page = SplashQWebPage()
        self.web_page.setNetworkAccessManager(self.network_manager)
        self.web_view.setPage(self.web_page)
        self.web_view.setAttribute(Qt.WA_DeleteOnClose, True)
        settings = self.web_page.settings()
        settings.setAttribute(QWebSettings.JavascriptEnabled, True)
        settings.setAttribute(QWebSettings.PluginsEnabled, False)
        settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, True)
        settings.setAttribute(QWebSettings.LocalStorageEnabled, True)
        settings.setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls,
                              True)
        self.web_page.mainFrame().setScrollBarPolicy(Qt.Vertical,
                                                     Qt.ScrollBarAlwaysOff)
        self.web_page.mainFrame().setScrollBarPolicy(Qt.Horizontal,
                                                     Qt.ScrollBarAlwaysOff)

        self.splash_request = splash_request
        self.web_page.splash_request = splash_request
        self.web_page.splash_proxy_factory = splash_proxy_factory
        self.verbose = verbose

        self.deferred = defer.Deferred()
Esempio n. 35
0
    def __init__(self, html, resolution):

        QWebView.__init__(self)
        self.resolution = resolution
        self.finished = False
        self.out = "web2png.%i.png"%int(random.randint(0,1000))

        #self.web_view = QWebView()
        #self.css_file = QString('/home/ddimitrov/wikiwsd/data/wikipedia_css.css')
        #path = os.getcwd()

        #self.settings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)
        #self.settings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
        #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("wikipedia_css.css"))

        #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile(QString('file:///home/ddimitrov/wikiwsd/wikipedia_css.css')))
        #print self.web_view.settings().userStyleSheetUrl()
        #self.web_view.settings().setAttribute(QWebSettings.AutoLoadImages, False)
        #self.web_view.settings().setAttribute(QWebSettings.JavascriptEnabled, False)
        #self.setCentralWidget(self.web_view)
        
        #self.resize(resolution[0], resolution[1])
        
        self.loadFinished.connect(self._load_finished)
        #self.loadProgress.connect(self._loadProgress)
        
        self.setHtml(html)
Esempio n. 36
0
    def __init__(self, parent):
        super(HtmlViewerWidget, self).__init__(parent)
        self.setLayout(QGridLayout())
        self.layout().setContentsMargins(0, 0, 0, 0)
        self.view = QWebView()
        self.view.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
        self.frame = QFrame()
        self.frame.setLayout(QGridLayout())
        self.frame.layout().setContentsMargins(0, 0, 0, 0)

        self.toolbar = QToolBar()
        self.spacer = QWidget()
        self.spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.copyAction = self.toolbar.addAction(QIcon(":/icons/clipboard"),
                                                 "Copy Text")
        self.label = QLabel()
        self.closeAction = self.toolbar.addAction(QIcon(":/icons/cancel"),
                                                  "Close")
        self.spaceraction = self.toolbar.insertWidget(self.closeAction,
                                                      self.spacer)
        self.labelaction = self.toolbar.insertWidget(self.spaceraction,
                                                     self.label)
        self.closeAction.triggered.connect(self.close)
        self.copyAction.triggered.connect(self.copy_text)
        self.layout().addWidget(self.frame)
        self.frame.layout().addWidget(self.toolbar)
        self.frame.layout().addWidget(self.view)

        self.effect = QGraphicsOpacityEffect()
        self.label.setGraphicsEffect(self.effect)
        self.anim = QPropertyAnimation(self.effect, "opacity")
        self.anim.setDuration(2000)
        self.anim.setStartValue(1.0)
        self.anim.setEndValue(0.0)
        self.anim.setEasingCurve(QEasingCurve.OutQuad)
Esempio n. 37
0
class HelpWidget(QtGui.QDialog):

    force_quit = QtCore.pyqtSignal()

    def __init__(self, parent=None):

        super(HelpWidget, self).__init__(parent)
        self._layout = None
        self._msg_widget = None
        self._url_widget = None

        self._init_ui()

        return

    def _init_ui(self):

        self._layout = QtGui.QVBoxLayout(self)

        man_paths = self._get_man_paths()

        if man_paths is None:
            self._init_message()
        else:
            self._init_help(man_paths)

        self.setLayout(self._layout)

        self.resize(900, 800)
        self.setWindowTitle("DTOcean User Manual")

        return

    def _init_message(self):

        text = "No manuals installated"
        self._msg_widget = Message(self, text)

        self._layout.addWidget(self._msg_widget)

        return

    def _init_help(self, path_dict):

        index_path = os.path.join(path_dict["man_user_path"], "index.html")
        url = QUrl.fromLocalFile(index_path)

        self._url_widget = QWebView(self)
        self._url_widget.load(url)
        self._url_widget.show()

        self._layout.addWidget(self._url_widget)

        return

    def _get_man_paths(self):

        path_dict = get_install_paths()

        return path_dict
Esempio n. 38
0
 def __init__(self, vertical, parent=None):
     QWebView.__init__(self, parent)
     s = self.settings()
     s.setAttribute(s.JavascriptEnabled, False)
     self.vertical = vertical
     self.page().setLinkDelegationPolicy(self.page().DelegateAllLinks)
     self.linkClicked.connect(self.link_activated)
     self._link_clicked = False
     self.setAttribute(Qt.WA_OpaquePaintEvent, False)
     palette = self.palette()
     self.setAcceptDrops(False)
     palette.setBrush(QPalette.Base, Qt.transparent)
     self.page().setPalette(palette)
     self.css = P("templates/book_details.css", data=True).decode("utf-8")
     for x, icon in [
         ("remove_format", "trash.png"),
         ("save_format", "save.png"),
         ("restore_format", "edit-undo.png"),
         ("copy_link", "edit-copy.png"),
         ("manage_author", "user_profile.png"),
         ("compare_format", "diff.png"),
     ]:
         ac = QAction(QIcon(I(icon)), "", self)
         ac.current_fmt = None
         ac.current_url = None
         ac.triggered.connect(getattr(self, "%s_triggerred" % x))
         setattr(self, "%s_action" % x, ac)
Esempio n. 39
0
    def __init__(self, *args):
        QWebView.__init__(self, *args)
        self.gui = None
        self.tags = ''

        self._page = NPWebPage()
        self.setPage(self._page)
        self.cookie_jar = QNetworkCookieJar()
        self.page().networkAccessManager().setCookieJar(self.cookie_jar)

        http_proxy = get_proxies().get('http', None)
        if http_proxy:
            proxy_parts = urlparse(http_proxy)
            proxy = QNetworkProxy()
            proxy.setType(QNetworkProxy.HttpProxy)
            if proxy_parts.username:
                proxy.setUser(proxy_parts.username)
            if proxy_parts.password:
                proxy.setPassword(proxy_parts.password)
            if proxy_parts.hostname:
                proxy.setHostName(proxy_parts.hostname)
            if proxy_parts.port:
                proxy.setPort(proxy_parts.port)
            self.page().networkAccessManager().setProxy(proxy)

        self.page().setForwardUnsupportedContent(True)
        self.page().unsupportedContent.connect(self.start_download)
        self.page().downloadRequested.connect(self.start_download)
        self.page().networkAccessManager().sslErrors.connect(self.ignore_ssl_errors)
Esempio n. 40
0
    def __init__(self, parent, icon, prefs, html=None, page=None, title=''):
        self.prefs = prefs
        #QDialog.__init__(self, parent=parent)
        super(HelpView, self).__init__(parent, 'help_dialog')
        self.setWindowTitle(title)
        self.setWindowIcon(icon)
        self.l = QVBoxLayout(self)
        self.setLayout(self.l)

        self.wv = QWebView()
        if html is not None:
            self.wv.setHtml(html)
        elif page is not None:
            self.wv.load(QUrl(page))
        self.wv.setMinimumHeight(100)
        self.wv.setMaximumHeight(16777215)
        self.wv.setMinimumWidth(400)
        self.wv.setMaximumWidth(16777215)
        self.wv.setGeometry(0, 0, 400, 100)
        self.wv.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.l.addWidget(self.wv)

        # Sizing
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)
        self.resize_dialog()
Esempio n. 41
0
    def __init__(self, url): 
        self.app = QApplication(sys.argv) 
        QWebView.__init__(self) 

        self.loadFinished.connect(self._loadFinished) 
        self.load(QUrl(url)) 
        self.app.exec_() 
Esempio n. 42
0
    def mousePressEvent(self, mouseEvent):
        pos = mouseEvent.pos()

        if self.pointInScroller(pos, QtCore.Qt.Vertical) or self.pointInScroller(pos, QtCore.Qt.Horizontal):
            self.clickedInScrollBar = True
        else:
            if self.ignored.count(mouseEvent):
                self.ignored.remove(mouseEvent)
                return QWebView.mousePressEvent(self, mouseEvent)

            if not self.pressed and not self.scrolling and mouseEvent.modifiers() == QtCore.Qt.NoModifier:
                if mouseEvent.buttons() == QtCore.Qt.LeftButton:
                    self.pressed = True
                    self.scrolling = False
                    self.handIsClosed = False
                    QApplication.setOverrideCursor(QtCore.Qt.OpenHandCursor)

                    self.position = mouseEvent.pos()
                    frame = self.page().mainFrame()
                    xTuple = frame.evaluateJavaScript("window.scrollX").toInt()
                    yTuple = frame.evaluateJavaScript("window.scrollY").toInt()
                    self.offset = QPoint(xTuple[0], yTuple[0])
                    return

        return QWebView.mousePressEvent(self, mouseEvent)
Esempio n. 43
0
def show():
    path = os.path.abspath(__file__)
    while path:
        path = path[:path.rfind("/")]
        # specialize for Mac app bundle
        p = path
        if path.endswith(".app/Contents"):
            p += "/Resources"
        p += "/docs/projects/steamshovel/index.html"
        if os.path.exists(p):
            path = p
            break
    if not path:
        return False

    try:
        import IPython
        from PyQt4.QtWebKit import QWebView
        from PyQt4.QtCore import QUrl

        view = QWebView()
        view.setUrl(QUrl(path))
        view.show()
        view.raise_()
        view.activateWindow()
        __main__.view = view  # keep view alive
        return True
    except ImportError:
        # fall back to webbrowser module
        import webbrowser as wb
        w = wb.get()
        # work-around for bug in Python2.7 on MacOS, only Safari works
        if isinstance(w, wb.MacOSXOSAScript):
            w = wb.get("Safari")
        return w.open(path)
Esempio n. 44
0
    def __init__(self, base, url):
        QDialog.__init__(self)
        self.base = base
        self.setWindowTitle(i18n.get('authorize_turpial'))
        self.resize(800, 550)
        self.setModal(True)

        self.webview = QWebView()
        qurl = QUrl(url)
        self.webview.setUrl(qurl)

        message = QLabel(i18n.get('copy_the_pin'))
        #message.setAlignment(Qt.AlignRight)

        self.pin = QLineEdit()
        self.pin.setPlaceholderText(i18n.get('type_the_pin'))

        authorize_btn = QPushButton(i18n.get('save'))
        authorize_btn.clicked.connect(self.accept)

        widgets_box = QHBoxLayout()
        widgets_box.setSpacing(3)
        widgets_box.setContentsMargins(3, 3, 3, 3)
        widgets_box.addWidget(message, 1)
        widgets_box.addWidget(self.pin)
        widgets_box.addWidget(authorize_btn)

        layout = QVBoxLayout()
        layout.addWidget(self.webview)
        layout.addLayout(widgets_box)
        layout.setSpacing(0)
        layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(layout)

        self.exec_()
Esempio n. 45
0
 def __init__(self, parent):
     super(HtmlViewerWidget, self).__init__(parent)
     self.setLayout(QGridLayout())
     self.layout().setContentsMargins(0, 0, 0, 0)
     self.view = QWebView()
     self.view.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
     self.layout().addWidget(self.view)
Esempio n. 46
0
    def __init__(self, html, resolution):

        QWebView.__init__(self)
        self.resolution = resolution
        self.finished = False
        self.out = "web2png.%i.png" % int(random.randint(0, 1000))

        #self.web_view = QWebView()
        #self.css_file = QString('/home/ddimitrov/wikiwsd/data/wikipedia_css.css')
        #path = os.getcwd()

        #self.settings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)
        #self.settings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
        #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("wikipedia_css.css"))

        #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile(QString('file:///home/ddimitrov/wikiwsd/wikipedia_css.css')))
        #print self.web_view.settings().userStyleSheetUrl()
        #self.web_view.settings().setAttribute(QWebSettings.AutoLoadImages, False)
        #self.web_view.settings().setAttribute(QWebSettings.JavascriptEnabled, False)
        #self.setCentralWidget(self.web_view)

        #self.resize(resolution[0], resolution[1])

        self.loadFinished.connect(self._load_finished)
        #self.loadProgress.connect(self._loadProgress)

        self.setHtml(html)
Esempio n. 47
0
    def __init__(self, widget, chart='Line', data=[], xkey='',
        ykeys=[], labels=[], raw='', **attrs):
        '''
        @param {QWidget} widget = instance of QWidget
        @param {string} name = namefile chart
        @param {string} chart = morris type chart: Line, Bar, Donnut
        @param {list} data = list of data to show
        @param {string} xkey = a string containing the name of the attribute that contains X labels
        @param {string} ykeys = a list of strings containing names of attributes that contain Y values
        @param {list} labels = a list of strings containing labels for the data series to be plotted
        @param {string} raw = string params to append in morris options
        '''
        self.widget = widget
        self.name = 'chart.html' # chart name file
        self.chart = chart.capitalize() # Line | Bar | Donut
        self.data = data # []
        self.xkey = xkey
        self.ykeys = ykeys # ['a', 'b']
        self.labels = labels # ['label a', 'label b']
        self.attrs = attrs
        self.raw = raw
        self.program_folder = getProgramFolderPath()
        self.tmpl = convertPath(self.program_folder + 'morris/template.html')
        self.path_file = convertPath(self.program_folder + self.name)

        self.webview = QWebView()
        self.webview.setPage(WebPage())
        self.webview.page().settings().setAttribute( QWebSettings.JavascriptEnabled, True)
        self.widget.setLayout(QtGui.QVBoxLayout())
        self.widget.layout().setContentsMargins(0, 0, 0, 0)
        self.widget.layout().addWidget(self.webview)
Esempio n. 48
0
    def mousePressEvent(self, mouseEvent):
        pos = mouseEvent.pos()

        if self.pointInScroller(pos, QtCore.Qt.Vertical) or self.pointInScroller(pos, QtCore.Qt.Horizontal):
            self.clickedInScrollBar = True
        else:
            if self.ignored.count(mouseEvent):
                self.ignored.remove(mouseEvent)
                return QWebView.mousePressEvent(self, mouseEvent)

            if not self.pressed and not self.scrolling and mouseEvent.modifiers() == QtCore.Qt.NoModifier:
                if mouseEvent.buttons() == QtCore.Qt.LeftButton:
                    self.pressed = True
                    self.scrolling = False
                    self.handIsClosed = False
                    QApplication.setOverrideCursor(QtCore.Qt.OpenHandCursor)

                    self.position = mouseEvent.pos()
                    frame = self.page().mainFrame()
                    xTuple = frame.evaluateJavaScript("window.scrollX").toInt()
                    yTuple = frame.evaluateJavaScript("window.scrollY").toInt()
                    self.offset = QPoint(xTuple[0], yTuple[0])
                    return

        return QWebView.mousePressEvent(self, mouseEvent)
Esempio n. 49
0
 def contextMenuEvent(self, event):
     """Replace the default RMB menu."""
     menu = QtGui.QMenu(self)
     inspect = QtGui.QAction('&Inspect', self)
     inspect.triggered.connect(self.show_inspector)
     menu.addAction(inspect)
     QWebView.contextMenuEvent(self, event)
Esempio n. 50
0
    def __init__(self, opts, log, cover_data=None, toc=None):
        from calibre.gui2 import is_ok_to_use_qt
        if not is_ok_to_use_qt():
            raise Exception('Not OK to use Qt')
        QObject.__init__(self)

        self.logger = self.log = log
        self.opts = opts
        self.cover_data = cover_data
        self.paged_js = None
        self.toc = toc

        self.loop = QEventLoop()
        self.view = QWebView()
        self.page = Page(opts, self.log)
        self.view.setPage(self.page)
        self.view.setRenderHints(QPainter.Antialiasing
                                 | QPainter.TextAntialiasing
                                 | QPainter.SmoothPixmapTransform)
        self.view.loadFinished.connect(self.render_html,
                                       type=Qt.QueuedConnection)
        for x in (Qt.Horizontal, Qt.Vertical):
            self.view.page().mainFrame().setScrollBarPolicy(
                x, Qt.ScrollBarAlwaysOff)
        self.report_progress = lambda x, y: x
        self.current_section = ''
Esempio n. 51
0
    def mouseReleaseEvent(self, mouseEvent):
        if self.clickedInScrollBar:
            self.clickedInScrollBar = False
        else:
            if self.ignored.count(mouseEvent):
                self.ignored.remove(mouseEvent)
                return QWebView.mousePressEvent(self, mouseEvent)

            if self.scrolling:
                self.pressed = False
                self.scrolling = False
                self.handIsClosed = False
                QApplication.restoreOverrideCursor()
                return

            if self.pressed:
                self.pressed = False
                self.scrolling = False
                self.handIsClosed = False
                QApplication.restoreOverrideCursor()

                event1 = QMouseEvent(QEvent.MouseButtonPress, self.position, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
                                     QtCore.Qt.NoModifier)
                event2 = QMouseEvent(mouseEvent)
                self.ignored.append(event1)
                self.ignored.append(event2)
                QApplication.postEvent(self, event1)
                QApplication.postEvent(self, event2)
                return
        return QWebView.mouseReleaseEvent(self, mouseEvent)
Esempio n. 52
0
class BookView(QSplitter):
    def __init__(self, parent=None):
        super(BookView, self).__init__(parent=parent)
        self.create_layout()
        self.create_connections()

    def create_layout(self):
        self.web_view = QWebView()
        self.chapter_list = QListWidget()
        self.next_button = QPushButton("Next chapter")
        self.previous_button = QPushButton("Previous chapter")

        hbox = QHBoxLayout()
        hbox.addStretch()
        hbox.addWidget(self.previous_button)
        hbox.addWidget(self.next_button)

        vbox = QVBoxLayout()
        vbox.addWidget(QLabel("Chapters"))
        vbox.addWidget(self.chapter_list)
        vbox.addLayout(hbox)

        widget = QWidget()
        widget.setLayout(vbox)

        self.addWidget(self.web_view)
        self.addWidget(widget)

    def create_connections(self):
        chlist = self.chapter_list
        self.connect(self.next_button, SIGNAL("clicked()"), lambda:
                     chlist.setCurrentRow(0
                         if chlist.currentRow() == chlist.count() - 1
                         else chlist.currentRow() + 1))
        self.connect(self.previous_button, SIGNAL("clicked()"), lambda:
                     chlist.setCurrentRow(chlist.count() - 1
                                          if chlist.currentRow() == 0
                                          else chlist.currentRow() - 1))
        self.connect(self.chapter_list, SIGNAL("currentRowChanged(int)"),
                     self.set_chapter)

        page = self.web_view.page()
        page.setLinkDelegationPolicy(QWebPage.DelegateAllLinks)

    def set_chapter(self, num=None):
        if num is None:
            num = self.chapter_list.currentRow()
        if num < 0:
            num = len(self.book.chapters) - 1
        elif num >= len(self.book.chapters):
            num = 0
        self.web_view.setHtml(self.book.get_chapter(num).decode(encoding="utf-8"))

    def load_book(self, book_id):
        self.book = Book(book_id)
        self.chapter_list.clear()
        for chapter in self.book.chapters:
            self.chapter_list.addItem(chapter[0])
        self.chapter_list.setCurrentRow(0)
Esempio n. 53
0
class UploadFiles(QWidget):
    
    def __init__(self):
        QWidget.__init__(self)
        vbox = QVBoxLayout(self)
        self.web = QWebView()
        self.web.load(QUrl('http://wingedbox.com/upload_files'))
        vbox.addWidget(self.web)
Esempio n. 54
0
	def showHelpDialog(self):
		helpDialog = QDialog(self)
		verticalLayout = QVBoxLayout(helpDialog)
		helpWebView = QWebView(helpDialog)
		helpWebView.setUrl(QUrl(self.helpFile))
		verticalLayout.addWidget(helpWebView)
		helpDialog.exec_()
		pass
Esempio n. 55
0
	def __init__(self, parent=None):
		"""
		This method initializes the class.

		:param parent: Object parent. ( QObject )
		"""

		QWebView.__init__(self, parent)
Esempio n. 56
0
 def __init__(self, window):
     QWebView.__init__(self)
     self.window = window
     with open(Resources.get_path("leftpane.js"), "r") as f:
         self.js = f.read()
     # We don't want plugins for this simple pane
     self.settings().setAttribute(QWebSettings.PluginsEnabled, False)
     self.reset()
Esempio n. 57
0
 def keyPressEvent( self, event ):
     " Handles the key press events "
     if event.key() == Qt.Key_Escape:
         self.escapePressed.emit()
         event.accept()
     else:
         QWebView.keyPressEvent( self, event )
     return
class Popup(QtGui.QWidget):
	def __init__(self):
		QtGui.QWidget.__init__(self)
		#self.centralwidget = QtGui.QWidget
		#self.verticalLayout_4 = QtGui.QVBoxLayout(self.centralwidget)
		self.QWebView = QWebView(self)
		self.QWebView.resize(350,400)
		self.resize(350, 400)
Esempio n. 59
-1
class BrowserWidget(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        vlayout = QVBoxLayout()
        
        vlayout.addLayout(self.get_url_bar())
        
        javascript_bar = self.get_javascript_bar()
        vlayout.addLayout(javascript_bar)

        self.browser = QWebView(self)
        self.browser_frame = self.browser.page().currentFrame()
        
        self.connect(self.browser_frame, SIGNAL('javaScriptWindowObjectCleared()'),
                      self.add_javascript_bridge);
        vlayout.addWidget(self.browser)
        
        vlayout.addWidget(QuitButton())
        self.setLayout(vlayout)


    def get_url_bar(self):
        url_bar = QHBoxLayout()
    
        self.url_box = QLineEdit()
        self.connect(self.url_box, SIGNAL('returnPressed()'), self.show_browser)
        
        go = QPushButton(self)
        go.setText("Go")
        self.connect(go, SIGNAL('clicked()'), self.show_browser)
        
        url_bar.addWidget(self.url_box)
        url_bar.addWidget(go)
        return url_bar


    def get_javascript_bar(self):
        javascript_bar = QHBoxLayout()

        self.javascript_box = QLineEdit()
        self.connect(self.javascript_box, SIGNAL('returnPressed()'), self.send_javascript)
        
        ex = QPushButton(self)
        ex.setText("Execute on page")
        self.connect(ex, SIGNAL('clicked()'), self.send_javascript)
        
        javascript_bar.addWidget(self.javascript_box)
        javascript_bar.addWidget(ex)
        return javascript_bar

    def add_javascript_bridge(self):
        self.browser_frame.addToJavaScriptWindowObject("webkitBridge", WebkitBridge())

    def send_javascript(self):
        self.browser.page().currentFrame().evaluateJavaScript(self.javascript_box.text())

    
    def show_browser(self):
        url = QUrl(self.url_box.text())
        self.browser.load(url)