last_message_time is now saved in gajim.py so we begin to count time when we receive the message and not when we print it (fix #162)

This commit is contained in:
Yann Leboulanger 2005-07-03 15:27:41 +00:00
parent 348c7314f7
commit 669b7bde6b
7 changed files with 17 additions and 9 deletions

View File

@ -57,7 +57,6 @@ class Chat:
self.tagOut = {} # holds tag for our nick
self.tagStatus = {} # holds status messages
self.nb_unread = {}
self.last_message_time = {}
self.last_time_printout = {}
self.print_time_timeout_id = {}
self.names = {} # what is printed in the tab (eg. user.name)
@ -293,7 +292,7 @@ class Chat:
del self.plugin.windows[self.account][kind][jid]
del self.nb_unread[jid]
del self.last_message_time[jid]
del gajim.last_message_time[self.account][jid]
del self.last_time_printout[jid]
del self.xmls[jid]
del self.tagIn[jid]
@ -308,7 +307,7 @@ class Chat:
self.set_compact_view(self.always_compact_view)
self.nb_unread[jid] = 0
self.last_message_time[jid] = 0
gajim.last_message_time[self.account][jid] = 0
self.last_time_printout[jid] = float(0.0)
if gajim.config.get('use_speller') and 'gtkspell' in globals():
@ -901,7 +900,7 @@ class Chat:
return
if kind == 'incoming':
self.last_message_time[jid] = time.time()
gajim.last_message_time[self.account][jid] = time.time()
if (jid != self.get_active_jid() or \
not self.window.is_active() or \

View File

@ -41,4 +41,6 @@ if LANG:
else:
LANG = 'en'
last_message_time = {} # list of time of the latest incomming message
# {acct1: {jid1: time1, jid2: time2}, }
encrypted_chats = {} # list of encrypted chats {acct1: [jid1, jid2], ..}

View File

@ -1164,6 +1164,8 @@ _('To change the account name, it must be disconnected.')).get_response()
self.plugin.sleeper_state[name] = \
self.plugin.sleeper_state[self.account]
gajim.encrypted_chats[name] = gajim.encrypted_chats[self.account]
gajim.last_message_time[name] = \
gajim.last_message_time[self.account]
#upgrade account variable in opened windows
for kind in ['infos', 'chats', 'gc', 'gc_config']:
for j in self.plugin.windows[name][kind]:
@ -1180,6 +1182,7 @@ _('To change the account name, it must be disconnected.')).get_response()
del self.plugin.roster.contacts[self.account]
del self.plugin.sleeper_state[self.account]
del gajim.encrypted_chats[self.account]
del gajim.last_time_message[self.account]
gajim.connections[self.account].name = name
gajim.connections[name] = gajim.connections[self.account]
del gajim.connections[self.account]
@ -1230,6 +1233,7 @@ _('To change the account name, it must be disconnected.')).get_response()
self.plugin.allow_notifications[name] = False
self.plugin.sleeper_state[name] = 0
gajim.encrypted_chats[name] = []
gajim.last_message_time[name] = {}
#refresh accounts window
if self.plugin.windows.has_key('accounts'):
self.plugin.windows['accounts'].init_accounts()

View File

@ -509,6 +509,7 @@ class Interface:
self.roster.to_be_removed[name] = []
self.sleeper_state[name] = 0
gajim.encrypted_chats[name] = []
gajim.last_message_time[name] = {}
if self.windows.has_key('accounts'):
self.windows['accounts'].init_accounts()
self.roster.draw_roster()
@ -846,6 +847,7 @@ class Interface:
#2:autoaway and use sleeper
#3:autoxa and use sleeper
gajim.encrypted_chats[a] = []
gajim.last_message_time[a] = {}
self.roster = roster_window.RosterWindow(self)
path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps/gajim.png')

View File

@ -106,7 +106,7 @@ class GroupchatWindow(chat.Chat):
def on_groupchat_window_delete_event(self, widget, event):
"""close window"""
for room_jid in self.xmls:
if time.time() - self.last_message_time[room_jid] < 2:
if time.time() - gajim.last_message_time[self.account][room_jid] < 2:
dialog = dialogs.ConfirmationDialog(
_('You just received a new message in room "%s"') %room_jid.split('@')[0],
_('If you close this window, this message will be lost.')
@ -795,7 +795,7 @@ class GroupchatWindow(chat.Chat):
menu.reposition()
def remove_tab(self, room_jid):
if time.time() - self.last_message_time[room_jid] < 2:
if time.time() - gajim.last_message_time[self.account][room_jid] < 2:
dialog = dialogs.ConfirmationDialog(
_('You just received a new message in room "%s"'),
_('If you close this tab, the message will be lost.') % \

View File

@ -1377,7 +1377,7 @@ _('If "%s" accepts this request you will know his status.') %jid).get_response()
unread = True
break
for jid in win.users:
if time.time() - win.last_message_time[jid] < 2:
if time.time() - gajim.last_message_time[account][jid] < 2:
recent = True
break
if unread:

View File

@ -179,7 +179,8 @@ class TabbedChatWindow(chat.Chat):
def on_tabbed_chat_window_delete_event(self, widget, event):
"""close window"""
for jid in self.users:
if time.time() - self.last_message_time[jid] < 2: # 2 seconds
if time.time() - gajim.last_message_time[self.account][jid] < 2:
# 2 seconds
dialog = dialogs.ConfirmationDialog(
_('You just received a new message from "%s"' % jid),
_('If you close the window, this message will be lost.'))
@ -220,7 +221,7 @@ class TabbedChatWindow(chat.Chat):
message_buffer.set_text('', -1)
def remove_tab(self, jid):
if time.time() - self.last_message_time[jid] < 2:
if time.time() - gajim.last_message_time[self.account][jid] < 2:
dialog = dialogs.ConfirmationDialog(
_('You just received a new message from "%s"' % jid),
_('If you close this tab, the message will be lost.'))