Author: bct
Date: 2008-05-03 02:10:17 +0200 (Sat, 03 May 2008)
New Revision: 9560
Modified:
branches/session_centric/src/chat_control.py
branches/session_centric/src/common/connection_handlers.py
branches/session_centric/src/gajim.py
branches/session_centric/src/groupchat_control.py
branches/session_centric/src/roster_window.py
branches/session_centric/src/session.py
Log:
pm fixes
Modified: branches/session_centric/src/chat_control.py
===================================================================
--- branches/session_centric/src/chat_control.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/chat_control.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -927,9 +927,8 @@
if contact:
gajim.interface.roster.draw_contact(room_jid, self.account)
groupchat_control.draw_contact(nick)
- mw = gajim.interface.msg_win_mgr.get_gc_window(room_jid, self.account)
- if mw:
- mw.redraw_tab(groupchat_control)
+ if groupchat_control.parent_win:
+ groupchat_control.parent_win.redraw_tab(groupchat_control)
else:
gajim.interface.roster.draw_contact(jid, self.account)
gajim.interface.roster.show_title()
Modified: branches/session_centric/src/common/connection_handlers.py
===================================================================
--- branches/session_centric/src/common/connection_handlers.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/common/connection_handlers.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -1029,7 +1029,7 @@
gajim.interface.remove_avatar_files(our_jid)
self.awaiting_answers[id] = (VCARD_PUBLISHED, iq2)
-
+
def _IqCB(self, con, iq_obj):
id = iq_obj.getID()
@@ -1081,6 +1081,7 @@
our_jid = gajim.get_jid_from_account(self.name)
if iq_obj.getType() == 'error' and jid == our_jid:
# our server doesn't support vcard
+ gajim.log.debug('xxx error xxx')
self.vcard_supported = False
if not iq_obj.getTag('vCard') or iq_obj.getType() == 'error':
if frm and frm != our_jid:
Modified: branches/session_centric/src/gajim.py
===================================================================
--- branches/session_centric/src/gajim.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/gajim.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -727,7 +727,7 @@
full_jid_with_resource = array[0]
jids = full_jid_with_resource.split('/', 1)
jid = jids[0]
- gc_control = self.msg_win_mgr.get_control(jid, account)
+ gc_control = self.msg_win_mgr.get_gc_control(jid, account)
if not gc_control and \
jid in self.minimized_controls[account]:
gc_control = self.minimized_controls[account][jid]
Modified: branches/session_centric/src/groupchat_control.py
===================================================================
--- branches/session_centric/src/groupchat_control.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/groupchat_control.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -121,7 +121,7 @@
def __init__(self, parent_win, gc_contact, contact, account, session):
room_jid = contact.jid.split('/')[0]
- room_ctrl = gajim.interface.msg_win_mgr.get_control(room_jid, account)
+ room_ctrl = gajim.interface.msg_win_mgr.get_gc_control(room_jid, account)
if gajim.interface.minimized_controls[account].has_key(room_jid):
room_ctrl = gajim.interface.minimized_controls[account][room_jid]
self.room_name = room_ctrl.name
@@ -448,9 +448,9 @@
'state_muc_msg_color')
if color_name:
color = gtk.gdk.colormap_get_system().alloc_color(color_name)
-
+
label_str = self.name
-
+
# count waiting highlighted messages
unread = ''
num_unread = self.get_nb_unread()
@@ -604,9 +604,11 @@
no_queue = len(gajim.events.get_events(self.account, fjid)) == 0
# We print if window is opened
- pm_control = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
+ pm_control = gajim.interface.msg_win_mgr.get_control(fjid, self.account, session)
+
if pm_control:
pm_control.print_conversation(msg, tim = tim, xhtml = xhtml)
+
return
event = gajim.events.create_event('pm', (msg, '', 'incoming', tim,
@@ -883,7 +885,7 @@
def on_send_pm(self, widget = None, model = None, iter = None, nick = None,
msg = None):
- '''opens a chat window and msg is not None sends private message to a
+ '''opens a chat window and if msg is not None sends private message to a
contact in a room'''
if nick is None:
nick = model[iter][C_NICK].decode('utf-8')
@@ -1603,7 +1605,7 @@
for nick in nick_list:
# Update pm chat window
fjid = self.room_jid + '/' + nick
- ctrl = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
+ ctrl = gajim.interface.msg_win_mgr.get_gc_control(fjid, self.account)
if ctrl:
contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
contact.show = 'offline'
@@ -2033,7 +2035,10 @@
if not win:
gajim.interface.roster.new_private_chat(gc_c, self.account)
win = gajim.interface.msg_win_mgr.get_window(nick_jid, self.account)
- win.set_active_tab(nick_jid, self.account)
+
+ ctrl = win.get_controls(nick_jid, self.account)[0]
+
+ win.set_active_tab(ctrl)
win.window.present()
def on_row_activated(self, widget, path):
Modified: branches/session_centric/src/roster_window.py
===================================================================
--- branches/session_centric/src/roster_window.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/roster_window.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -3927,6 +3927,9 @@
if not mw:
mw = gajim.interface.msg_win_mgr.create_window(contact, account, type_)
+ if not session:
+ session = gajim.connections[account].get_session(fjid, None, 'pm')
+
chat_control = PrivateChatControl(mw, gc_contact, contact, account, session)
mw.new_tab(chat_control)
if len(gajim.events.get_events(account, fjid)):
Modified: branches/session_centric/src/session.py
===================================================================
--- branches/session_centric/src/session.py 2008-05-02 23:25:31 UTC (rev 9559)
+++ branches/session_centric/src/session.py 2008-05-03 00:10:17 UTC (rev 9560)
@@ -107,19 +107,18 @@
if gajim.jid_is_transport(jid):
jid = jid.replace('@', '')
- #groupchat_control = gajim.interface.msg_win_mgr.get_control(jid, self.conn.name)
+ groupchat_control = gajim.interface.msg_win_mgr.get_gc_control(jid, self.conn.name)
-# XXX fixme
-# if not groupchat_control and \
-# jid in gajim.interface.minimized_controls[self.conn.name]:
-# groupchat_control = self.minimized_controls[self.conn.name][jid]
+ if not groupchat_control and \
+ jid in gajim.interface.minimized_controls[self.conn.name]:
+ groupchat_control = self.minimized_controls[self.conn.name][jid]
pm = False
-# if groupchat_control and groupchat_control.type_id == \
-# message_control.TYPE_GC:
+ if groupchat_control and groupchat_control.type_id == \
+ message_control.TYPE_GC:
# It's a Private message
-# pm = True
-# msg_type = 'pm'
+ pm = True
+ msg_type = 'pm'
jid_of_control = full_jid_with_resource
@@ -134,7 +133,7 @@
contact.chatstate = chatstate
if contact.our_chatstate == 'ask': # we were jep85 disco?
contact.our_chatstate = 'active' # no more
- #self.control.handle_incoming_chatstate() XXX
+ self.control.handle_incoming_chatstate()
elif contact.chatstate != 'active':
# got no valid jep85 answer, peer does not support it
contact.chatstate = False
@@ -168,8 +167,8 @@
if pm:
nickname = resource
- groupchat_control.on_private_message(nickname, msgtxt, array[2],
- xhtml, session, msg_id)
+ groupchat_control.on_private_message(nickname, msgtxt, tim,
+ xhtml, self, msg_id)
else:
self.roster_message(jid, msgtxt, tim, encrypted, msg_type,
subject, resource, msg_id, user_nick, advanced_notif_num,