예제 #1
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)
예제 #2
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)
예제 #3
0
파일: browser.py 프로젝트: palerdot/calibre
    def __init__(
        self,
        log,
        confirm_callback=None,
        prompt_callback=None,
        user_agent=USER_AGENT,
        enable_developer_tools=False,
        parent=None,
    ):
        QWebPage.__init__(self, parent)

        self.log = log
        self.user_agent = user_agent if user_agent else USER_AGENT
        self.confirm_callback = confirm_callback
        self.prompt_callback = prompt_callback
        self.setForwardUnsupportedContent(True)
        self.unsupportedContent.connect(self.on_unsupported_content)
        settings = self.settings()
        if enable_developer_tools:
            settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        QWebSettings.enablePersistentStorage(os.path.join(cache_dir(), "webkit-persistence"))
        QWebSettings.setMaximumPagesInCache(0)
        self.bridge_name = "b" + uuid.uuid4().get_hex()
        self.mainFrame().javaScriptWindowObjectCleared.connect(self.add_window_objects)
        self.dom_loaded = False
예제 #4
0
def main():
    if len(sys.argv) == 2:
        appid = sys.argv[1]
        app = QtSingleApplication(appid, [appid] + sys.argv[2:])
        if app.isRunning():
            sys.exit(0)
        errors.app = app
        desktopEntry = desktop.getEntry(appid)

        if desktopEntry.get('X-%s-plugins' % APP_NAME) == '1':
            QWebSettings.globalSettings().setAttribute(
                QWebSettings.PluginsEnabled, True)

        w = BrowserWindow(appid, desktopEntry.getBaseUrl(),
                          desktopEntry.getName())
    else:
        appGuid = '3a34b884-8ab4-4a60-a243-dae69928a82e'
        app = QtSingleApplication(appGuid, ['Webplier'] + sys.argv[2:])
        if app.isRunning():
            sys.exit(0)
        w = SiteListWindow()
    w.show()
    app.setActivationWindow(w)

    sys.exit(app.exec_())
예제 #5
0
    def __init__(self,
                 log,
                 confirm_callback=None,
                 prompt_callback=None,
                 user_agent=USER_AGENT,
                 enable_developer_tools=False,
                 parent=None):
        QWebPage.__init__(self, parent)

        self.log = log
        self.user_agent = user_agent if user_agent else USER_AGENT
        self.confirm_callback = confirm_callback
        self.prompt_callback = prompt_callback
        self.setForwardUnsupportedContent(True)
        self.unsupportedContent.connect(self.on_unsupported_content)
        settings = self.settings()
        if enable_developer_tools:
            settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        QWebSettings.enablePersistentStorage(
            os.path.join(cache_dir(), 'webkit-persistence'))
        QWebSettings.setMaximumPagesInCache(0)
        self.bridge_name = 'b' + uuid.uuid4().get_hex()
        self.mainFrame().javaScriptWindowObjectCleared.connect(
            self.add_window_objects)
        self.dom_loaded = False
예제 #6
0
 def render(self):
     QWebSettings.clearMemoryCaches()
     try:
         mybuffer = self.xmlbuffer
         self.view.setContent(mybuffer, self.mime, self.baseurl)
     except Exception as e:
         self.view.setHtml( "Unexpected error:" + handle_except(e) )
예제 #7
0
    def __init__(self):
        QWidget.__init__(self)

        vbox = QVBoxLayout(self)
        # Web Frame
        self.webFrame = QWebView()
        QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        vbox.addWidget(self.webFrame)
예제 #8
0
파일: web.py 프로젝트: bogdanvuk/pyde
 def __init__(self, view: Amendment('view/', lambda v: hasattr(v, 'mode') and (v.mode.name == 'web') and (v.widget is None))): #, orig_editor=None):
     self.view = view
     QWebView.__init__(self)
     view.widget = self
     self.load(QUrl(view.filebuf.file_name))
     self.page().setContentEditable(True)
     QNetworkProxyFactory.setUseSystemConfiguration(True);
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True);
     QWebSettings.globalSettings().setAttribute(QWebSettings.AutoLoadImages, True);
예제 #9
0
    def __init__(self):
        QWidget.__init__(self)

        vbox = QVBoxLayout(self)
        #Web Frame
        self.webFrame = QWebView()
        QWebSettings.globalSettings().setAttribute(
            QWebSettings.DeveloperExtrasEnabled, True)
        vbox.addWidget(self.webFrame)
예제 #10
0
파일: main.py 프로젝트: chozabu/PyIM
def main():  
	app = QtGui.QApplication(sys.argv)  
	QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True);
	
	myObj = QtJsBridge()
	
	webView = QtWebKit.QWebView()  
	# Make myObj exposed as JavaScript object named 'pyObj'
	webView.page().mainFrame().addToJavaScriptWindowObject("pyObj", myObj)
	myObj.mainframe=webView.page().mainFrame()
	webView.setHtml(html)  
	
	window = QtGui.QMainWindow()  
	window.setCentralWidget(webView)  
	window.show()  
	
	cf = json.load(open('config.json'))
	client = xmpp.Client(cf['login2'])
	client.connect(server=(cf['server'],int(cf['port'])))
	client.auth(cf['username'], cf['passwd'], 'botty')
	
	
	client.RegisterHandler('message', myObj.gotmsg)
	#client.RegisterHandler('chat', self.gotmsg)
	client.sendInitPresence()
	
	#need to call this later on too.
	roster =  client.getRoster()
	myObj.rkeys = [str(r) for r in roster.keys()]
	
	#give js obj access to send. could wrap in another method if paranoid :P
	myObj.send = client.send
	myObj.mainframe.evaluateJavaScript("getRoster();")
	
	#this get messages section could be improved, or replaced!
	global cancheckmsgs
	cancheckmsgs = True
	def checkmsgs():
		global cancheckmsgs
		if not cancheckmsgs: return
		cancheckmsgs = False
		socketlist = {client.Connection._sock:'xmpp',sys.stdin:'stdio'}
		
		(i , o, e) = select.select(socketlist.keys(),[],[],.01)
		for each in i:
			print each
			if socketlist[each] == 'xmpp':
				client.Process(.01)
		cancheckmsgs = True
	
	timer = QTimer()
	timer.timeout.connect(checkmsgs)
	timer.start(100)
	
	sys.exit(app.exec_())  
