Refactor dbus out of Activity objects so that we're sure when
This commit is contained in:
@@ -52,16 +52,18 @@ class BrowserActivity(activity.Activity):
|
||||
self.set_mode(BrowserActivity.FOLLOWING)
|
||||
self._model.add_listener(self.__shared_location_changed_cb)
|
||||
|
||||
def activity_on_connected_to_shell(self):
|
||||
self.activity_set_ellipsize_tab(True)
|
||||
self.activity_set_can_close(True)
|
||||
self.activity_set_tab_text("Web Page")
|
||||
self.activity_set_tab_icon_name("web-browser")
|
||||
self.activity_show_icon(True)
|
||||
def on_connected_to_shell(self):
|
||||
activity.Activity.on_connected_to_shell(self)
|
||||
|
||||
self.set_ellipsize_tab(True)
|
||||
self.set_can_close(True)
|
||||
self.set_tab_text("Web Page")
|
||||
self.set_tab_icon(name="web-browser")
|
||||
self.set_show_tab_icon(True)
|
||||
|
||||
vbox = gtk.VBox()
|
||||
|
||||
self._notif_bar = NotificationBar()
|
||||
self._notif_bar = NotificationBar.NotificationBar()
|
||||
vbox.pack_start(self._notif_bar, False)
|
||||
self._notif_bar.connect('action', self.__notif_bar_action_cb)
|
||||
|
||||
@@ -72,11 +74,11 @@ class BrowserActivity(activity.Activity):
|
||||
self.embed.show()
|
||||
self.embed.load_address(self.uri)
|
||||
|
||||
nav_toolbar = NavigationToolbar(self)
|
||||
nav_toolbar = NavigationToolbar.NavigationToolbar(self)
|
||||
vbox.pack_start(nav_toolbar, False)
|
||||
nav_toolbar.show()
|
||||
|
||||
plug = self.activity_get_gtk_plug()
|
||||
plug = self.gtk_plug()
|
||||
plug.add(vbox)
|
||||
plug.show()
|
||||
|
||||
@@ -104,10 +106,10 @@ class BrowserActivity(activity.Activity):
|
||||
'">' + escaped_title + '</link></richtext>')
|
||||
|
||||
def __title_cb(self, embed):
|
||||
self.activity_set_tab_text(embed.get_title())
|
||||
self.set_tab_text(embed.get_title())
|
||||
|
||||
def __shared_location_changed_cb(self, model, key):
|
||||
self.activity_set_has_changes(True)
|
||||
self.set_has_changes(True)
|
||||
self._notify_shared_location_change()
|
||||
|
||||
def _notify_shared_location_change(self):
|
||||
@@ -119,6 +121,3 @@ class BrowserActivity(activity.Activity):
|
||||
self._notif_bar.set_action('goto_shared_location', 'Go There')
|
||||
self._notif_bar.set_icon('stock_right')
|
||||
self._notif_bar.show()
|
||||
|
||||
def activity_on_close_from_user(self):
|
||||
self.activity_shutdown()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import dbus
|
||||
import geckoembed
|
||||
import threading
|
||||
|
||||
import sugar.env
|
||||
|
||||
@@ -9,12 +10,14 @@ from sugar.browser.BrowserActivity import BrowserActivity
|
||||
|
||||
class BrowserShell(dbus.service.Object):
|
||||
instance = None
|
||||
_lock = threading.Lock()
|
||||
|
||||
def get_instance():
|
||||
BrowserShell._lock.acquire()
|
||||
if not BrowserShell.instance:
|
||||
BrowserShell.instance = BrowserShell()
|
||||
BrowserShell._lock.release()
|
||||
return BrowserShell.instance
|
||||
|
||||
get_instance = staticmethod(get_instance)
|
||||
|
||||
def __init__(self):
|
||||
@@ -31,7 +34,7 @@ class BrowserShell(dbus.service.Object):
|
||||
|
||||
def open_web_activity(self):
|
||||
web_activity = WebActivity(self)
|
||||
web_activity.activity_connect_to_shell()
|
||||
web_activity.connect_to_shell()
|
||||
|
||||
@dbus.service.method('com.redhat.Sugar.BrowserShell')
|
||||
def get_links(self):
|
||||
@@ -48,4 +51,4 @@ class BrowserShell(dbus.service.Object):
|
||||
def open_browser(self, uri):
|
||||
browser = BrowserActivity(self._group, uri)
|
||||
self.__browsers.append(browser)
|
||||
browser.activity_connect_to_shell()
|
||||
browser.connect_to_shell()
|
||||
|
||||
@@ -24,10 +24,12 @@ class WebActivity(activity.Activity):
|
||||
activity.Activity.__init__(self)
|
||||
self._shell = shell
|
||||
|
||||
def activity_on_connected_to_shell(self):
|
||||
self.activity_set_tab_text("Web")
|
||||
self.activity_set_tab_icon_name("web-browser")
|
||||
self.activity_show_icon(True)
|
||||
def on_connected_to_shell(self):
|
||||
activity.Activity.on_connected_to_shell(self)
|
||||
|
||||
self.set_tab_text("Web")
|
||||
self.set_tab_icon(name="web-browser")
|
||||
self.set_show_tab_icon(True)
|
||||
|
||||
vbox = gtk.VBox()
|
||||
|
||||
@@ -40,7 +42,7 @@ class WebActivity(activity.Activity):
|
||||
vbox.pack_start(address_toolbar, False)
|
||||
address_toolbar.show()
|
||||
|
||||
plug = self.activity_get_gtk_plug()
|
||||
plug = self.gtk_plug()
|
||||
plug.add(vbox)
|
||||
plug.show()
|
||||
|
||||
@@ -55,5 +57,6 @@ class WebActivity(activity.Activity):
|
||||
self._shell.open_browser(uri)
|
||||
return True
|
||||
|
||||
def activity_on_disconnected_from_shell(self):
|
||||
def on_disconnected_from_shell(self):
|
||||
activity.Activity.on_disconnected_from_shell(self)
|
||||
gtk.main_quit()
|
||||
|
||||
Reference in New Issue
Block a user