xml console now print everything that is sent/received

This commit is contained in:
Yann Leboulanger 2005-08-05 23:43:28 +00:00
parent d04ae286ae
commit 37a315ac9d
4 changed files with 30 additions and 29 deletions

View File

@ -127,7 +127,7 @@ class Connection:
'GC_SUBJECT': [], 'GC_CONFIG': [], 'BAD_PASSPHRASE': [],
'ROSTER_INFO': [], 'ERROR_ANSWER': [], 'BOOKMARKS': [], 'CON_TYPE': [],
'FILE_REQUEST': [], 'FILE_RCV_COMPLETED': [], 'FILE_PROGRESS': [],
'STANZA_ARRIVED': [], 'HTTP_AUTH': []
'STANZA_ARRIVED': [], 'STANZA_SENT': [], 'HTTP_AUTH': []
}
self.name = name
self.connected = 0 # offline
@ -887,7 +887,6 @@ class Connection:
self.dispatch('ERROR_ANSWER', (id, jid_from, errmsg, errcode))
def _StanzaArrivedCB(self, con, obj):
self.dispatch('STANZA_ARRIVED', str(obj))
self.last_incoming = time.time()
self.keep_alive_sent = False
@ -917,6 +916,11 @@ class Connection:
self.new_account_info = None
return
self.dispatch('REGISTER_AGENT_INFO', (data[0], data[1].asDict()))
elif realm == '':
if event == common.xmpp.transports.DATA_RECEIVED:
self.dispatch('STANZA_ARRIVED', str(data))
elif event == common.xmpp.transports.DATA_SENT:
self.dispatch('STANZA_SENT', str(data))
def connect(self):
"""Connect and authenticate to the Jabber server

View File

@ -36,7 +36,9 @@ try:
import dns.resolver
except:
pass
DATA_RECEIVED='DATA RECEIVED'
DATA_SENT='DATA SENT'
class error:
"""An exception to be raised in case of low-level errors in methods of 'transports' module."""
@ -129,6 +131,7 @@ class TCPsocket(PlugIn):
if len(received): # length of 0 means disconnect
self.DEBUG(received,'got')
self._owner.Dispatcher.Event('', DATA_RECEIVED, received)
else:
self.DEBUG('Socket error while receiving data','error')
self._owner.disconnected()
@ -142,6 +145,7 @@ class TCPsocket(PlugIn):
try:
self._send(raw_data)
self.DEBUG(raw_data,'sent')
self._owner.Dispatcher.Event('', DATA_SENT, raw_data)
except:
self.DEBUG("Socket error while sending data",'error')
self._owner.disconnected()

View File

@ -1321,31 +1321,18 @@ class XMLConsoleWindow:
self.window = self.xml.get_widget('xml_console_window')
self.input_textview = self.xml.get_widget('input_textview')
self.stanzas_log_textview = self.xml.get_widget('stanzas_log_textview')
self.input_tv_buffer = self.input_textview.get_buffer()
self.input_textview.modify_base(
gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
self.input_textview.modify_text(
gtk.STATE_NORMAL, gtk.gdk.color_parse('green'))
#st = self.input_textview.get_style()
#style = gtk.Style()
#style.font_desc = st.font_desc
#self.input_textview.set_name('input')
#s = '''\
#style "console" { GtkTextView::cursor-color="%s" }
#widget "*.*.input" style : application "console"''' % '#FFFFFF'
#gtk.rc_parse_string(s)
self.stanzas_log_textview.modify_base(
gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
buffer = self.stanzas_log_textview.get_buffer()
self.tagIn = buffer.create_tag('incoming')
color = gajim.config.get('inmsgcolor')
self.tagIn.set_property('foreground', color)
self.tagOut = buffer.create_tag('outgoing')
color = gajim.config.get('outmsgcolor')
self.tagOut.set_property('foreground', color)
self.stanzas_log_textview.modify_text(
gtk.STATE_NORMAL, gtk.gdk.color_parse('green'))
gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
if len(gajim.connections) > 1:
title = _('XML Console for %s') % self.account
@ -1357,10 +1344,11 @@ class XMLConsoleWindow:
self.xml.signal_autoconnect(self)
self.window.show_all()
def print_incomming_stanza(self, stanza):
def print_stanza(self, stanza, tag):
# tag must be 'incoming' or 'outgoing'
buffer = self.stanzas_log_textview.get_buffer()
end_iter = buffer.get_end_iter()
buffer.insert(end_iter, stanza)
buffer.insert_with_tags_by_name(end_iter, stanza + '\n\n', tag)
def on_send_button_clicked(self, widget):
begin_iter, end_iter = self.input_tv_buffer.get_bounds()

View File

@ -773,7 +773,11 @@ class Interface:
def handle_event_stanza_arrived(self, account, stanza):
if self.windows[account].has_key('xml_console'):
self.windows[account]['xml_console'].print_incomming_stanza(stanza)
self.windows[account]['xml_console'].print_stanza(stanza, 'incoming')
def handle_event_stanza_sent(self, account, stanza):
if self.windows[account].has_key('xml_console'):
self.windows[account]['xml_console'].print_stanza(stanza, 'outgoing')
def read_sleepy(self):
'''Check idle status and change that status if needed'''
@ -942,6 +946,7 @@ class Interface:
con.register_handler('CON_TYPE', self.handle_event_con_type)
con.register_handler('FILE_REQUEST', self.handle_event_file_request)
con.register_handler('STANZA_ARRIVED', self.handle_event_stanza_arrived)
con.register_handler('STANZA_SENT', self.handle_event_stanza_sent)
def process_connections(self):
try: