Remove old browser and fix makefiles

This commit is contained in:
Marco Pesenti Gritti 2006-10-13 21:31:51 +02:00
parent 37c5aaf139
commit e176a531ab
11 changed files with 7 additions and 384 deletions

View File

@ -1 +1 @@
SUBDIRS = browser chat groupchat terminal
SUBDIRS = chat groupchat terminal web

View File

@ -1,31 +0,0 @@
import gobject
import gtk
from _sugar import AddressEntry
class AddressItem(gtk.ToolItem):
__gsignals__ = {
'open-address': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ([str])),
}
def __init__(self):
gtk.ToolItem.__init__(self)
entry = AddressEntry()
width = int(gtk.gdk.screen_width() / 3 * 2)
entry.set_size_request(width, -1)
entry.connect("activate", self.__activate_cb)
self.add(entry)
entry.show()
self._entry = entry
def __activate_cb(self, entry):
self.emit('open-address', entry.get_text())
def set_progress(self, progress):
self._entry.set_property('progress', progress)
def set_address(self, address):
self._entry.set_text(address)

View File

@ -1,208 +0,0 @@
import os
import logging
import gtk
import gtkmozembed
import gobject
from sugar.activity.Activity import Activity
from sugar.presence.PresenceService import PresenceService
from sugar.p2p.model.LocalModel import LocalModel
from sugar.p2p.model.RemoteModel import RemoteModel
import _sugar
from NotificationBar import NotificationBar
from NavigationToolbar import NavigationToolbar
from sugar import env
class PopupCreator(gobject.GObject):
__gsignals__ = {
'popup-created': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ([])),
}
def __init__(self, parent_window):
gobject.GObject.__init__(self)
logging.debug('Creating the popup widget')
self._sized_popup = False
self._parent_window = parent_window
self._dialog = gtk.Window()
self._dialog.set_resizable(True)
self._dialog.realize()
self._dialog.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
self._embed = Browser()
self._size_to_sid = self._embed.connect('size_to', self._size_to_cb)
self._vis_sid = self._embed.connect('visibility', self._visibility_cb)
self._dialog.add(self._embed)
def _size_to_cb(self, embed, width, height):
logging.debug('Resize the popup to %d %d' % (width, height))
self._sized_popup = True
self._dialog.resize(width, height)
def _visibility_cb(self, embed, visible):
if visible:
if self._sized_popup:
logging.debug('Show the popup')
self._embed.show()
self._dialog.set_transient_for(self._parent_window)
self._dialog.show()
else:
logging.debug('Open a new activity for the popup')
self._dialog.remove(self._embed)
activity = BrowserActivity(self._embed)
activity.set_type('com.redhat.Sugar.BrowserActivity')
self._embed.disconnect(self._size_to_sid)
self._embed.disconnect(self._vis_sid)
self.emit('popup-created')
def get_embed(self):
return self._embed
class Browser(_sugar.Browser):
__gtype_name__ = "SugarWebBrowser"
def __init__(self):
_sugar.Browser.__init__(self)
self._popup_creators = []
def do_create_window(self):
popup_creator = PopupCreator(self.get_toplevel())
popup_creator.connect('popup-created', self._popup_created_cb)
self._popup_creators.append(popup_creator)
return popup_creator.get_embed()
def _popup_created_cb(self, creator):
self._popup_creators.remove(creator)
class BrowserActivity(Activity):
def __init__(self, embed=None):
Activity.__init__(self)
self._embed = embed
self._share_service = None
self._model_service = None
self._notif_service = None
self._model = None
self.set_title("Web Page")
self.connect('destroy', self._destroy_cb)
vbox = gtk.VBox()
nav_toolbar = NavigationToolbar()
vbox.pack_start(nav_toolbar, False)
nav_toolbar.show()
self._notif_bar = NotificationBar()
vbox.pack_start(self._notif_bar, False)
self._notif_bar.connect('action', self.__notif_bar_action_cb)
if not self._embed:
self._embed = Browser()
self._embed.connect("title", self.__title_cb)
vbox.pack_start(self._embed)
self._embed.show()
nav_toolbar.set_embed(self._embed)
self._embed.load_url('http://www.google.com')
self.add(vbox)
vbox.show()
def join(self, activity_ps):
Activity.join(self, activity_ps)
activity_ps.connect('service-appeared', self._service_appeared_cb)
services = activity_ps.get_services_of_type(self._default_type)
if len(services) > 0:
self._notif_service = services[0]
services = activity_ps.get_services_of_type(LocalModel.SERVICE_TYPE)
if len(services) > 0:
self._model_service = services[0]
if self._notif_service and self._model_service:
self._listen_to_model()
def _service_appeared_cb(self, pservice, service):
if service.get_type() == self._default_type:
self._notif_service = service
elif service.get_type() == LocalModel.SERVICE_TYPE:
self._model_service = service
if not self._model and self._notif_service and self._model_service:
self._listen_to_model()
def _listen_to_model(self):
self._model = RemoteModel(self._model_service, self._notif_service)
self._model.add_listener(self.__shared_location_changed_cb)
self._go_to_shared_location()
def _update_shared_location(self):
address = self._embed.get_location()
self._model.set_value('address', address)
title = self._embed.get_title()
self._model.set_value('title', title)
def __notif_bar_action_cb(self, bar, action_id):
if action_id == 'set_shared_location':
self._update_shared_location()
elif action_id == 'goto_shared_location':
self._go_to_shared_location()
def _go_to_shared_location(self):
address = self._model.get_value("address")
self._embed.load_url(address)
self._notif_bar.hide()
def get_embed(self):
return self._embed
def share(self):
Activity.share(self)
self._model = LocalModel(self, self._pservice, self._service)
self._model.set_value('owner', self._pservice.get_owner().get_name())
self._update_shared_location()
self._notif_bar.set_text('Share this page with the group.')
self._notif_bar.set_action('set_shared_location', 'Share')
self._notif_bar.set_icon('stock_shared-by-me')
self._notif_bar.show()
def __title_cb(self, embed):
self.set_title(embed.get_title())
def __shared_location_changed_cb(self, model, key):
self._notify_shared_location_change()
def _notify_shared_location_change(self):
owner = self._model.get_value('owner')
title = self._model.get_value('title')
text = '<b>' + owner + '</b> is reading <i>' + title + '</i>'
self._notif_bar.set_text(text)
self._notif_bar.set_action('goto_shared_location', 'Go There')
self._notif_bar.set_icon('stock_right')
self._notif_bar.show()
def _destroy_cb(self, window):
if self._model:
self._model.shutdown()
def start():
gtkmozembed.set_profile_path(env.get_profile_path(), 'gecko')
gtkmozembed.push_startup()
_sugar.startup_browser()

