diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2006-04-25 21:47:49 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2006-04-25 21:47:49 (GMT) |
commit | 1676e5edcc177c7016618cb71c2eacb6984e741f (patch) | |
tree | 8b3dd0453c0767f2e15e66b6d04ab892701990f8 /browser | |
parent | e5cd418e7ed952c1c760ea80f6df36944999faae (diff) |
Implement links. Require new gecko-embed
Diffstat (limited to 'browser')
-rw-r--r-- | browser/README | 4 | ||||
-rwxr-xr-x | browser/browser.py | 44 |
2 files changed, 38 insertions, 10 deletions
diff --git a/browser/README b/browser/README index fce122b..55aec22 100644 --- a/browser/README +++ b/browser/README @@ -3,5 +3,5 @@ DEPENDENCIES gecko-embed -http://gnome.org/~marco/gecko-embed-0.1-4.i386.rpm -http://gnome.org/~marco/gecko-embed-0.1-4.src.rpm +http://gnome.org/~marco/gecko-embed-0.1-5.i386.rpm +http://gnome.org/~marco/gecko-embed-0.1-5.src.rpm diff --git a/browser/browser.py b/browser/browser.py index 41a7f80..c2ad8e1 100755 --- a/browser/browser.py +++ b/browser/browser.py @@ -23,8 +23,7 @@ class AddressToolbar(gtk.Toolbar): address_item.show() def __open_address_cb(self, address): - browser = BrowserActivity(address) - browser.activity_connect_to_shell() + browser_shell.open_browser(address) class AddressItem(gtk.ToolItem): def __init__(self, callback): @@ -140,7 +139,7 @@ class NavigationToolbar(gtk.Toolbar): self._update_sensitivity() def __open_address_cb(self, address): - self.embed.load_url(address) + self.embed.load_address(address) class BrowserActivity(activity.Activity): def __init__(self, uri): @@ -159,7 +158,7 @@ class BrowserActivity(activity.Activity): vbox.pack_start(self.embed) self.embed.show() - self.embed.load_url(self.uri) + self.embed.load_address(self.uri) nav_toolbar = NavigationToolbar(self.embed) vbox.pack_start(nav_toolbar, False) @@ -170,7 +169,10 @@ class BrowserActivity(activity.Activity): plug.show() vbox.show() - + + def get_embed(self): + return self.embed + def __title_cb(self, embed): self.activity_set_tab_text(embed.get_title()) @@ -201,18 +203,44 @@ class WebActivity(activity.Activity): vbox.show() - self.embed.load_url("http://www.google.com") + self.embed.load_address("http://www.google.com") def __open_address(self, embed, uri, data=None): if uri.startswith("http://www.google.com"): return False else: - browser = BrowserActivity(uri) - browser.activity_connect_to_shell() + browser_shell.open_browser(uri) return True +class BrowserShell(dbus.service.Object): + def __init__(self, bus_name, object_path='/com/redhat/Sugar/Browser'): + dbus.service.Object.__init__(self, bus_name, object_path) + self.__browsers = [] + + @dbus.service.method('com.redhat.Sugar.BrowserShell') + def get_links(self): + links = [] + for browser in self.__browsers: + embed = browser.get_embed() + link = {} + link['title'] = embed.get_title() + link['address'] = embed.get_address() + links.append(link) + return links + + @dbus.service.method('com.redhat.Sugar.BrowserShell') + def open_browser(self, uri): + browser = BrowserActivity(uri) + self.__browsers.append(browser) + browser.activity_connect_to_shell() + web_activity = WebActivity() web_activity.activity_connect_to_shell() + +session_bus = dbus.SessionBus() +bus_name = dbus.service.BusName('com.redhat.Sugar.Browser', bus=session_bus) +browser_shell = BrowserShell(bus_name) + try: gtk.main() except KeyboardInterrupt: |