예제 #11
0
    def __init__(self, *args, **kwargs):
        logging.debug('Starting __init__')
        self.url = kwargs['url']
        self.ghost = ghost.Ghost(wait_timeout=60)
        logging.debug('Created Ghost object')

        QWebSettings.globalSettings().setAttribute(QWebSettings.AutoLoadImages, False)
        QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, False)
        self.page, self.resources = self.ghost.open(self.url)
        self.frame = self.ghost.main_frame
        self.body = self.ghost.main_frame.findFirstElement('body')
        logging.debug('Fetched the page')
예제 #12
0
 def show_graph(self):
     GeosismaWebForm = 'GeosismaSchedaAgibilita.html'
     template_path = os.path.dirname(os.path.realpath(__file__))+'/template/'+GeosismaWebForm
     # create webview clearing cache
     # js-python connector is insude WebView Class
     self.dlg = GeosismaOfflineDlg()
     
     #self.web = WebPage()
     # load content
     QWebSettings.clearMemoryCaches()
     self.dlg.ui.webView.load(QUrl(template_path))
     self.dlg.show()
예제 #13
0
 def show_help(self):
     html = resource_string("emzed.core.explorers", "help_peakmapexplorer.html")
     QWebSettings.globalSettings().setFontFamily(QWebSettings.StandardFont, 'Courier')
     QWebSettings.globalSettings().setFontSize(QWebSettings.DefaultFontSize, 12)
     v = QWebView(self)
     v.setHtml(html)
     dlg = QDialog(self, Qt.Window)
     dlg.setMinimumSize(300, 300)
     l = QVBoxLayout(dlg)
     l.addWidget(v)
     dlg.setLayout(l)
     dlg.show()
예제 #14
0
 def show_help(self):
     html = resource_string("emzed.core.explorers", "help_peakmapexplorer.html")
     QWebSettings.globalSettings().setFontFamily(QWebSettings.StandardFont, 'Courier')
     QWebSettings.globalSettings().setFontSize(QWebSettings.DefaultFontSize, 12)
     v = QWebView(self)
     v.setHtml(html)
     dlg = QDialog(self, Qt.Window)
     dlg.setMinimumSize(300, 300)
     l = QVBoxLayout(dlg)
     l.addWidget(v)
     dlg.setLayout(l)
     dlg.show()
예제 #15
0
 def webSettings(self):
     self.cookiesjar = PersistentCookieJar(self)
     self.zoom = self.readZoom()
     # Required by Youtube videos (HTML5 video support only on Qt5)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, self.plugins)
     # We don't want Java
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled, False)
     # We don't need History
     QWebSettings.globalSettings().setAttribute(QWebSettings.PrivateBrowsingEnabled, True)
     # Required for copy and paste clipboard integration
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     # Enabling Inspeclet only when --debug=True (requires more CPU usage)
     QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, self.debug)
예제 #16
0
 def webSettings(self):
     self.cookiesjar = PersistentCookieJar(self)
     self.zoom = self.readZoom()
     # Required by Youtube videos (HTML5 video support only on Qt5)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, self.plugins)
     # We don't want Java
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled, False)
     # We don't need History
     QWebSettings.globalSettings().setAttribute(QWebSettings.PrivateBrowsingEnabled, True)
     # Required for copy and paste clipboard integration
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     # Enabling Inspeclet only when --debug=True (requires more CPU usage)
     QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, self.debug)
예제 #17
0
 def exec_(self):
     GeosismaWebForm = 'GeosismaSchedaAgibilita.html'
     template_path = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), 'template',
         GeosismaWebForm)
     # create webview clearing cache
     # js-python connector is inside WebView Class
     # load content
     QWebSettings.clearMemoryCaches()
     url = QUrl.fromLocalFile(
         template_path
     )  # necessary to be compatible among different way to refer resources (e.g. windows y linux)
     self.webView.load(url)
     self.show()
예제 #18
0
파일: FeedView.py 프로젝트: bodil/feedlol
 def __init__(self, parent = None):
     QWebView.__init__(self, parent)
     self.setMinimumSize(320, 480)
     self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
     self.page().setForwardUnsupportedContent(True)
     self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
     QWebSettings.setWebGraphic(QWebSettings.MissingImageGraphic, QPixmap("data/media/missing.png"))
     self.siteServer = SiteServer(self)
     self.previewTooltip = None
     self.connect(self.page(), SIGNAL("linkClicked(const QUrl&)"), self.slotLinkClicked)
     self.connect(self.page(), SIGNAL("unsupportedContent(QNetworkReply*)"), self.slotHandleReply)
     self.connect(self.page(), SIGNAL("frameCreated(QWebFrame*)"), self.setupFrame)
     # NOTE: This simplified mechanism depends on the application NEVER using framesets!
     self.connect(self.page().mainFrame(), SIGNAL("javaScriptWindowObjectCleared()"), self.setupFrame)
     self.connect(self.page(), SIGNAL("linkHovered(const QString&, const QString&, const QString&)"), self.linkHovered)
예제 #19
0
    def __init__(self, url, process=None, parent=None):
        QWidget.__init__(self, parent)
        itab_item.ITabItem.__init__(self)
        self._id = url
        self._process = process
        vbox = QVBoxLayout(self)
        #Web Frame
        QWebSettings.globalSettings().setAttribute(
            QWebSettings.PluginsEnabled, True)
        self.webFrame = QWebView(self)
        self.webFrame.setAcceptDrops(False)
        factory = WebPluginFactory(self)

        self.webFrame.page().setPluginFactory(factory)
        self.webFrame.load(QUrl(url))

        vbox.addWidget(self.webFrame)

        if process is not None:
            time.sleep(0.5)
            self.webFrame.load(QUrl(url))

        if url == resources.START_PAGE_URL:
            self.webFrame.page().setLinkDelegationPolicy(
                QWebPage.DelegateAllLinks)
            self.connect(self.webFrame, SIGNAL("linkClicked(QUrl)"),
                self.start_page_operations)
            if sys.platform == "win32":
                content = file_manager.read_file_content(self.ID)
                pathCss = os.path.join(
                    resources.PRJ_PATH, 'doc', 'css', 'style.css')
                pathJs = os.path.join(resources.PRJ_PATH, 'doc', 'js', 'libs')
                pathImg = os.path.join(resources.PRJ_PATH, 'doc', 'img')
                content = content.replace('css/style.css',
                    pathCss).replace(
                    'src="js/libs/', 'src="%s\\' % pathJs).replace(
                    'src="img/', 'src="%s\\' % pathImg)
                self.webFrame.setHtml(content)
            self._id = 'Start Page'
            policy = Qt.ScrollBarAlwaysOff
        else:
            policy = Qt.ScrollBarAsNeeded
        self.webFrame.page().currentFrame().setScrollBarPolicy(
            Qt.Vertical, policy)
        self.webFrame.page().currentFrame().setScrollBarPolicy(
            Qt.Horizontal, policy)
