def __init__(self, handle): activity.Activity.__init__(self, handle) _logger.debug('Starting the web activity') # figure out if we're an SSB self.is_ssb = ssb.get_is_ssb(self) self._browser = Browser() _set_accept_languages() _seed_xs_cookie() _set_dbus_globals(self.get_bundle_id()) # don't pick up the sugar theme - use the native mozilla one instead cls = components.classes['@mozilla.org/preferences-service;1'] pref_service = cls.getService(components.interfaces.nsIPrefService) branch = pref_service.getBranch("mozilla.widget.") branch.setBoolPref("disable-native-theme", True) toolbox = activity.ActivityToolbox(self) self._edit_toolbar = EditToolbar(self._browser) toolbox.add_toolbar(_('Edit'), self._edit_toolbar) self._edit_toolbar.show() self._web_toolbar = WebToolbar(self) toolbox.add_toolbar(_('Browse'), self._web_toolbar) self._web_toolbar.show() self._tray = HTray() self.set_tray(self._tray, gtk.POS_BOTTOM) self._tray.show() self._view_toolbar = ViewToolbar(self) toolbox.add_toolbar(_('View'), self._view_toolbar) self._view_toolbar.show() # the bookmarklet bar doesn't show up if empty self._bm_toolbar = None self.set_toolbox(toolbox) toolbox.show() self.set_canvas(self._browser) self._browser.show() self._browser.history.connect('session-link-changed', self._session_history_changed_cb) self._web_toolbar.connect('add-link', self._link_add_button_cb) self._browser.connect("notify::title", self._title_changed_cb) self._bm_store = bookmarklets.get_store() self._bm_store.connect('add_bookmarklet', self._add_bookmarklet_cb) self._bm_store.connect('overwrite_bookmarklet', self._overwrite_bookmarklet_cb) for name in self._bm_store.list(): self._add_bookmarklet(name) self.model = Model() self.model.connect('add_link', self._add_link_model_cb) self.current = _('blank') self.webtitle = _('blank') self.connect('key-press-event', self._key_press_cb) self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) if self.is_ssb: # set permanent homepage for SSBs f = open(os.path.join(activity.get_bundle_path(), 'data/homepage')) self.homepage = f.read() f.close() # enable userscript saving self._browser.userscript.connect('userscript-found', self._userscript_found_cb) # enable userscript injecting self._browser.userscript.connect('userscript-inject', self._userscript_inject_cb) if handle.uri: self._browser.load_uri(handle.uri) elif not self._jobject.file_path: # TODO: we need this hack until we extend the activity API for # opening URIs and default docs. self._load_homepage() self.messenger = None self.connect('shared', self._shared_cb) # Get the Presence Service self.pservice = presenceservice.get_instance() try: name, path = self.pservice.get_preferred_connection() self.tp_conn_name = name self.tp_conn_path = path self.conn = telepathy.client.Connection(name, path) except TypeError: _logger.debug('Offline') self.initiating = None if self._shared_activity is not None: _logger.debug('shared: %s' %self._shared_activity.props.joined) if self._shared_activity is not None: # We are joining the activity _logger.debug('Joined activity') self.connect('joined', self._joined_cb) if self.get_shared(): # We've already joined self._joined_cb() else: _logger.debug('Created activity')
def __remove_cb(self, widget): bookmarklets.get_store().remove(self._name) self.destroy()
def add_bookmarklet(self, name): url = bookmarklets.get_store().get(name) self.bookmarklets[name] = BookmarkletButton(self, name, url)
def __bookmarklet_activate_cb(self, menu_item): bookmarklets.get_store().add(self._title, self._url)