diff options
Diffstat (limited to 'sugar/browser/browser.py')
-rwxr-xr-x | sugar/browser/browser.py | 80 |
1 files changed, 24 insertions, 56 deletions
diff --git a/sugar/browser/browser.py b/sugar/browser/browser.py index fc5ce0a..633fa04 100755 --- a/sugar/browser/browser.py +++ b/sugar/browser/browser.py @@ -11,7 +11,6 @@ import gtk import geckoembed from sugar.shell import activity -from sugar.p2p.Group import LocalGroup import sugar.env class AddressToolbar(gtk.Toolbar): @@ -78,7 +77,7 @@ class AddressEntry(gtk.HBox): return self.folded def set_folded(self, folded): - self.folded = folded + self.folded = not self.folded self._update_folded_state() def __button_clicked_cb(self, button): @@ -89,12 +88,11 @@ class AddressEntry(gtk.HBox): self.set_folded(True) class NavigationToolbar(gtk.Toolbar): - def __init__(self, browser): + def __init__(self, embed): gtk.Toolbar.__init__(self) - self._browser = browser - self._embed = self._browser.get_embed() + self.embed = embed - self.set_style(gtk.TOOLBAR_BOTH_HORIZ) + self.set_style(gtk.TOOLBAR_ICONS) self.back = gtk.ToolButton(gtk.STOCK_GO_BACK) self.back.connect("clicked", self.__go_back_cb) @@ -115,9 +113,7 @@ class NavigationToolbar(gtk.Toolbar): self.insert(separator, -1) separator.show() - share = gtk.ToolButton(None, "Share") - share.set_icon_name('stock_shared-by-me') - share.set_is_important(True) + share = gtk.ToolButton("Share") share.connect("clicked", self.__share_cb) self.insert(share, -1) share.show() @@ -132,42 +128,34 @@ class NavigationToolbar(gtk.Toolbar): self._update_sensitivity() - self._embed.connect("location", self.__location_changed) + self.embed.connect("location", self.__location_changed) def _update_sensitivity(self): - self.back.set_sensitive(self._embed.can_go_back()) - self.forward.set_sensitive(self._embed.can_go_forward()) + self.back.set_sensitive(self.embed.can_go_back()) + self.forward.set_sensitive(self.embed.can_go_forward()) def __go_back_cb(self, button): - self._embed.go_back() + self.embed.go_back() def __go_forward_cb(self, button): - self._embed.go_forward() + self.embed.go_forward() def __reload_cb(self, button): - self._embed.reload() + self.embed.reload() def __share_cb(self, button): - self._browser.share() + pass def __location_changed(self, embed): self._update_sensitivity() def __open_address_cb(self, address): - self._embed.load_address(address) + self.embed.load_address(address) class BrowserActivity(activity.Activity): - def __init__(self, group, uri): + def __init__(self, uri): activity.Activity.__init__(self) - self.uri = uri - self._group = group - - def _setup_shared(self, uri): - self._model = self._group.get_store().get_model(uri) - if self._model: - self._load_shared_address() - self._model.add_listener(self.__shared_address_changed_cb) def activity_on_connected_to_shell(self): self.activity_set_ellipsize_tab(True) @@ -185,7 +173,7 @@ class BrowserActivity(activity.Activity): self.embed.show() self.embed.load_address(self.uri) - nav_toolbar = NavigationToolbar(self) + nav_toolbar = NavigationToolbar(self.embed) vbox.pack_start(nav_toolbar, False) nav_toolbar.show() @@ -194,36 +182,12 @@ class BrowserActivity(activity.Activity): plug.show() vbox.show() - - self._setup_shared(uri) def get_embed(self): return self.embed - def share(self): - address = self.embed.get_address() - self._model = self._group.get_store().create_model(address) - self._model.set_value('current_address', address) - self._model.add_listener(self.__shared_address_changed_cb) - - bus = dbus.SessionBus() - proxy_obj = bus.get_object('com.redhat.Sugar.Chat', '/com/redhat/Sugar/Chat') - chat_shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.ChatShell') - chat_shell.send_message('<richtext><link href="' + address + '">' + - self.embed.get_title() + '</link></richtext>') - def __title_cb(self, embed): self.activity_set_tab_text(embed.get_title()) - # Temporary hack, we need an UI - self._model.set_value('current_address', self.embed.get_address()) - - def _load_shared_address(self): - address = self._model.get_value("current_address") - if address != self.embed.get_address(): - self.embed.load_address(address) - - def __shared_address_changed_cb(self, model, key): - self._load_shared_address() def activity_on_close_from_user(self): self.activity_shutdown() @@ -265,6 +229,7 @@ class WebActivity(activity.Activity): def activity_on_disconnected_from_shell(self): gtk.main_quit() + gc.collect() class BrowserShell(dbus.service.Object): instance = None @@ -284,7 +249,6 @@ class BrowserShell(dbus.service.Object): dbus.service.Object.__init__(self, bus_name, object_path) self.__browsers = [] - self._group = LocalGroup() def open_web_activity(self): web_activity = WebActivity() @@ -303,13 +267,17 @@ class BrowserShell(dbus.service.Object): @dbus.service.method('com.redhat.Sugar.BrowserShell') def open_browser(self, uri): - browser = BrowserActivity(self._group, uri) + browser = BrowserActivity(uri) self.__browsers.append(browser) browser.activity_connect_to_shell() def main(): BrowserShell.get_instance().open_web_activity() - gtk.main() + + try: + gtk.main() + except KeyboardInterrupt: + pass -if __name__ == "__main__": - main() +if __name__=="__main__": + main() |