예제 #20
0
    def __init__(self):
        self.debug = 1
        self.app = QApplication(sys.argv)
        self.desktop = QApplication.desktop()
        self.web = QWebView()
        self.icon = QIcon(QString(ICON))
        QWebSettings.setIconDatabasePath(DATA_DIR)
        #self.web.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)

        QObject.connect(self.web, SIGNAL("titleChanged ( const QString &)"),
                        self.title_changed)
        QObject.connect(self.web, SIGNAL("iconChanged ()"), self.icon_changed)
        QObject.connect(self.web.page(), SIGNAL("windowCloseRequested ()"),
                        self.close_window)
        QObject.connect(self.web.page(),
                        SIGNAL("geometryChangeRequested ( const QRect)"),
                        self.set_geometry)
예제 #21
0
    def __init__(self, url, process=None, parent=None):
        QWidget.__init__(self, parent)
        itab_item.ITabItem.__init__(self)
        self._id = url
        self._process = process
        vbox = QVBoxLayout(self)
        #Web Frame
        QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,
                                                   True)
        self.webFrame = QWebView(self)
        self.webFrame.setAcceptDrops(False)
        factory = WebPluginFactory(self)

        self.webFrame.page().setPluginFactory(factory)
        self.webFrame.load(QUrl(url))

        vbox.addWidget(self.webFrame)

        if process is not None:
            time.sleep(0.5)
            self.webFrame.load(QUrl(url))

        if url == resources.START_PAGE_URL:
            self.webFrame.page().setLinkDelegationPolicy(
                QWebPage.DelegateAllLinks)
            self.connect(self.webFrame, SIGNAL("linkClicked(QUrl)"),
                         self.start_page_operations)
            if sys.platform == "win32":
                content = file_manager.read_file_content(self.ID)
                pathCss = os.path.join(resources.PRJ_PATH, 'doc', 'css',
                                       'style.css')
                pathJs = os.path.join(resources.PRJ_PATH, 'doc', 'js', 'libs')
                pathImg = os.path.join(resources.PRJ_PATH, 'doc', 'img')
                content = content.replace('css/style.css', pathCss).replace(
                    'src="js/libs/',
                    'src="%s\\' % pathJs).replace('src="img/',
                                                  'src="%s\\' % pathImg)
                self.webFrame.setHtml(content)
            self._id = 'Start Page'
            policy = Qt.ScrollBarAlwaysOff
        else:
            policy = Qt.ScrollBarAsNeeded
        self.webFrame.page().currentFrame().setScrollBarPolicy(
            Qt.Vertical, policy)
        self.webFrame.page().currentFrame().setScrollBarPolicy(
            Qt.Horizontal, policy)
예제 #22
0
  def __init__(self, parent, debug=False):
    super(QGoogleMap, self).__init__(parent)
    if debug :
      QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
      self.setPage(_LoggedPage())

    self.initialized = False
    self.loadFinished.connect(self.onLoadFinished)
    self.page().mainFrame().addToJavaScriptWindowObject("qtWidget", self)
    self.connect(self.page().networkAccessManager(),
                 SIGNAL("sslErrors(QNetworkReply*, const QList<QSslError> & )"),
                 self.__manageSslErrors)
    basePath = os.path.abspath(os.path.dirname(__file__))
    if hasattr(sys, 'frozen'):
      htmlFile = os.path.join(os.path.dirname(sys.executable), "resources", 'maps', 'qgmap.html')
    else:
      htmlFile = os.path.join(basePath, "qgmap.html")
    qurl = QUrl.fromLocalFile(QFileInfo(htmlFile).absoluteFilePath())
    self.load(qurl)
예제 #23
0
    def __init__(self, log,
            confirm_callback=None,
            prompt_callback=None,
            user_agent=USER_AGENT,
            enable_developer_tools=False,
            parent=None):
        QWebPage.__init__(self, parent)

        self.log = log
        self.user_agent = user_agent if user_agent else USER_AGENT
        self.confirm_callback = confirm_callback
        self.prompt_callback = prompt_callback
        self.setForwardUnsupportedContent(True)
        self.unsupportedContent.connect(self.on_unsupported_content)
        settings = self.settings()
        if enable_developer_tools:
            settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        QWebSettings.enablePersistentStorage(os.path.join(config_dir, 'caches',
                'webkit-persistence'))
        QWebSettings.setMaximumPagesInCache(0)
예제 #24
0
 def __init__(self, window):
     QWebView.__init__(self)
     self.window = window
     with open(get_resource_path("scudcloud.js"), "r") as f:
         self.js = f.read()
     # Required by Youtube videos (HTML5 video support only on Qt5)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
     # We don't want Java
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled, False);
     # We don't need History
     QWebSettings.globalSettings().setAttribute(QWebSettings.PrivateBrowsingEnabled, True);
     # Required for copy and paste clipboard integration
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     # Enabling Inspeclet only when --debug=True (requires more CPU usage)
     QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, self.window.debug)
     self.setZoomFactor(self.window.zoom)
     self.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
     self.connect(self, SIGNAL("urlChanged(const QUrl&)"), self.urlChanged)
     self.connect(self, SIGNAL("linkClicked(const QUrl&)"), self.linkClicked)
     self.addActions()
