def setup_websettings(self): self.webview.props.full_content_zoom = True self.websettings = WebKit.WebSettings() self.websettings.props.html5_local_storage_database_path = \ get_or_create_directory(op.join( GLib.get_user_cache_dir(), 'fogger/%s/db' % self.app.uuid)) self.websettings.props.enable_accelerated_compositing = True self.websettings.props.enable_dns_prefetching = True self.websettings.props.enable_fullscreen = True self.websettings.props.enable_offline_web_application_cache = True self.websettings.props.javascript_can_open_windows_automatically = True self.websettings.props.enable_html5_database = True self.websettings.props.enable_html5_local_storage = True self.websettings.props.enable_hyperlink_auditing = False self.websettings.props.enable_file_access_from_file_uris = True self.websettings.props.enable_universal_access_from_file_uris = True self.websettings.props.enable_site_specific_quirks = True self.websettings.props.enable_spell_checking = True self.websettings.props.enable_webaudio = True self.websettings.props.enable_webgl = True self.websettings.props.enable_page_cache = True self.websettings.props.enable_plugins = True if logger.level == logging.DEBUG: self.websettings.props.enable_developer_extras = True self.webview.set_settings(self.websettings)
def init_gui(self): self.vbox = Gtk.VBox() #---- set up webkit pane -----# self.webview = WebKit.WebView() self.webview.connect("navigation-requested", self.navigation_request_cb) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.set_shadow_type(Gtk.ShadowType.NONE) scroll.add(self.webview) # set up webkit settings to match gtk font settings self.websettings = WebKit.WebSettings() self.webview.set_settings(self.websettings) self.apply_font_settings() self.webview.connect("style-set", self.style_set_cb) #---- pack everything into side pane ----# self.buttons = Gtk.HBox(spacing=3) self.buttons.set_margin_start(6) self.buttons.set_margin_end(6) self.vbox.pack_start(self.buttons, False, True, 6) self.vbox.pack_start(scroll, True, True, 0) self.vbox.show_all() self.vbox.set_size_request(200, -1) self.shell.add_widget(self.vbox, RB.ShellUILocation.RIGHT_SIDEBAR, True, True)
def setup_websettings(self): self.webview.props.full_content_zoom = True self.websettings = WebKit.WebSettings() self.websettings.props.html5_local_storage_database_path = \ get_or_create_directory(op.join( GLib.get_user_cache_dir(), 'fogger/%s/db' % self.app.uuid)) self.websettings.props.enable_accelerated_compositing = True self.websettings.props.enable_dns_prefetching = True self.websettings.props.enable_fullscreen = True self.websettings.props.enable_offline_web_application_cache = True self.websettings.props.javascript_can_open_windows_automatically = True self.websettings.props.enable_html5_database = True self.websettings.props.enable_html5_local_storage = True self.websettings.props.enable_hyperlink_auditing = False self.websettings.props.enable_file_access_from_file_uris = True self.websettings.props.enable_universal_access_from_file_uris = True self.websettings.props.enable_site_specific_quirks = True self.websettings.props.enable_spell_checking = True self.websettings.props.enable_webaudio = True self.websettings.props.enable_webgl = True self.websettings.props.enable_page_cache = True self.websettings.props.enable_plugins = True if logger.level == logging.DEBUG: self.websettings.props.enable_developer_extras = True # Change user-agent if USERAGENT environment variable is present. # e.g. add to launcher : # Exec=/usr/bin/env USERAGENT="iPad" /opt/extras.ubuntu.com/fogger/bin/fogger uuid useragent = os.getenv('USERAGENT') if useragent: self.websettings.set_property('user-agent', useragent) self.webview.set_settings(self.websettings)
def init_view(self): settings = WebKit.WebSettings() for setting in self.webkit_settings: settings.set_property(*setting) dimensions = self.load_config() self.view = WebKit.WebView() self.view.set_settings(settings) self.sw = Gtk.ScrolledWindow() self.sw.add(self.view) self.win = Gtk.Window() self.win.set_size_request(self.min_width, self.min_height) self.win.resize(dimensions['w'], dimensions['h']) self.win.move(dimensions['x'], dimensions['y']) self.win.add(self.sw) self.win.set_title("Wasabi Twitter") self.win.connect("destroy", Gtk.main_quit) self.win.connect("configure-event", self.window_resized) self.win.show_all() #self.view.connect("navigation-requested", self.on_nav_req) self.view.connect("new-window-policy-decision-requested", self.open_external_link) self.view.connect("navigation-policy-decision-requested", self.open_link) GLib.timeout_add_seconds(self.refresh_time, self.fetch_tweets, self.view, self.sw) self.view.load_string(self.full_content, "text/html", "UTF-8", "wasabi://home") Gtk.main()
def __init__(self, application, **kwargs): #print(self.game_list) self.lutris = application window = Gtk.Window() window.set_size_request(800, 600) # webkit (see use of webkit, cause this use jdk with alot dependencies) webView = WebKit.WebView() webView.connect("load-finished", self.on_load_finished) webView.connect("navigation-requested", self.on_navigation_requested) webView.open('' + os.path.join(datapath.get(), 'xmb', 'index.html')) settings = WebKit.WebSettings() settings.set_property('enable-default-context-menu', False) settings.set_property('enable-file-access-from-file-uris', True) webView.set_settings(settings) # to close window correct window.connect("destroy", self.on_quit) # scroll scrolls = Gtk.ScrolledWindow() scrolls.add(webView) # add webkit and start window #window.fullscreen() window.add(scrolls) window.show_all() Gtk.main()
def on_styles_button_press_event(self, widget): settings = WebKit.WebSettings() styles_img = self.styles_img.get_stock() if styles_img.stock_id == "gtk-yes": self.styles_img.set_from_stock("gtk-no", 4) self.styles = "OFF" settings.set_property('enable-frame-flattening', 'True') settings.set_property('enable-fullscreen', 'True') settings.set_property('enable-html5-database', 'True') settings.set_property('enable-html5-local-storage', 'True') settings.set_property('enable-hyperlink-auditing', 'True') settings.set_property('media-playback-allows-inline', 'True') settings.set_property('media-playback-requires-user-gesture', 'True') settings.set_property('auto-load-images', 'True') settings.set_property('enable-caret-browsing', 'True') settings.set_property('enable-site-specific-quirks', 'True') settings.set_property('enable-smooth-scrolling', 'True') else: self.styles_img.set_from_stock("gtk-yes", 4) self.styles = "ON" settings.set_property('enable-frame-flattening', 'False') settings.set_property('enable-fullscreen', 'False') settings.set_property('enable-html5-database', 'False') settings.set_property('enable-html5-local-storage', 'False') settings.set_property('enable-hyperlink-auditing', 'False') settings.set_property('media-playback-allows-inline', 'False') settings.set_property('media-playback-requires-user-gesture', 'False') settings.set_property('auto-load-images', 'False') settings.set_property('enable-caret-browsing', 'False') settings.set_property('enable-site-specific-quirks', 'False') settings.set_property('enable-smooth-scrolling', 'False') self.webview.set_settings(settings) self.refresh_website()
def __init__(self): # Create window self.window = gtk.Window() self.window.set_icon_from_file(settings['icon']) self.window.connect('destroy', lambda w: gtk.main_quit()) self.window.set_default_size(settings['window_width'], settings['window_height']) # Create navigation bar self.nav = gtk.HBox() self.back = gtk.ToolButton(gtk.STOCK_GO_BACK) self.forward = gtk.ToolButton(gtk.STOCK_GO_FORWARD) self.refresh = gtk.ToolButton(gtk.STOCK_REFRESH) self.address_bar = gtk.Entry() self.back.connect('clicked', self.go_back) self.forward.connect('clicked', self.go_forward) self.refresh.connect('clicked', self.refresh_page) self.address_bar.connect('activate', self.load_page) # Buttons and url-field self.nav.pack_start(self.back, expand=False, fill=False, padding=0) self.nav.pack_start(self.forward, expand=False, fill=False, padding=0) self.nav.pack_start(self.refresh, expand=False, fill=False, padding=0) self.nav.pack_start(self.address_bar, expand=True, fill=True, padding=5) # Create view for webpage self.view = gtk.ScrolledWindow() self.wv = webkit.WebView() # Webview settings wvs = webkit.WebSettings() wvs.set_property('user-agent', settings['ua']) self.wv.set_settings(wvs) self.wv.open(settings['start_url']) self.wv.connect('title-changed', self.change_title) self.wv.connect('load-committed', self.change_url) self.view.add(self.wv) # Add everything and initialize self.container = gtk.VBox() if settings['enable_nav'] == "true": self.container.pack_start(self.nav, expand=False, fill=False, padding=0) self.container.pack_start(self.view, expand=True, fill=True, padding=0) self.window.add(self.container) self.window.show_all() gtk.main()
def on_dns_button_press_event(self, widget): settings = WebKit.WebSettings() dns_img = self.dns_img.get_stock() if dns_img.stock_id == "gtk-yes": self.dns_img.set_from_stock("gtk-no", 4) self.dns_prefetching = "OFF" settings.set_property('enable-dns-prefetching', 'False') else: self.dns_img.set_from_stock("gtk-yes", 4) self.dns_prefetching = "ON" settings.set_property('enable-dns-prefetching', 'True') self.webview.set_settings(settings)
def __init__(self): Gtk.ScrolledWindow.__init__(self) self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.webview = WebKit.WebView() self.webview.set_settings(WebKit.WebSettings()) self.webview.set_zoom_level(0.8) self.add(self.webview) self.show_all() self.webview.connect("title-changed", self.__title_changed)
def __init__(self, coding='utf-8'): Gtk.VBox.__init__(self, False) self.coding = coding self.uri = 'file://' + os.path.dirname(__file__) self.settings = WebKit.WebSettings() self.settings.set_property('enable-default-context-menu', False) self.settings.set_property('enable-developer-extras', True) self.settings.set_property('enable-plugins', True) self.settings.set_property('enable-java_applet', False) self.settings.set_property('enable-page-cache', True) self.settings.set_property('enable-file-access-from-file-uris', True) self.settings.set_property('enable-offline-web-application_cache', False) self.settings.set_property('enable-html5-local-storage', False) self.settings.set_property('enable-html5-database', False) self.settings.set_property('enable-xss-auditor', False) try: self.settings.set_property('enable-dns-prefetching', False) except TypeError: pass self.settings.set_property('enable-caret-browsing', False) self.settings.set_property('resizable-text-areas', False) self.settings.web_security_enabled = False try: self.settings.set_property('enable-accelerated-compositing', True) except TypeError: print "No support for accelerated compositing" self.view = WebKit.WebView() self.view.set_settings(self.settings) #Added new properties in this way cause 'from' is recognized as a key word self.view.get_settings().set_property( 'enable-universal-access-from-file-uris', True) self.view.connect('load-started', self.__started) self.view.connect('load-finished', self.__finished) self.view.connect('console-message', self.__console_message) self.view.connect('navigation-policy-decision-requested', self.__process) self.view.connect('new-window-policy-decision-requested', self.__on_new_window_requested) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER) scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.view) self.pack_start(scroll, True, True, 0)
def on_webaudio_button_press_event(self, widget): settings = WebKit.WebSettings() webaudio_img = self.webaudio_img.get_stock() if webaudio_img.stock_id == "gtk-yes": self.webaudio_img.set_from_stock("gtk-no", 4) self.webaudio = "OFF" settings.set_property("enable-webaudio", 'False') else: self.webaudio_img.set_from_stock("gtk-yes", 4) self.webaudio = "ON" settings.set_property("enable-webaudio", 'True') self.webview.set_settings(settings) self.refresh_website()
def __init__(self, config): self.config = config self.user_agent = WebKit.WebSettings.get_user_agent( WebKit.WebSettings()) if self.config["proxy"] != None: self.proxies = { 'http': self.config["proxy"], 'https': self.config["proxy"] } self.proxy = urllib2.ProxyHandler(self.proxies) else: self.proxy = None self.urls = []
def start_inspector(self): view = self.webview self.webview = WebKit.WebView() settings = WebKit.WebSettings() settings.set_property('enable-developer-extras', True) view.set_settings(settings) self.inspector = view.get_inspector() self.inspector.connect("inspect-web-view", self.inspect) self.webview = WebKit.WebView() self.scrolledwindowinspector.add(self.webview) self.scrolledwindowinspector.show() self.source_code_text_view.hide() self.main_view_box_foot.show()
def on_xss_button_press_event(self, widget): settings = WebKit.WebSettings() xss_img = self.xss_img.get_stock() if xss_img.stock_id == "gtk-yes": self.xss_img.set_from_stock("gtk-no", 4) self.xss = "OFF" settings.set_property('enable-xss-auditor', 'False') else: self.xss_img.set_from_stock("gtk-yes", 4) self.xss = "ON" settings.set_property('enable-xss-auditor', 'True') self.webview.set_settings(settings) self.refresh_website()
def on_logs_img_button_press_event(self, widget): settings = WebKit.WebSettings() logs_img = self.logs_img.get_stock() if logs_img.stock_id == "gtk-no": self.logs_img.set_from_stock("gtk-yes", 4) self.logs_mode = "OFF" # set logging mode to: OFF settings.set_property('enable-private-browsing', 'True') self.main_view_box_left.hide() else: self.logs_img.set_from_stock("gtk-no", 4) self.logs_mode = "ON" # set logging mode to: ON settings.set_property('enable-private-browsing', 'False') self.main_view_box_left.show() self.webview.set_settings(settings)
def on_navigation_mode_img_button_press_event(self, widget): navigation_img = self.navigation_mode_img.get_stock() if navigation_img.stock_id == "gtk-orientation-landscape": self.navigation_mode_img.set_from_stock("gtk-find-and-replace", 4) self.navigation_mode = "INSPECTOR" # set navigation mode to: INSPECTOR self.start_inspector() else: self.navigation_mode_img.set_from_stock( "gtk-orientation-landscape", 4) self.navigation_mode = "EXPLORER" # set navigation mode to: EXPLORER settings = WebKit.WebSettings() settings.set_property('enable-developer-extras', False) self.webview.set_settings(settings) self.main_view_box_foot.hide() self.set_referer() # set referer according to Navigation mode
def on_java_button_press_event(self, widget): settings = WebKit.WebSettings() java_img = self.java_img.get_stock() if java_img.stock_id == "gtk-yes": self.java_img.set_from_stock("gtk-no", 4) self.java = "OFF" self.flash = "OFF" settings.set_property("enable-java-applet", 'False') else: self.java_img.set_from_stock("gtk-yes", 4) self.java = "ON" self.flash = "ON" settings.set_property("enable-java-applet", 'True') self.webview.set_settings(settings) self.refresh_website()
def __init__(self): super().__init__() self.settings = WebKit.WebSettings() self.settings.set_property('auto-shrink-images', True) self.settings.set_property('default-font-family', 'Kelson Sans') self.settings.set_property('default-font-size', 30) self.view = WebKit.WebView() self.view.set_settings(self.settings) with open(dirs.get_blog_css_path()) as f: self.css = f.read() self.container = Gtk.ScrolledWindow() self.v_adj = self.container.get_vadjustment() self.container.add(self.view) self.view_actor = GtkClutter.Actor.new_with_contents(self.container) self.add_child(self.view_actor) self.view.connect("document-load-finished", self._reload)
def __init__(self): Gtk.Notebook.__init__(self) self.set_tab_pos(Gtk.PositionType.RIGHT) self.set_scrollable(True) label = Gtk.Label("Web Doc") label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000')) label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.webview = WebKit.WebView() self.webview.set_settings(WebKit.WebSettings()) self.webview.set_zoom_level(0.5) #buffer.set_text("%s-%s" % (paquete, modulo)) scroll.add(self.webview) self.append_page(scroll, label) label = Gtk.Label("__gdoc__") label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000')) label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.gdoc = Gtk.TextView() self.gdoc.set_editable(False) self.gdoc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) #buffer.set_text("%s-%s" % (paquete, modulo)) scroll.add(self.gdoc) self.append_page(scroll, label) label = Gtk.Label("__doc__") label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000')) label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.doc = Gtk.TextView() self.doc.set_editable(False) self.doc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) #buffer.set_text("%s-%s" % (paquete, modulo)) scroll.add(self.doc) self.append_page(scroll, label) self.show_all()
def __init__(self, owner): Gtk.VBox.__init__(self) view = WebKit.WebView() view.set_transparent(True) # Eventually need to open a local changes file from real location lines = None base_uri = "file:///usr/share/os-installer/changes/" with open("%s/changes/index.html" % RESOURCE_DIR, "r") as html: lines = "\n".join(html.readlines()) view.load_html_string(lines, base_uri) settings = WebKit.WebSettings() settings.set_property("enable_file_access_from_file_uris", True) view.set_settings(settings) self.title = Gtk.Label( "<span font=\"20.5\" color=\"#82807b\">%s</span>" % _("Changes")) self.title.set_use_markup(True) self.image = Gtk.Image() self.image.set_from_icon_name("learnmore-symbolic", Gtk.IconSize.DIALOG) self.image.set_padding(10, 10) header = Gtk.HBox() header.pack_start(self.image, False, False, 0) header.pack_start(self.title, False, False, 0) self.pack_start(header, False, False, 3) # We need a way to go back to the main window.. :) self.back = Gtk.Button() back_image = Gtk.Image() back_image.set_from_icon_name("go-home-symbolic", Gtk.IconSize.BUTTON) self.back.set_image(back_image) self.back.set_relief(Gtk.ReliefStyle.NONE) self.back.connect("clicked", lambda x: owner.go_home()) header.pack_end(self.back, False, False, 0) scroller = Gtk.ScrolledWindow(None, None) scroller.add(view) scroller.set_shadow_type(Gtk.ShadowType.ETCHED_IN) self.pack_start(scroller, True, True, 0)
def on_cache_button_press_event(self, widget): settings = WebKit.WebSettings() cache_img = self.cache_img.get_stock() if cache_img.stock_id == "gtk-yes": self.cache_img.set_from_stock("gtk-no", 4) self.cache = "OFF" settings.set_property('enable-page-cache', 'True') settings.set_property('enable-offline-web-application-cache', 'True') else: self.cache_img.set_from_stock("gtk-yes", 4) self.cache = "ON" settings.set_property('enable-page-cache', 'False') settings.set_property('enable-offline-web-application-cache', 'False') self.webview.set_settings(settings) self.refresh_website()
def on_javascript_button_press_event(self, widget): settings = WebKit.WebSettings() javascript_img = self.javascript_img.get_stock() if javascript_img.stock_id == "gtk-yes": self.javascript_img.set_from_stock("gtk-no", 4) self.javascript = "OFF" settings.set_property('enable-scripts', 'False') settings.set_property('javascript-can-access-clipboard', 'False') settings.set_property('javascript-can-open-windows-automatically', 'False') else: self.javascript_img.set_from_stock("gtk-yes", 4) self.javascript = "ON" settings.set_property('enable-scripts', 'True') settings.set_property('javascript-can-access-clipboard', 'False') settings.set_property('javascript-can-open-windows-automatically', 'True') self.webview.set_settings(settings) self.refresh_website()
def create_widgets(self): vbox = Gtk.Box(spacing=2, orientation=Gtk.Orientation.VERTICAL) self.webview = WebKit.WebView() settings = WebKit.WebSettings() settings.set_property( 'user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36' ) # Hack for loading the youtube player in older webkit versions! self.webview.set_settings(settings) scrolledWindow = Gtk.ScrolledWindow() scrolledWindow.add(self.webview) vbox.pack_start(scrolledWindow, True, True, 1) self.statusbar = Gtk.Statusbar() vbox.pack_start(self.statusbar, False, False, 1) self.add(vbox)
def set_browser_settings(self): settings = WebKit.WebSettings() settings.set_property('enable-frame-flattening', 'False') settings.set_property('enable-fullscreen', 'False') settings.set_property('enable-html5-database', 'False') settings.set_property('enable-html5-local-storage', 'False') settings.set_property('enable-hyperlink-auditing', 'False') settings.set_property('media-playback-allows-inline', 'False') settings.set_property('media-playback-requires-user-gesture', 'False') settings.set_property('auto-load-images', 'False') settings.set_property('enable-caret-browsing', 'False') settings.set_property('enable-site-specific-quirks', 'False') settings.set_property('enable-smooth-scrolling', 'False') settings.set_property('print-backgrounds', 'False') settings.set_property('enable-dns-prefetching', 'True') settings.set_property('enable-scripts', 'False') # javascript settings.set_property('javascript-can-access-clipboard', 'False') settings.set_property('javascript-can-open-windows-automatically', 'False') settings.set_property("enable-java-applet", 'False') settings.set_property('enable-offline-web-application-cache', 'False') settings.set_property('enable-page-cache', 'False') settings.set_property('enable-private-browsing', 'True') settings.set_property('enable-webaudio', 'False') settings.set_property('enable-webgl', 'False') settings.set_property('enable-xss-auditor', 'True') settings.set_property('enable-page-cache', 'False') settings.set_property('enable-offline-web-application-cache', 'False') settings.set_property("enable-file-access-from-file-uris", "False") # hack.it! >;-) #settings.set_property('allow-modal-dialogs', 'False') #settings.set_property('enable-write-console-messages-to-stdout', 'False') #settings.set_property('draw-compositing-indicators', 'False') #settings.set_property('enable-accelerated-2d-canvas', 'False') #settings.set_property('enable-resizable-text-areas', 'False') #settings.set_property('enable-tabs-to-links', 'False') #settings.set_property('load-icons-ignoring-image-load-setting', 'False') self.webview.set_settings(settings) self.ipData = pygeoip.GeoIP(self.geodb) # load geodb
def __init__(self, *args, **kwargs): # TODO: Change to DOCUMENT_VIEWER after we start caching remote # resources at item processing stage WebKit.set_cache_model(WebKit.CacheModel.DOCUMENT_BROWSER) WebKit.get_default_session().set_property('max-conns-per-host', 8) settings = WebKit.WebSettings() settings.set_properties( **{ # These three saves us ~25MiB of residental memory 'enable_scripts': False, 'enable_plugins': False, 'enable_java_applet': False, # We already have most files cached and load locally 'enable_page_cache': False, 'enable_dns_prefetching': False, 'enable_private_browsing': True, # We don't use any of these features 'enable_html5_database': False, 'enable_html5_local_storage': False, 'enable_offline_web_application_cache': False, 'enable_xss_auditor': False, 'resizable_text_areas': False, # Need this one of usability reasons. 'enable_default_context_menu': False, # Enable in case developer tools are needed 'enable_developer_extras': arguments.devtools }) super(ItemView, self).__init__(*args, settings=settings, **kwargs) self.connect('show', self.on_show) self.connect('style-updated', self.on_style) self.connect('notify::item-id', self.on_item_change) self.connect('console-message', self.on_console_message) self.connect('context-menu', self.on_ctx_menu) # Load base template template_path = get_data_path('ui', 'feedview', 'template.html') self.load_uri('file://' + template_path)
def __init__(self): Gtk.Notebook.__init__(self) self.set_tab_pos(Gtk.PositionType.RIGHT) self.set_scrollable(True) label = Gtk.Label("Web Doc") label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.webview = WebKit.WebView() self.webview.set_settings(WebKit.WebSettings()) self.webview.set_zoom_level(0.8) scroll.add(self.webview) self.append_page(scroll, label) label = Gtk.Label("__gdoc__") label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.gdoc = Gtk.TextView() self.gdoc.set_editable(False) self.gdoc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) scroll.add(self.gdoc) self.append_page(scroll, label) label = Gtk.Label("__doc__") label.set_angle(-90) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.doc = Gtk.TextView() self.doc.set_editable(False) self.doc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) scroll.add(self.doc) self.append_page(scroll, label) self.show_all()
def addtab(self, widget=None, dummy=None, dummier=None, dummiest=None, openurl="http://google.com/"): self.web_view.append(webkit.WebView()) self.websettings.append(webkit.WebSettings()) # to set user agent, uncomment #self.websettings[len(self.websettings)-1].set_property('user-agent', 'iPad') # to enable, disable javascript self.websettings[len(self.websettings) - 1].set_property( 'enable-scripts', False) # to enable, disable webgl self.websettings[len(self.websettings) - 1].set_property( "enable-webgl", True) self.web_view[len(self.web_view) - 1].set_settings( self.websettings[len(self.websettings) - 1]) self.web_view[len(self.web_view) - 1].open(openurl) self.back_button.append(gtk.ToolButton(gtk.STOCK_GO_BACK)) self.back_button[len(self.back_button) - 1].connect( "clicked", self.go_back) self.forward_button.append(gtk.ToolButton(gtk.STOCK_GO_FORWARD)) self.forward_button[len(self.forward_button) - 1].connect( "clicked", self.go_forward) self.refresh_button.append(gtk.ToolButton(gtk.STOCK_REFRESH)) self.refresh_button[len(self.refresh_button) - 1].connect( "clicked", self.refresh) self.url_bar.append(gtk.Entry()) self.url_bar[len(self.url_bar) - 1].connect("activate", self.on_active) # enable (green), disable (red) javascript self.jsbutton.append(gtk.Button('js')) self.jsbutton[len(self.jsbutton) - 1].connect("activate", self.toggle_js) self.jsbutton[len(self.jsbutton) - 1].connect("clicked", self.toggle_js) self.jsbutton[len(self.jsbutton) - 1].modify_bg( gtk.StateType.NORMAL, Gdk.color_parse("red")) self.etcbutton.append(gtk.Button('Prefs')) self.historybutton.append(gtk.Button('Hist')) self.historybutton[len(self.historybutton) - 1].connect( "activate", self.historytab) self.historybutton[len(self.historybutton) - 1].connect( "clicked", self.historytab) self.etcbutton[len(self.etcbutton) - 1].connect( "activate", self.show_prefs) self.etcbutton[len(self.etcbutton) - 1].connect( "clicked", self.show_prefs) self.newtab.append(gtk.Button('+')) self.newtab[len(self.newtab) - 1].connect("activate", self.addtab) self.newtab[len(self.newtab) - 1].connect("clicked", self.addtab) self.closetab.append(gtk.Button('X')) self.closetab[len(self.closetab) - 1].connect("activate", self.removetab) self.closetab[len(self.closetab) - 1].connect("clicked", self.removetab) self.web_view[len(self.web_view) - 1].connect("load_committed", self.update_buttons) self.web_view[len(self.web_view) - 1].connect("load_finished", self.set_tab_title) self.web_view[len(self.web_view) - 1].connect("download_requested", self.download) self.scroll_window.append(gtk.ScrolledWindow(None, None)) self.scroll_window[len(self.scroll_window) - 1].add( self.web_view[len(self.web_view) - 1]) self.scroll_window[len(self.scroll_window) - 1].set_policy( gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC) self.hbox.append(gtk.HBox(False, 0)) self.vbox.append(gtk.VBox(False, 0)) self.mainbox = gtk.VBox(False, 0) self.hbox[len(self.hbox) - 1].pack_start( self.back_button[len(self.back_button) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.forward_button[len(self.forward_button) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.refresh_button[len(self.refresh_button) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.newtab[len(self.newtab) - 1], False, True, 3) self.hbox[len(self.hbox) - 1].pack_start( self.closetab[len(self.closetab) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.url_bar[len(self.url_bar) - 1], True, True, 3) self.hbox[len(self.hbox) - 1].pack_start( self.jsbutton[len(self.jsbutton) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.historybutton[len(self.historybutton) - 1], False, True, 0) self.hbox[len(self.hbox) - 1].pack_start( self.etcbutton[len(self.etcbutton) - 1], False, True, 0) self.vbox[len(self.vbox) - 1].pack_start(self.hbox[len(self.hbox) - 1], False, True, 0) self.vbox[len(self.vbox) - 1].pack_start( self.scroll_window[len(self.scroll_window) - 1], True, True, 0) self.tabbook.append_page(self.vbox[len(self.vbox) - 1]) self.tabbook.show_all() self.tabbook.set_current_page(len(self.vbox) - 1 + self.n)
def set_navigation_settings(self): settings = WebKit.WebSettings() settings.set_property('user-agent', self.useragent.get_text()) # set User-agent self.webview.set_settings(settings) self.refresh_website()
def __init__(self, collection_type, window, builder, onActivate=None): self.collection_type = collection_type self.cache_folder = self.get_cache_folder() self.install_folder = self.get_install_folder() self.index_cache = {} if not os.path.exists(os.path.join(self.cache_folder, "index.json")): self.has_cache = False else: self.has_cache = True self.window = window self.builder = builder self.onActivate = onActivate self.progress_window = self.builder.get_object("progress_window") self.progress_button_close = self.builder.get_object("btnProgressClose") self.progress_button_activate = self.builder.get_object("btnProgressActivate") self.progress_button_abort = self.builder.get_object("btnProgressAbort") self.progresslabel = self.builder.get_object('progresslabel') self.progressbar = self.builder.get_object("progressbar") self.progressbar.set_text(_('')) self.progressbar.set_fraction(0) self.progress_window.set_title("") self.abort_download = False self.download_total_files = 0 self.download_current_file = 0 self._sigLoadFinished = None self.progress_button_activate.connect("clicked", lambda x: self.on_activate_clicked()) self.progress_button_abort.connect("clicked", self.on_abort_clicked) self.progress_button_close.connect("clicked", self.on_progress_close) self.spiceDetail = Gtk.Dialog(_("Applet info"), self.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) self.spiceDetailSelectButton = self.spiceDetail.add_button(_("Select and Close"), Gtk.ResponseType.YES) self.spiceDetailSelectButton.connect("clicked", lambda x: self.close_select_detail()) self.spiceDetailCloseButton = self.spiceDetail.add_button(_("Close"), Gtk.ResponseType.CANCEL) self.spiceDetailCloseButton.connect("clicked", lambda x: self.close_detail()) self.spiceDetail.connect("destroy", self.on_close_detail) self.spiceDetail.connect("delete_event", self.on_close_detail) self.spiceDetail.set_default_size(640, 440) self.spiceDetail.set_size_request(640, 440) content_area = self.spiceDetail.get_content_area() if self.get_webkit_enabled(): self.browser = WebKit.WebView() self.browser.connect('button-press-event', lambda w, e: e.button == 3) self.browser.connect('title-changed', self.browser_title_changed) self.browser.connect('console-message' , self.browser_console_message) settings = WebKit.WebSettings() settings.set_property('enable-xss-auditor', False) settings.set_property('enable-file-access-from-file-uris', True) settings.set_property('enable-accelerated-compositing', True) self.browser.set_settings(settings) scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_shadow_type(Gtk.ShadowType.NONE) scrolled_window.set_border_width(0) scrolled_window.add(self.browser) content_area.pack_start(scrolled_window, True, True, 0) scrolled_window.show() if not callable(self.onActivate): self.progress_button_activate.hide()
def init_gui(self): self.vbox = Gtk.VBox() frame = Gtk.Frame() self.label = Gtk.Label(_('Nothing Playing')) frame.set_shadow_type(Gtk.ShadowType.IN) frame.set_label_align(0.0, 0.0) frame.set_label_widget(self.label) self.label.set_use_markup(True) self.label.set_padding(0, 4) #----- set up top 5 tree view -----# self.top_five_list = Gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) top_five_view = Gtk.TreeView.new_with_model(self.top_five_list) top_five_tvc1 = Gtk.TreeViewColumn() top_five_tvc2 = Gtk.TreeViewColumn() top_five_view.append_column(top_five_tvc1) top_five_view.append_column(top_five_tvc2) crt = Gtk.CellRendererText() top_five_tvc1.pack_start(crt, True) top_five_tvc2.pack_start(crt, True) top_five_tvc1.add_attribute(crt, 'text', 0) top_five_tvc2.add_attribute(crt, 'text', 1) top_five_view.set_headers_visible(False) frame.add(top_five_view) #---- set up webkit pane -----# self.webview = WebKit.WebView() self.webview.connect("navigation-requested", self.navigation_request_cb) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.webview) # set up webkit settings to match gtk font settings self.websettings = WebKit.WebSettings() self.webview.set_settings(self.websettings) self.apply_font_settings() self.webview.connect("style-set", self.style_set_cb) #----- set up button group -----# vbox2 = Gtk.VBox() self.buttons = Gtk.HBox() #---- pack everything into side pane ----# self.vbox.pack_start(frame, False, True, 0) vbox2.pack_start(self.buttons, False, True, 0) vbox2.pack_start(scroll, True, True, 0) self.vbox.pack_start(vbox2, True, True, 0) self.vbox.show_all() self.vbox.set_size_request(200, -1) self.shell.add_widget(self.vbox, RB.ShellUILocation.RIGHT_SIDEBAR, True, True)