diff --git a/browser/README b/browser/README deleted file mode 100644 index e97efad9..00000000 --- a/browser/README +++ /dev/null @@ -1,7 +0,0 @@ -DEPENDENCIES ------------- - -gecko-embed - -http://gnome.org/~marco/gecko-embed-0.1-2.i386.rpm -http://gnome.org/~marco/gecko-embed-0.1-2.src.rpm diff --git a/browser/browser.py b/browser/browser.py index 9889de2d..84d11dea 100755 --- a/browser/browser.py +++ b/browser/browser.py @@ -1,13 +1,8 @@ #!/usr/bin/env python -import dbus -import dbus.service -import dbus.glib - import pygtk pygtk.require('2.0') import gtk - import geckoembed class AddressToolbar(gtk.Toolbar): @@ -19,7 +14,8 @@ class AddressToolbar(gtk.Toolbar): address_item.show() def __open_address_cb(self, address): - web_activity.openAddress(address) + browser = BrowserWindow(address) + browser.show() class AddressItem(gtk.ToolItem): def __init__(self, callback): @@ -68,21 +64,13 @@ class AddressEntry(gtk.HBox): image.show() self.entry.show() - self.entry.grab_focus() - - def get_folded(self): - return self.folded - - def set_folded(self, folded): - self.folded = not self.folded - self._update_folded_state() def __button_clicked_cb(self, button): - self.set_folded(not self.get_folded()) + self.folded = not self.folded + self._update_folded_state() def __activate_cb(self, entry): self.callback(entry.get_text()) - self.set_folded(True) class NavigationToolbar(gtk.Toolbar): def __init__(self, embed): @@ -137,35 +125,47 @@ class NavigationToolbar(gtk.Toolbar): def __open_address_cb(self, address): self.embed.load_url(address) -class BrowserActivity(gtk.VBox): +class BrowserWindow(gtk.Window): def __init__(self, uri): - gtk.VBox.__init__(self) + gtk.Window.__init__(self) + self.set_default_size(640, 480); + + vbox = gtk.VBox() self.embed = geckoembed.Embed() - self.pack_start(self.embed) + vbox.pack_start(self.embed) self.embed.show() self.embed.load_url(uri) nav_toolbar = NavigationToolbar(self.embed) - self.pack_start(nav_toolbar, False) + vbox.pack_start(nav_toolbar, False) nav_toolbar.show() -class SearchActivity(gtk.VBox): + self.add(vbox) + vbox.show() + +class SearchWindow(gtk.Window): def __init__(self): - gtk.VBox.__init__(self) + gtk.Window.__init__(self) + self.set_default_size(640, 480); self.connect("delete-event", self.__delete_event); + vbox = gtk.VBox() + self.embed = geckoembed.Embed() self.embed.connect("open-address", self.__open_address); - self.pack_start(self.embed) + vbox.pack_start(self.embed) self.embed.show() address_toolbar = AddressToolbar() - self.pack_start(address_toolbar, False) + vbox.pack_start(address_toolbar, False) address_toolbar.show() + self.add(vbox) + vbox.show() + self.embed.load_url("http://www.google.com") def __delete_event(self, widget, event, data=None): @@ -175,39 +175,10 @@ class SearchActivity(gtk.VBox): if uri.startswith("http://www.google.com"): return False else: - web_activity.openAddress(uri) + browser = BrowserWindow(uri) + browser.show() return True -class WebActivity: - def __init__(self): - bus = dbus.SessionBus() - container_object = bus.get_object("com.redhat.Sugar.Shell", \ - "/com/redhat/Sugar/Shell/ActivityContainer") - self.container = dbus.Interface(container_object, \ - "com.redhat.Sugar.Shell.ActivityContainer") - - def run(self): - window_id = self.container.add_activity("Web") - - plug = gtk.Plug(window_id) - - window = SearchActivity() - plug.add(window) - window.show() - - plug.show() - - def openAddress(self, uri): - window_id = self.container.add_activity("Page") - - plug = gtk.Plug(window_id) - - window = BrowserActivity(uri) - plug.add(window) - window.show() - - plug.show() - -web_activity = WebActivity() -web_activity.run() +window = SearchWindow() +window.show() gtk.main() diff --git a/chat/avahi-python/__init__.py b/chat/avahi-python/__init__.py deleted file mode 100644 index fdb96fc1..00000000 --- a/chat/avahi-python/__init__.py +++ /dev/null @@ -1,114 +0,0 @@ -# $Id: __init__.py 977 2005-11-15 01:49:54Z lennart $ - -# This file is part of avahi. -# -# avahi is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# avahi is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with avahi; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. - -# Some definitions matching those in avahi-common/defs.h - -import dbus - -SERVER_INVALID, SERVER_REGISTERING, SERVER_RUNNING, SERVER_COLLISION, SERVER_FAILURE = range(0, 5) - -ENTRY_GROUP_UNCOMMITED, ENTRY_GROUP_REGISTERING, ENTRY_GROUP_ESTABLISHED, ENTRY_GROUP_COLLISION, ENTRY_GROUP_FAILURE = range(0, 5) - -DOMAIN_BROWSER_BROWSE, DOMAIN_BROWSER_BROWSE_DEFAULT, DOMAIN_BROWSER_REGISTER, DOMAIN_BROWSER_REGISTER_DEFAULT, DOMAIN_BROWSER_BROWSE_LEGACY = range(0, 5) - -PROTO_UNSPEC, PROTO_INET, PROTO_INET6 = -1, 0, 1 - -IF_UNSPEC = -1 - -PUBLISH_UNIQUE = 1 -PUBLISH_NO_PROBE = 2 -PUBLISH_NO_ANNOUNCE = 4 -PUBLISH_ALLOW_MULTIPLE = 8 -PUBLISH_NO_REVERSE = 16 -PUBLISH_NO_COOKIE = 32 -PUBLISH_UPDATE = 64 -PUBLISH_USE_WIDE_AREA = 128 -PUBLISH_USE_MULTICAST = 256 - -LOOKUP_USE_WIDE_AREA = 1 -LOOKUP_USE_MULTICAST = 2 -LOOKUP_NO_TXT = 4 -LOOKUP_NO_ADDRESS = 8 - -LOOKUP_RESULT_CACHED = 1 -LOOKUP_RESULT_WIDE_AREA = 2 -LOOKUP_RESULT_MULTICAST = 4 -LOOKUP_RESULT_LOCAL = 8 -LOOKUP_RESULT_OUR_OWN = 16 -LOOKUP_RESULT_STATIC = 32 - -SERVICE_COOKIE = "org.freedesktop.Avahi.cookie" -SERVICE_COOKIE_INVALID = 0 - -DBUS_NAME = "org.freedesktop.Avahi" -DBUS_INTERFACE_SERVER = DBUS_NAME + ".Server" -DBUS_PATH_SERVER = "/" -DBUS_INTERFACE_ENTRY_GROUP = DBUS_NAME + ".EntryGroup" -DBUS_INTERFACE_DOMAIN_BROWSER = DBUS_NAME + ".DomainBrowser" -DBUS_INTERFACE_SERVICE_TYPE_BROWSER = DBUS_NAME + ".ServiceTypeBrowser" -DBUS_INTERFACE_SERVICE_BROWSER = DBUS_NAME + ".ServiceBrowser" -DBUS_INTERFACE_ADDRESS_RESOLVER = DBUS_NAME + ".AddressResolver" -DBUS_INTERFACE_HOST_NAME_RESOLVER = DBUS_NAME + ".HostNameResolver" -DBUS_INTERFACE_SERVICE_RESOLVER = DBUS_NAME + ".ServiceResolver" -DBUS_INTERFACE_RECORD_BROWSER = DBUS_NAME + ".RecordBrowser" - -def byte_array_to_string(s): - r = "" - - for c in s: - - if c >= 32 and c < 127: - r += "%c" % c - else: - r += "." - - return r - -def txt_array_to_string_array(t): - l = [] - - for s in t: - l.append(byte_array_to_string(s)) - - return l - - -def string_to_byte_array(s): - r = [] - - for c in s: - r.append(dbus.Byte(ord(c))) - - return r - -def string_array_to_txt_array(t): - l = [] - - for s in t: - l.append(string_to_byte_array(s)) - - return l - -def dict_to_txt_array(txt_dict): - l = [] - - for k,v in txt_dict.items(): - l.append(string_to_byte_array("%s=%s" % (k,v))) - - return l diff --git a/chat/main.py b/chat/main.py index 5eff7429..eeea2518 100755 --- a/chat/main.py +++ b/chat/main.py @@ -33,11 +33,6 @@ class ChatApp(SimpleGladeApp): realname = "Some Clueless User" return (nick, realname) - def new_service(self, action, interface, protocol, name, stype, domain, flags): - if action != 'added' or stype != presence.OLPC_CHAT_SERVICE: - return - self._pdiscovery.resolve_service(interface, protocol, name, stype, domain, self.service_resolved) - def on_buddyList_buddy_selected(self, widget, *args): (model, aniter) = widget.get_selection().get_selected() name = self.treemodel.get(aniter,0) @@ -72,12 +67,6 @@ class ChatApp(SimpleGladeApp): res[tmp[0]] = '' return res - def service_resolved(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags): - data = self._pair_to_dict(avahi.txt_array_to_string_array(txt)) - if len(data) > 0 and 'name' in data.keys(): - aniter = self.treemodel.insert_after(None,None) - self.treemodel.set(aniter, 0, data['name']) - def new(self): self._group_chat_buffer = gtk.TextBuffer() self.chatView.set_buffer(self._group_chat_buffer) @@ -97,12 +86,13 @@ class ChatApp(SimpleGladeApp): self.buddyList.append_column(column) self._pannounce.register_service(self._realname, 6666, presence.OLPC_CHAT_SERVICE, name=self._nick) - self._pdiscovery.add_service_listener(self.new_service) - self._pdiscovery.start() self._gc_controller = network.GroupChatController('224.0.0.221', 6666, self._recv_group_message) self._gc_controller.start() + aniter = self.treemodel.insert_after(None,None) + self.treemodel.set(aniter, 0, data['name']) + def cleanup(self): pass diff --git a/chat/presence.py b/chat/presence.py index 55d8011c..d20d5a78 100644 --- a/chat/presence.py +++ b/chat/presence.py @@ -1,6 +1,3 @@ -#!/usr/bin/python -t - - import avahi, dbus, dbus.glib OLPC_CHAT_SERVICE = "_olpc_chat._udp"