예제 #25
0
파일: browser.py 프로젝트: bjhemens/calibre
    def __init__(self, log,
            confirm_callback=None,
            prompt_callback=None,
            user_agent=USER_AGENT,
            enable_developer_tools=False,
            parent=None):
        QWebPage.__init__(self, parent)

        self.log = log
        self.user_agent = user_agent if user_agent else USER_AGENT
        self.confirm_callback = confirm_callback
        self.prompt_callback = prompt_callback
        self.setForwardUnsupportedContent(True)
        self.unsupportedContent.connect(self.on_unsupported_content)
        settings = self.settings()
        if enable_developer_tools:
            settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        QWebSettings.enablePersistentStorage(os.path.join(cache_dir(),
                'webkit-persistence'))
        QWebSettings.setMaximumPagesInCache(0)
예제 #26
0
파일: server.py 프로젝트: hotbaby/splash
def _set_global_render_settings(js_disable_cross_domain_access, private_mode):
    from PyQt4.QtWebKit import QWebSecurityOrigin, QWebSettings
    if js_disable_cross_domain_access is False:
        # In order to enable cross domain requests it is necessary to add
        # the http and https to the local scheme, this way all the urls are
        # seen as inside the same security origin.
        for scheme in ['http', 'https']:
            QWebSecurityOrigin.addLocalScheme(scheme)

    settings = QWebSettings.globalSettings()
    settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, private_mode)
    settings.setAttribute(QWebSettings.LocalStorageEnabled, not private_mode)
예제 #27
0
파일: qt4.py 프로젝트: LordDan78/core-apps
 def __init__(self):
     self.debug=1
     self.app = QApplication(sys.argv)
     self.desktop= QApplication.desktop()
     self.web = QWebView()
     self.icon = QIcon(QString(ICON))
     QWebSettings.setIconDatabasePath(DATA_DIR) 
     #self.web.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
     
     QObject.connect(self.web, 
                     SIGNAL("titleChanged ( const QString &)"),
                     self.title_changed)
     QObject.connect(self.web, 
                     SIGNAL("iconChanged ()"),
                     self.icon_changed) 
     QObject.connect(self.web.page(), 
                     SIGNAL("windowCloseRequested ()"),
                     self.close_window)
     QObject.connect(self.web.page(), 
                     SIGNAL("geometryChangeRequested ( const QRect)"),
                     self.set_geometry)
 def prepare(self, metaData):
     """
     Public method to prepare the disk cache file.
     
     @param metaData meta data for a URL (QNetworkCacheMetaData)
     @return reference to the IO device (QIODevice)
     """
     if QWebSettings.globalSettings().testAttribute(
             QWebSettings.PrivateBrowsingEnabled):
         return None
     
     return QNetworkDiskCache.prepare(self, metaData)
예제 #29
0
 def __repaint__(self):
     global _progress, f
     if len(Visum.Graphic.Backgrounds.GetAll) != len(Paths["Images"]):
         self.__rebuild_paths__()
     if _progress == 0:
         f = open(filename, "a")
         f.write("Doing repaint...\n")
         f.close()
         QWebSettings.clearMemoryCaches()
         timer = QTimer()
         timer.start(100)
         QObject.connect(timer, SIGNAL("timeout()"),
                         self.__update_progress_bar__)
         Main(self.comboBox.currentIndex(), Visum.Graphic.GetWindow(),
              self.slider.value() / 4.0, self.__get_net_size__())
     Visum.Graphic.Draw()
     self.__update_progress_bar__()
     _progress = 0
     QTimer().singleShot(1500, self.__update_progress_bar__)
     f = open(filename, "a")
     f.write("End of doing repaint.\n")
     f.close()
예제 #30
0
 def reset_browser(self):
     """
     This function clears the history and resets the UI.
     It's called whenever the inactivity filter times out,
     Or when the user clicks the "finished" button when in
     'reset' mode.
     """
     # Clear out the memory cache
     QWebSettings.clearMemoryCaches()
     self.browser_window.history().clear()
     # self.navigation_bar.clear() doesn't do its job,
     #so remove the toolbar first, then rebuild the UI.
     debug("RESET BROWSER")
     if self.event_filter:
         self.event_filter.blockSignals(True)
     if self.screensaver_active is True:
         self.screensaver_active = False
         self.disconnect(self.event_filter, SIGNAL("activity"), self.reset_browser)
     if self.event_filter:
         self.event_filter.blockSignals(False)
     if hasattr(self, "navigation_bar"):
         self.removeToolBar(self.navigation_bar)
     self.build_ui(self.options, self.configuration)
 def _addHistoryEntry(self, itm):
     """
     Protected method to add a history item.
     
     @param itm reference to the history item to add (HistoryEntry)
     """
     globalSettings = QWebSettings.globalSettings()
     if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
         return
     
     self.__history.insert(0, itm)
     self.emit(SIGNAL("entryAdded"), itm)
     if len(self.__history) == 1:
         self.__checkForExpired()
예제 #32
0
 def cookiesForUrl(self, url):
     """
     Public method to get the cookies for a URL.
     
     @param url URL to get cookies for (QUrl)
     @return list of cookies (list of QNetworkCookie)
     """
     if not self.__loaded:
         self.load()
     
     globalSettings = QWebSettings.globalSettings()
     if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
         return []
     
     return QNetworkCookieJar.cookiesForUrl(self, url)
예제 #33
0
 def __init__(self, window):
     QWebView.__init__(self)
     self.window = window
     with open(get_resource_path("scudcloud.js"), "r") as f:
         self.js = f.read()
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, self.window.debug)
     self.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
     self.connect(self, SIGNAL("urlChanged(const QUrl&)"), self.urlChanged)
     self.connect(self, SIGNAL("linkClicked(const QUrl&)"), self.linkClicked)
     self.addActions()
 def __searchNow(self):
     """
     Private slot to perform the web search.
     """
     searchText = self.__searchEdit.text()
     if searchText.isEmpty():
         return
     
     globalSettings = QWebSettings.globalSettings()
     if not globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
         self.__recentSearches.removeAll(searchText)
         self.__recentSearches.prepend(searchText)
         if len(self.__recentSearches) > self.__maxSavedSearches:
             self.__recentSearches = self.__recentSearches[:self.__maxSavedSearches]
         self.__setupCompleterMenu()
     
     url = self.__openSearchManager.currentEngine().searchUrl(searchText)
     self.emit(SIGNAL("search"), url)
