Write a chat activity, remove some unused code

This commit is contained in:
Marco Pesenti Gritti 2006-10-25 00:36:42 +02:00
parent bae47abd09
commit 03d82108d7
7 changed files with 31 additions and 73 deletions

View File

@ -1,6 +1,6 @@
sugardir = $(pkgdatadir)/activities/chat sugardir = $(pkgdatadir)/activities/chat
sugar_PYTHON = \ sugar_PYTHON = \
__init__.py \ __init__.py \
ChatActivity.py chatactivity.py
EXTRA_DIST = chat.activity EXTRA_DIST = chat.activity

View File

@ -3,4 +3,4 @@ name = GroupChat
icon = activity-chat icon = activity-chat
id = org.laptop.ChatActivity id = org.laptop.ChatActivity
python_module = chat.chatactivity.ChatActivity python_module = chat.chatactivity.ChatActivity
show_launcher = no show_launcher = yes

View File

@ -17,8 +17,33 @@
from gettext import gettext as _ from gettext import gettext as _
from sugar.activity.Activity import Activity from sugar.activity.Activity import Activity
from sugar.chat.Chat import Chat
from sugar.p2p.Stream import Stream
class GroupChatActivity(Activity): class ChatActivity(Activity):
def __init__(self): def __init__(self):
Activity.__init__(self) Activity.__init__(self)
self._group_stream = None
self.set_title(_('Group chat')) self.set_title(_('Group chat'))
self._chat = Chat()
self.add(self._chat)
self._chat.show()
def join(self, activity_ps):
Activity.join(self, activity_ps)
self._setup_stream()
def share(self):
Activity.share(self)
self._setup_stream()
def _setup_stream(self):
self._group_stream = Stream.new_from_service(self._service)
self._group_stream.set_data_listener(self._group_recv_message)
self._chat.set_stream_writer(self._group_stream.new_writer())
def _group_recv_message(self, address, msg):
self._chat.recv_message(msg)

View File

@ -1,31 +0,0 @@
# Copyright (C) 2006, Red Hat, Inc.
#
# This library 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.
#
# This library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
from sugar.chat.Chat import Chat
from sugar.p2p.Stream import Stream
class BuddyChat(Chat):
SERVICE_TYPE = "_olpc_buddy_chat._tcp"
def __init__(self, service):
Chat.__init__(self)
self._stream = Stream.new_from_service(service, False)
self._stream_writer = self._stream.new_writer(service)
def _recv_message_cb(self, address, msg):
self.recv_message(msg)

View File

@ -246,6 +246,9 @@ class Chat(gtk.VBox):
self._insert_sketch(buddy, chunk) self._insert_sketch(buddy, chunk)
return return
def set_stream_writer(self, stream_writer):
self._stream_writer = stream_writer
def send_sketch(self, svgdata): def send_sketch(self, svgdata):
if not svgdata or not len(svgdata): if not svgdata or not len(svgdata):
return return

View File

@ -1,37 +0,0 @@
# Copyright (C) 2006, Red Hat, Inc.
#
# This library 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.
#
# This library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
import logging
from sugar.chat.Chat import Chat
from sugar.p2p.Stream import Stream
from sugar.presence.PresenceService import PresenceService
import sugar.env
class GroupChat(Chat):
def __init__(self):
Chat.__init__(self)
self._group_stream = None
def _setup_stream(self, service):
self._group_stream = Stream.new_from_service(service)
self._group_stream.set_data_listener(self._group_recv_message)
self._stream_writer = self._group_stream.new_writer()
def _group_recv_message(self, address, msg):
logging.debug('Group chat received from %s message %s' % (address, msg))
self.recv_message(msg)

View File

@ -4,12 +4,10 @@ sugardir = $(pythondir)/sugar/chat
sugar_PYTHON = \ sugar_PYTHON = \
__init__.py \ __init__.py \
ActivityChat.py \ ActivityChat.py \
BuddyChat.py \
Chat.py \ Chat.py \
ChatEditor.py \ ChatEditor.py \
ChatToolbar.py \ ChatToolbar.py \
Emoticons.py \ Emoticons.py \
GroupChat.py \
richtext.py richtext.py
EXTRA_DIST = \ EXTRA_DIST = \