A bunch of fixes...
This commit is contained in:
@@ -9,15 +9,14 @@ class ActivityInfo:
|
||||
self._service = service
|
||||
|
||||
def get_id(self):
|
||||
activity_id = self._service.get_activity_id()
|
||||
activity_id = self._service.get_id()
|
||||
|
||||
def get_type(self):
|
||||
return self._service.get_type()
|
||||
# FIXME
|
||||
return "_web_olpc._udp"
|
||||
|
||||
def get_title(self):
|
||||
escaped_title = self._service.get_published_value('Title')
|
||||
title = xml.sax.saxutils.unescape(escaped_title)
|
||||
return title
|
||||
return "FIXME Title"
|
||||
|
||||
def get_service(self):
|
||||
return self._service
|
||||
@@ -47,7 +46,4 @@ class ActivitiesModel(gobject.GObject):
|
||||
return self._activities.__iter__()
|
||||
|
||||
def _on_activity_announced_cb(self, pservice, activity):
|
||||
# FIXME We should not hard code activity types here
|
||||
services = activity.get_services_of_type("_web_olpc._udp")
|
||||
if len(services) > 0:
|
||||
self.add_activity(services[0])
|
||||
self.add_activity(activity)
|
||||
|
||||
@@ -2,9 +2,11 @@ import gtk
|
||||
import dbus
|
||||
|
||||
from sugar.activity import Activity
|
||||
from PeopleWindow import PeopleWindow
|
||||
|
||||
class ActivityHost:
|
||||
def __init__(self, xid):
|
||||
def __init__(self, shell, xid):
|
||||
self._shell = shell
|
||||
self._xid = xid
|
||||
|
||||
bus = dbus.SessionBus()
|
||||
@@ -16,11 +18,13 @@ class ActivityHost:
|
||||
self._id = self._activity.get_id()
|
||||
self._default_type = self._activity.get_default_type()
|
||||
self._window = gtk.gdk.window_foreign_new(xid)
|
||||
self._people_window = PeopleWindow(shell, self)
|
||||
|
||||
def get_id(self):
|
||||
return self._id
|
||||
|
||||
def share(self):
|
||||
self._people_window.share()
|
||||
self._activity.share()
|
||||
|
||||
def get_shared(self):
|
||||
@@ -29,6 +33,9 @@ class ActivityHost:
|
||||
def get_default_type(self):
|
||||
return self._default_type
|
||||
|
||||
def show_people(self):
|
||||
self.show_dialog(self._people_window)
|
||||
|
||||
def show_dialog(self, dialog):
|
||||
dialog.show()
|
||||
dialog.window.set_transient_for(self._window)
|
||||
|
||||
@@ -18,9 +18,12 @@ class PeopleWindow(gtk.Window):
|
||||
hbox.pack_start(presence_view, False)
|
||||
presence_view.show()
|
||||
|
||||
chat = ActivityChat(activity)
|
||||
hbox.pack_start(chat)
|
||||
chat.show()
|
||||
self._chat = ActivityChat(activity)
|
||||
hbox.pack_start(self._chat)
|
||||
self._chat.show()
|
||||
|
||||
self.add(hbox)
|
||||
hbox.show()
|
||||
|
||||
def share(self):
|
||||
self._chat.share()
|
||||
|
||||
@@ -133,9 +133,9 @@ class PresenceView(gtk.VBox):
|
||||
self._add_buddy(buddy)
|
||||
|
||||
def _add_buddy(self, buddy):
|
||||
#if buddy.is_owner():
|
||||
if buddy.is_owner():
|
||||
# Do not show ourself in the buddy list
|
||||
#return
|
||||
return
|
||||
|
||||
aniter = self._buddy_store.append(None)
|
||||
self._buddy_store.set(aniter,
|
||||
|
||||
+14
-11
@@ -12,7 +12,6 @@ from sugar.LogWriter import LogWriter
|
||||
from ActivityRegistry import ActivityRegistry
|
||||
from HomeWindow import HomeWindow
|
||||
from sugar import env
|
||||
from PeopleWindow import PeopleWindow
|
||||
from ConsoleWindow import ConsoleWindow
|
||||
from Owner import ShellOwner
|
||||
from PresenceService import PresenceService
|
||||
@@ -66,29 +65,33 @@ class Shell:
|
||||
self._home_window = HomeWindow(self)
|
||||
self._home_window.show()
|
||||
|
||||
self._people_windows = {}
|
||||
self._hosts = {}
|
||||
self._console_windows = {}
|
||||
|
||||
def get_current_activity(self):
|
||||
window = self._screen.get_active_window()
|
||||
if window:
|
||||
xid = None
|
||||
|
||||
if window.get_window_type() == wnck.WINDOW_NORMAL:
|
||||
return ActivityHost(window.get_xid())
|
||||
xid = window.get_xid()
|
||||
elif window.get_window_type() == wnck.WINDOW_DIALOG:
|
||||
parent = window.get_transient()
|
||||
if not parent is None:
|
||||
return ActivityHost(parent.get_xid())
|
||||
xid = parent.get_xid()
|
||||
|
||||
if xid != None:
|
||||
if self._hosts.has_key(xid):
|
||||
return self._hosts[xid]
|
||||
else:
|
||||
self._hosts[xid] = ActivityHost(self, xid)
|
||||
return self._hosts[xid]
|
||||
|
||||
return None
|
||||
|
||||
def show_people(self):
|
||||
activity = self.get_current_activity()
|
||||
if activity:
|
||||
if not self._people_windows.has_key(activity.get_id()):
|
||||
dialog = PeopleWindow(self, activity)
|
||||
self._people_windows[activity.get_id()] = dialog
|
||||
else:
|
||||
dialog = self._people_windows[activity.get_id()]
|
||||
activity.show_dialog(dialog)
|
||||
activity.show_people()
|
||||
|
||||
def get_console(self, module_id):
|
||||
if not self._console_windows.has_key(module_id):
|
||||
|
||||
Reference in New Issue
Block a user