예제 #35
0
파일: chatwidget.py 프로젝트: ov1d1u/cyuf
    def __init__(self, parent, cybuddy):
        super(ChatWidget, self).__init__()
        self.widget = uic.loadUi('ui/chatwidget.ui')
        self.parent_window = parent
        self.app = parent.app
        self.cybuddy = cybuddy
        self.typingTimer = None
        self.is_ready = False
        self.queue = []
        self.accepted_fts = []  # accepted file transfers
        self.transfer_tasks = {}
        self.webcam_viewer = None

        defaultSettings = QWebSettings.globalSettings()
        defaultSettings.setAttribute(QWebSettings.JavascriptEnabled, True)
        defaultSettings.setAttribute(QWebSettings.PluginsEnabled, True)
        defaultSettings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)

        ym.register_callback(cb.EMUSSA_CALLBACK_TYPING_NOTIFY, self._typing)
        self.widget.textEdit.keyPressEvent = self._writing_message
        self.widget.sendButton.clicked.connect(self._send_message)
        self.widget.filetransfer_btn.clicked.connect(self._send_file)
        self.widget.myAvatar.setPixmap(self.app.me.avatar.image)

        self.widget.messagesView.setUrl(QUrl('ui/resources/html/chat/index.html'))
        self.widget.messagesView.loadFinished.connect(self._document_ready)
        self.widget.messagesView.linkClicked.connect(self._link_clicked)
        self.widget.messagesView.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
        self.cybuddy.update.connect(self._update_buddy)
        self.cybuddy.update_status.connect(self._update_status)
        self.cybuddy.update_avatar.connect(self._update_avatar)
        self.widget.addUserBtn.clicked.connect(self.add_buddy)

        self._update_buddy()
        self._update_status()
        self._update_avatar()
        if cybuddy.yahoo_id in self.app.buddylist.buddy_items:
            self.widget.addUserBtn.setHidden(True)
            self.widget.ignoreUserBtn.setHidden(True)
예제 #36
0
 def webSettings(self):
     self.cookiesjar = PersistentCookieJar(self)
     self.zoom = self.readZoom()
     # We don't want Flash (it causes a lot of trouble in some distros)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,
                                                False)
     # We don't need Java
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled,
                                                False)
     # Enabling Local Storage (now required by Slack)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.LocalStorageEnabled, True)
     # We need browsing history (required to not limit LocalStorage)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.PrivateBrowsingEnabled, False)
     # Enabling Cache
     self.diskCache = QNetworkDiskCache(self)
     self.diskCache.setCacheDirectory(self.settings_path)
     # Required for copy and paste clipboard integration
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.JavascriptCanAccessClipboard, True)
     # Enabling Inspeclet only when --debug=True (requires more CPU usage)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.DeveloperExtrasEnabled, self.debug)
예제 #37
0
from PyQt4.QtNetwork import QNetworkRequest
from twisted.internet import defer

qWebSettings = {
    QWebSettings.JavascriptEnabled : True,
    QWebSettings.PluginsEnabled : False,
    QWebSettings.PrivateBrowsingEnabled : True,
    QWebSettings.LocalStorageEnabled : True,
    #QWebSettings.JavascriptCanOpenWindows : True,
    #QWebSettings.FrameFlatteningEnabled :  True,
    #QWebSettings.DeveloperExtrasEnabled :  True,
}


for key, value in qWebSettings.iteritems():
    QWebSettings.globalSettings().setAttribute(key, value)

class RenderError(Exception):
    pass


class HtmlRender(QWebPage):

    def __init__(self, url, baseurl=None):
        QWebPage.__init__(self)  
        self.url = url
        self.webview = QWebView()
        self.webview.setPage(self)
        #self.webview.show()
  
        self.deferred = defer.Deferred(self.cancel)
예제 #38
0
if __name__ == "__main__":
    app = QApplication(["AutoZone Taleo"])

    grid = QGridLayout()
    browser = QWebView()
    urlBar = UrlBar(browser)
    requestsTable = RequestsTable()  # Debug Requests

    networkManager = NetworkManager(requestsTable)
    page = QWebPage()
    page.setNetworkAccessManager(networkManager)
    browser.setPage(page)
    browser.load(QUrl(""))  # Defaul URL
    #browser.load(QUrl(""))
    QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,
                                               True)  # Enable Flash
    jsEval = JavaScriptEvaluator(page)  # Allow JS Rendering
    actionBox = ActionInputBox(page)

    grid.addWidget(urlBar, 1, 0)
    #    grid.addWidget(actionBox, 2, 0)
    grid.addWidget(browser, 3, 0)
    #   grid.addWidget(requestsTable, 4, 0)  # good for debugging request data
    #    grid.addWidget(jsEval, 5, 0)

    mainFrame = QWidget()
    mainFrame.setLayout(grid)
    mainFrame.show()

    sys.exit(app.exec_())
예제 #39
0
def mainPyQt4Youtube():
    # 必要なモジュールのimport
    from PyQt4.QtCore import QUrl
    from PyQt4.QtGui import QApplication
    from PyQt4.QtWebKit import QWebView, QWebSettings
    from PyQt4.QtNetwork import QNetworkProxyFactory

    url = 'https://www.youtube.com/?hl=ja&gl=JP'

    app = QApplication(sys.argv)

    # Youtube動画を読み込むための設定
    QNetworkProxyFactory.setUseSystemConfiguration(True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.DnsPrefetchEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.AutoLoadImages, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.LocalStorageEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.PrivateBrowsingEnabled, True)
    QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)

    # QWebViewによるWebページ表示
    browser = QWebView()
    browser.load(QUrl(url))
    browser.setEnabled(True)
    browser.show()
    sys.exit(app.exec_())
예제 #40
0
파일: qtutils.py 프로젝트: greshem/splash
def clear_caches():
    QWebSettings.clearMemoryCaches()
예제 #41
0
파일: app.py 프로젝트: kitsu/PyQt4_CLJS
"""Minimal Python container app."""
import sys, os
from PyQt4 import QtGui, QtCore
from PyQt4.QtWebKit import QWebView, QWebSettings, QWebInspector
qt = QtCore.Qt

import html

# Enable developer tools inspector (right click menu)
settings = QWebSettings.globalSettings()
settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)