View File

@ -1,9 +0,0 @@
sugardir = $(pkgdatadir)/activities/browser
sugar_PYTHON = \
__init__.py \
NotificationBar.py \
AddressItem.py \
BrowserActivity.py \
NavigationToolbar.py
EXTRA_DIST = browser.activity

View File

@ -1,72 +0,0 @@
import gtk
from gettext import gettext as _
from AddressItem import AddressItem
class NavigationToolbar(gtk.Toolbar):
def __init__(self):
gtk.Toolbar.__init__(self)
self.set_style(gtk.TOOLBAR_BOTH_HORIZ)
self._insert_spring()
self.back = gtk.ToolButton(None, _('Back'))
self.back.set_icon_name('stock-back')
self.back.connect("clicked", self.__go_back_cb)
self.insert(self.back, -1)
self.back.show()
self.forward = gtk.ToolButton(None, _('Forward'))
self.forward.set_icon_name('stock-forward')
self.forward.connect("clicked", self.__go_forward_cb)
self.insert(self.forward, -1)
self.forward.show()
separator = gtk.SeparatorToolItem()
separator.set_draw(False)
self.insert(separator, -1)
separator.show()
self._address_item = AddressItem()
self._address_item.connect('open-address', self.__open_address_cb)
self.insert(self._address_item, -1)
self._address_item.show()
self._insert_spring()
def _insert_spring(self):
separator = gtk.SeparatorToolItem()
separator.set_draw(False)
separator.set_expand(True)
self.insert(separator, -1)
separator.show()
def set_embed(self, embed):
self._embed = embed
self._embed.connect("location", self.__location_changed)
self._update_sensitivity()
self._embed.connect("notify::progress", self._progress_changed_cb)
def _update_sensitivity(self):
self.back.set_sensitive(self._embed.can_go_back())
self.forward.set_sensitive(self._embed.can_go_forward())
def _progress_changed_cb(self, embed, pspec):
self._address_item.set_progress(embed.props.progress)
def __go_back_cb(self, button):
self._embed.go_back()
def __go_forward_cb(self, button):
self._embed.go_forward()
def __location_changed(self, embed):
self._address_item.set_address(embed.get_location())
self._update_sensitivity()
def __open_address_cb(self, item, address):
self._embed.load_url(address)

View File

@ -1,56 +0,0 @@
import gtk
import gobject
class NotificationBar(gtk.HBox):
__gsignals__ = {
'action': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_STRING]))
}
def __init__(self):
gtk.HBox.__init__(self, False, 12)
self.set_name("notif bar")
self.set_border_width(3)
self._icon = gtk.Image()
self.pack_start(self._icon, False)
self._text_label = gtk.Label()
self._text_label.set_alignment(0.0, 0.5)
self.pack_start(self._text_label)
self._text_label.show()
self._action_button = gtk.Button()
self._action_button.connect('clicked', self.__button_clicked)
self.pack_start(self._action_button, False)
self._action_button.show()
self.connect('expose_event', self.expose)
def expose(self, widget, event):
rect = self.get_allocation()
ctx = widget.window.cairo_create()
ctx.new_path()
ctx.rectangle(rect.x, rect.y, rect.width, rect.height)
ctx.set_source_rgb(0.56 , 0.75 , 1)
ctx.fill_preserve()
ctx.set_source_rgb(0.16 , 0.35 , 0.6)
ctx.stroke()
return False
def set_icon(self, icon_name):
self._icon.set_from_icon_name(icon_name, gtk.ICON_SIZE_BUTTON)
self._icon.show()
def set_text(self, text):
self._text_label.set_markup(text)
def set_action(self, action_id, action_text):
self._action_id = action_id
self._action_button.set_label(action_text)
def __button_clicked(self, button):
self.emit("action", self._action_id)

View File

@ -1,6 +0,0 @@
[Activity]
name = Web
id = com.redhat.Sugar.BrowserActivity
icon = activity-web
python_module = browser.BrowserActivity.BrowserActivity
show_launcher = no

View File

@ -1,6 +1,11 @@
sugardir = $(pkgdatadir)/activities/web
sugar_PYTHON = \
__init__.py \
linkscontroller.py \
linksmodel.py \
linksview.py \
stylesheet.py \
toolbar.py \
webactivity.py \
webbrowser.py

View File

@ -47,7 +47,6 @@ AC_OUTPUT([
Makefile
dbus-installed.conf
activities/Makefile
activities/browser/Makefile
activities/web/Makefile
activities/chat/Makefile
activities/groupchat/Makefile

View File

@ -1,6 +1,7 @@
sugardir = $(pythondir)/sugar/graphics
sugar_PYTHON = \
__init__.py \
bubble.py \
canvasicon.py \
colors.py \
grid.py \