def get_resource_path(resource):
    """Resolves the app path when run as a script or frozen."""
    if hasattr(sys, '_MEIPASS'):
        path = sys._MEIPASS
    else:
        path = os.path.dirname(__file__)
    return os.path.join(path, resource)

class MainWindow(QtGui.QMainWindow):
    """Main application window."""

    def __init__(self, headers, data):
        QtGui.QMainWindow.__init__(self)
        self.setWindowTitle("PyQt Cljs Testbed")
        self.setMaximumWidth(500)

        self.table = TableWidget(headers, data)
        self.setCentralWidget(self.table)
예제 #42
0
	def __init__(self, urls, parent=None):
		KParts.MainWindow.__init__(self, parent)
		
		QWebSettings.globalSettings().setAttribute(
			QWebSettings.DeveloperExtrasEnabled, True)
		
		self.setWindowIcon(KIcon('text-editor'))
		
		self.kate = KTextEditor.EditorChooser.editor()
		self.editor = self.kate.createDocument(self).createView(self)
		doc = self.editor.document()
		self.editor.setContextMenu(self.editor.defaultContextMenu())
		
		sizegrip = create_grip(self.editor)
		sizegrip.show() #TODO: only show on windowstate change
		
		self.renderer = Renderer(self)
		
		@doc.textChanged.connect
		def _start_markdown(doc=None, old_range=None, new_range=None):
			"""Runs the renderer if it’s not currently rendering"""
			if not self.renderer.isRunning():
				self.renderer.start()
		
		@self.renderer.finished.connect
		def _stop_markdown():
			"""
			Replaces the preview HTML with the newly rendered one
			and restores the scroll position
			"""
			url = self.editor.document().url().resolved(QUrl('.'))
			self.preview.setHtml(self.renderer.html, url) #baseurl für extenes zeug
			self.preview.page().mainFrame().setScrollPosition(self.renderer.scrollpos)
		
		self.editor.document().documentNameChanged.connect(self.refresh_document)
		
		self.guiFactory().addClient(self.editor)
		self.setCentralWidget(self.editor)
		
		self.toolbar = KToolBar(i18n('Markdowner Toolbar'), self)
		self.toolbar.setWindowTitle(self.toolbar.objectName())
		self.preview_button = self.toolbar.addAction(KIcon('document-preview'), i18n('Show Preview'))
		self.preview_button.setCheckable(True)
		
		self.preview = QWebView()
		self.preview.settings().setUserStyleSheetUrl(base64css())
		self.preview.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
		self.preview.linkClicked.connect(self.intercept_link)
		
		with self.setup_dock(self.preview, i18n('Preview'), Qt.RightDockWidgetArea) as dock:
			page = self.preview.page()
			palette = page.palette()
			palette.setBrush(QPalette.Base, Qt.transparent)
			page.setPalette(palette)
			
			self.preview.setAttribute(Qt.WA_TranslucentBackground)
			self.preview.setAttribute(Qt.WA_OpaquePaintEvent, False)
			
			dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
			dock.visibilityChanged.connect(self.preview_button.setChecked)
			self.preview_button.triggered.connect(dock.setVisible)
		
		inspector = QWebInspector()
		with self.setup_dock(inspector, i18n('Inspector'), Qt.BottomDockWidgetArea) as dock:
			inspector.setPage(self.preview.page())
			dock.hide()
			inspect_action = self.preview.page().action(QWebPage.InspectElement)
			inspect_action.triggered.connect(dock.show)
		
		if len(urls) != 0:
			self.editor.document().openUrl(urls[0])
		
		#TODO: spellcheck
		self.setAutoSaveSettings()
		self.kate.readConfig(self.autoSaveConfigGroup().config())
예제 #43
0
        return (self._normalize_url(url1) == self._normalize_url(url2))

    def _normalize_url(self, url):
        return urltools.normalize(url)

    def _handle_mouse_move(self, pos):
        hit_result = self._ui.web_view.page().mainFrame().hitTestContent(pos)

        if not hit_result.isNull():
            element = hit_result.enclosingBlockElement()

            if not element.isNull():
                self.highlight_element(element)

            else:
                self.highlight_element(None)

        else:
            self.highlight_element(None)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    QWebSettings.globalSettings() \
            .setAttribute(QWebSettings.DeveloperExtrasEnabled, True)

    main = Browser()
    main.show()

    sys.exit(app.exec_())
예제 #44
0
 def setCookiesFromUrl(self, cookieList, url):
     """
     Public method to set cookies for a URL.
     
     @param cookieList list of cookies to set (list of QNetworkCookie)
     @param url url to set cookies for (QUrl)
     @return flag indicating cookies were set (boolean)
     """
     if not self.__loaded:
         self.load()
     
     globalSettings = QWebSettings.globalSettings()
     if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
         return False
     
     host = url.host()
     eBlock = self.__isOnDomainList(self.__exceptionsBlock, host)
     eAllow = not eBlock and \
              self.__isOnDomainList(self.__exceptionsAllow, host)
     eAllowSession = not eBlock and \
                     not eAllow and \
                     self.__isOnDomainList(self.__exceptionsAllowForSession, host)
     
     addedCookies = False
     acceptInitially = self.__acceptCookies != self.AcceptNever
     if (acceptInitially and not eBlock) or \
        (not acceptInitially and (eAllow or eAllowSession)):
         # url domain == cookie domain
         soon = QDateTime.currentDateTime()
         soon = soon.addDays(90)
         for cookie in cookieList:
             lst = []
             if not (self.__filterTrackingCookies and \
                     cookie.name().startsWith("__utm")):
                 if eAllowSession:
                     cookie.setExpirationDate(QDateTime())
                 if self.__keepCookies == self.KeepUntilTimeLimit and \
                    not cookie.isSessionCookie and \
                    cookie.expirationDate() > soon:
                     cookie.setExpirationDate(soon)
                 lst.append(cookie)
                 if QNetworkCookieJar.setCookiesFromUrl(self, lst, url):
                     addedCookies = True
                 elif self.__acceptCookies == self.AcceptAlways:
                     # force it in if wanted
                     cookies = self.allCookies()
                     for ocookie in cookies[:]:
                         # does the cookie exist already?
                         if cookie.name() == ocookie.name() and \
                            cookie.domain() == ocookie.domain() and \
                            cookie.path() == ocookie.path():
                             # found a match
                             cookies.remove(ocookie)
                     
                     cookies.append(cookie)
                     self.setAllCookies(cookies)
                     addedCookies = True
     
     if addedCookies:
         self.__saveTimer.changeOccurred()
         self.emit(SIGNAL("cookiesChanged()"))
     
     return addedCookies
예제 #45
0
 def initUI(self):
     self.centralWidget = QtGui.QWidget(self)
     '''
     Address Bar
     '''
     self.addbar = QtGui.QLineEdit(self)
     self.addbar.setGeometry(200, 16, 840, 35)
     self.addbar.setStyleSheet("font-size:21px")
     self.addbar.setFont(QtGui.QFont("Times New Roman"))
     self.addbar.returnPressed.connect(self.goClicked)
     self.addbar.cursorPositionAt(QtCore.QPoint(0, 0))
     self.addbar.setFocus()
     self.addbar.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding, True)
     '''
     Progress Bar
     '''
     self.progressbar = QtGui.QProgressBar(self)
     self.progressbar.setMaximumWidth(100)
     '''
     Web Page Action setting
     '''
     self.web = QWebView(loadProgress=self.progressbar.setValue,
                         loadFinished=self.progressbar.hide,
                         loadStarted=self.progressbar.show,
                         titleChanged=self.setWindowTitle)
     self.web.setGeometry(300, 100, 1099, 768)
     self.web.urlChanged.connect(self.goUrlChanged)
     self.web.page().linkHovered.connect(self.LinkHovered)
     self.web.loadStarted.connect(self.pageLoadStarted)
     self.web.loadFinished.connect(self.pageLoadFinished)
     '''
     Back, Forward, Reload and Stop Button
     '''
     self.toolbar = QtGui.QToolBar(self)
     self.toolbar.addAction(self.web.pageAction(QWebPage.Back))
     self.toolbar.addAction(self.web.pageAction(QWebPage.Forward))
     self.toolbar.addAction(self.web.pageAction(QWebPage.Reload))
     self.toolbar.addAction(self.web.pageAction(QWebPage.Stop))
     '''
     Global Web Page Setting
     '''
     self.setting = QWebSettings.globalSettings()
     self.setting.setAttribute(QWebSettings.PluginsEnabled, True)
     self.setting.setAttribute(QWebSettings.AutoLoadImages, True)
     self.setting.setAttribute(QWebSettings.JavaEnabled, True)
     self.setting.setAttribute(QWebSettings.DnsPrefetchEnabled, True)
     self.setting.setAttribute(QWebSettings.WebGLEnabled, True)
     self.setting.setAttribute(QWebSettings.LocalStorageEnabled, True)
     self.setting.setAttribute(QWebSettings.JavascriptEnabled, True)
     self.setting.setAttribute(QWebSettings.JavascriptCanOpenWindows, True)
     self.setting.setAttribute(
         QWebSettings.OfflineWebApplicationCacheEnabled, True)
     self.setting.setAttribute(QWebSettings.ZoomTextOnly, True)
     self.setting.setAttribute(QWebSettings.AcceleratedCompositingEnabled,
                               True)
     self.setting.setAttribute(QWebSettings.SpatialNavigationEnabled, True)
     self.setting.setAttribute(QWebSettings.LinksIncludedInFocusChain, True)
     self.setting.setAttribute(QWebSettings.LocalContentCanAccessFileUrls,
                               True)
     '''
     Main Window Setting
     '''
     self.setGeometry(300, 100, 1099, 768)
     self.setWindowIcon(QtGui.QIcon(""))
     self.setStyleSheet("background-color:")
     self.status = self.statusBar()
     self.status.setSizeGripEnabled(False)
     self.status.addPermanentWidget(self.progressbar)
     self.status.hide()
     self.setCentralWidget(self.centralWidget)
     grid = QtGui.QGridLayout()
     grid.addWidget(self.toolbar, 0, 0, 1, 1)
     grid.addWidget(self.addbar, 0, 1, 1, 1)
     grid.addWidget(self.web, 2, 0, 1, 6)
     self.centralWidget.setLayout(grid)
     '''
     Use system Proxy to load page
     '''
     QNetworkProxyFactory.setUseSystemConfiguration(True)
예제 #46
0
 def webSettings(self):
     self.cookiesjar = PersistentCookieJar(self)
     self.zoom = self.readZoom()
     # Required by Youtube videos (HTML5 video support only on Qt5)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, self.plugins)
     # We don't want Java
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled, False)
     # Enabling Local Storage (now required by Slack)
     QWebSettings.globalSettings().setAttribute(QWebSettings.LocalStorageEnabled, True)
     # We need browsing history (required to not limit LocalStorage)
     QWebSettings.globalSettings().setAttribute(QWebSettings.PrivateBrowsingEnabled, False)
     # Enabling Cache
     self.diskCache = QNetworkDiskCache(self)
     self.diskCache.setCacheDirectory(self.settings_path)
     # Required for copy and paste clipboard integration
     QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
     # Enabling Inspeclet only when --debug=True (requires more CPU usage)
     QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, self.debug)
예제 #47
0
from PyQt4.QtGui import QApplication, QWidget, QVBoxLayout
from PyQt4.QtWebKit import QWebView, QWebSettings
from PyQt4.QtCore import *

from ui_youtube import Ui_MainWindow
import pafy
import sys

QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)



url = 'https://www.youtube.com/watch?v=IdS3bWxG2a0&list=PLpclVninnGnvmdEPiApiIzt7Fe6GtRq5J'
video = pafy.new(url)

best = video.getbest()
bestvid = best.url
print bestvid

title = video.title

app = QApplication(sys.argv)

win = QWidget()
win.setWindowTitle(title)

layout = QVBoxLayout()
win.setLayout(layout)

# Create and fill a QWebView
view = QWebView()
예제 #48
0
import sys
import json
import ghost

try:
    from PyQt4.QtWebKit import QWebSettings
except ImportError:
    from PySide.QtWebKit import QWebSettings
    

if __name__ == '__main__':
    url = sys.argv[1]
    _ghost = ghost.Ghost(wait_timeout=60)

    QWebSettings.globalSettings().setAttribute(QWebSettings.AutoLoadImages, False)
    QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, False)
    page, resources = _ghost.open(url)
    print json.dumps({'url': url, 'headers': page.headers, 'html': unicode(_ghost.main_frame.toHtml())})

    def initAttributes(self):
        self.showMaximized()

        # Initialize the play list.
        self.playlist = []  # A list of links to the file to play.
        self.playlistTmp = [
        ]  # A temporary play list, use to shuffle play list.
        self.repeat = False

        # A timer showing the playing time.
        self.tmrTimer = QtCore.QTimer(self)
        self.tmrTimer.setInterval(
            250)  # This will emit a signal every 1/4 second
        self.tmrTimer.timeout.connect(self.on_tmrTimer_timeout)
        self.tmrTimer.start()

        #Volume control.
        self.sldVolumeSlider.setAudioOutput(self.vdpVideo.audioOutput())
        self.sldSeekSlider.setMediaObject(self.vdpVideo.mediaObject())

        # initialize the current mouse position and time.
        self.mousePos0 = QtGui.QCursor.pos()
        self.mouseT0 = QtCore.QTime.currentTime()

        # The dock widget: show or hide?
        self.dckShown = True
        self.lineEditSearch.setFocus()

        # A list of uploading video.
        self.uploadingList = {}
        self.uploadDialog = UploadDialog(self)
        self.downloadingList = []

        self.feed = None  # The current feed, displayed on the search result page.
        self.entry = None  # The current entry, playing.
        self.currentDirectLink = ""  # Direct link to the current video.
        self.currentVideo = None

        # The dock widget: show or hide?
        self.dckShown = True
        self.lineEditSearch.setFocus()

        # Search thread.
        self.threadPool = []
        self.threadType = [
        ]  # Store the function names that run as threads in self.threadPool.

        # Search box: Enter pressed.
        self.lineEditSearch.returnPressed.connect(
            self.on_btnSearchVideo_clicked)

        # The page showing search result.
        # Enable the flash plugin
        QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,
                                                   True)
        self.videoList.page().setLinkDelegationPolicy(
            QWebPage.DelegateAllLinks)
        self.videoList.connect(self.videoList,
                               QtCore.SIGNAL('linkClicked(const QUrl&)'),
                               self.linkClicked)

        # A seperate frame for login.
        self.logged_in = False
        self.yt_service = None

        # Advance search options
        self.advancedSearchDialog = SearchOptionDialog(parent=self)
        self.connect(self.advancedSearchDialog.optionDialogSearchTerm,
                     QtCore.SIGNAL("returnPressed()"), self.advancedSearch)
        self.connect(self.advancedSearchDialog.lineeditUserFeed,
                     QtCore.SIGNAL("returnPressed()"),
                     self.on_lineeditUserFeed_returnPressed)

        self.connect(self.advancedSearchDialog.btnTrending,
                     QtCore.SIGNAL("clicked()"), self.on_btnTrending_clicked)
        self.connect(self.advancedSearchDialog.btnTopRated,
                     QtCore.SIGNAL("clicked()"), self.on_btnTopRated_clicked)
        self.connect(self.advancedSearchDialog.btnRecentlyFeatured,
                     QtCore.SIGNAL("clicked()"),
                     self.on_btnRecentlyFeatured_clicked)
        self.connect(self.advancedSearchDialog.btnTopFavorites,
                     QtCore.SIGNAL("clicked()"),
                     self.on_btnTopFavorites_clicked)
        self.connect(self.advancedSearchDialog.btnMostShared,
                     QtCore.SIGNAL("clicked()"), self.on_btnMostShared_clicked)
        self.connect(self.advancedSearchDialog.btnMostResponded,
                     QtCore.SIGNAL("clicked()"),
                     self.on_btnMostResponded_clicked)
        self.connect(self.advancedSearchDialog.btnMostDiscussed,
                     QtCore.SIGNAL("clicked()"),
                     self.on_btnMostDiscussed_clicked)
        self.connect(self.advancedSearchDialog.btnMostRecent,
                     QtCore.SIGNAL("clicked()"), self.on_btnMostRecent_clicked)
        self.connect(self.advancedSearchDialog.btnMostPopular,
                     QtCore.SIGNAL("clicked()"),
                     self.on_btnMostPopular_clicked)

        # Menu bar actions.
        self.action_Save_playlist.triggered.connect(
            self.on_action_Save_playlist)
        self.action_Load_playlist.triggered.connect(
            self.on_action_Load_playlist)
        self.action_Open_download_folder.triggered.connect(
            self.on_action_Open_download_folder)
        self.action_Quit.triggered.connect(self.on_action_Quit)
        self.action_Guide.triggered.connect(self.on_action_Guide)
        self.action_About.triggered.connect(self.on_action_About)
        self.actionS_earch_option.triggered.connect(
            self.on_actionS_earch_option)

        self.vdpVideo.finished.connect(self.on_btnNext_clicked)

        self.btnLogout.setEnabled(False)

        self.connect(self, QtCore.SIGNAL("IWantToBeNoticed(QString)"),
                     self.showMessage)
예제 #50
0
파일: qtutils.py 프로젝트: Eavie/splash-1
def clear_caches():
    QWebSettings.clearMemoryCaches()
예제 #51
0
 def __init__(self, teamName, safetyDict=None, iface=None, parent=None):
     QDockWidget.__init__(self, parent)
     # init internal safety
     self.currentSafety = safetyDict
     self.teamName = teamName
     self.iface = iface
     # init gui
     self.setupUi()
     # set webView setting
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.JavascriptEnabled, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.DeveloperExtrasEnabled, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.JavascriptCanAccessClipboard, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.SpatialNavigationEnabled, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.PrintElementBackgrounds, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.OfflineStorageDatabaseEnabled, True)
     QWebSettings.globalSettings().setAttribute(
         QWebSettings.LocalStorageEnabled, True)
     QWebSettings.globalSettings().globalSettings().enablePersistentStorage(
         "/tmp/")
     # relod connection if erased e.g for reloading
     self.webView.page().mainFrame().javaScriptWindowObjectCleared.connect(
         self.addSafetyFormBridge)
     self.webView.page().mainFrame().loadFinished.connect(
         self.initSafetyValues)
     # Python to JS bridge definition and signal connection
     self.safetyFormBridge = SafetyFormBridge(self)
     self.safetyFormBridge.saveSafetyDone.connect(self.notifySafetyModified)