Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
norstbox
gajim
Commits
15b44f5e
Commit
15b44f5e
authored
Sep 14, 2006
by
Yann Leboulanger
Browse files
detect and print old gc messages as restored messages. Fixes #2253
parent
e18e1079
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/common/connection_handlers.py
View file @
15b44f5e
...
...
@@ -1387,7 +1387,10 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
# Ignore message from room in which we are not
if
not
self
.
last_history_line
.
has_key
(
jid
):
return
self
.
dispatch
(
'GC_MSG'
,
(
frm
,
msgtxt
,
tim
))
has_timestamp
=
False
if
msg
.
timestamp
:
has_timestamp
=
True
self
.
dispatch
(
'GC_MSG'
,
(
frm
,
msgtxt
,
tim
,
has_timestamp
))
if
self
.
name
not
in
no_log_for
and
not
int
(
float
(
time
.
mktime
(
tim
)))
<=
\
self
.
last_history_line
[
jid
]
and
msgtxt
:
gajim
.
logger
.
write
(
'gc_msg'
,
frm
,
msgtxt
,
tim
=
tim
)
...
...
@@ -1431,7 +1434,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
who
=
str
(
prs
.
getFrom
())
jid_stripped
,
resource
=
gajim
.
get_room_and_nick_from_fjid
(
who
)
self
.
dispatch
(
'GC_MSG'
,
(
jid_stripped
,
_
(
'Nickname not allowed: %s'
)
%
\
resource
,
None
))
resource
,
None
,
False
))
return
jid_stripped
,
resource
=
gajim
.
get_room_and_nick_from_fjid
(
who
)
timestamp
=
None
...
...
src/gajim.py
View file @
15b44f5e
...
...
@@ -893,7 +893,7 @@ class Interface:
def
handle_event_gc_msg
(
self
,
account
,
array
):
# ('GC_MSG', account, (jid, msg, time))
# ('GC_MSG', account, (jid, msg, time
, has_timestamp
))
jids
=
array
[
0
].
split
(
'/'
,
1
)
room_jid
=
jids
[
0
]
gc_control
=
self
.
msg_win_mgr
.
get_control
(
room_jid
,
account
)
...
...
@@ -905,7 +905,7 @@ class Interface:
else
:
# message from someone
nick
=
jids
[
1
]
gc_control
.
on_message
(
nick
,
array
[
1
],
array
[
2
])
gc_control
.
on_message
(
nick
,
array
[
1
],
array
[
2
]
,
array
[
3
]
)
if
self
.
remote_ctrl
:
self
.
remote_ctrl
.
raise_signal
(
'GCMessage'
,
(
account
,
array
))
...
...
src/groupchat_control.py
View file @
15b44f5e
...
...
@@ -430,13 +430,16 @@ class GroupchatControl(ChatControlBase):
childs
[
3
].
set_sensitive
(
False
)
return
menu
def
on_message
(
self
,
nick
,
msg
,
tim
):
def
on_message
(
self
,
nick
,
msg
,
tim
,
has_timestamp
=
False
):
if
not
nick
:
# message from server
self
.
print_conversation
(
msg
,
tim
=
tim
)
else
:
# message from someone
self
.
print_conversation
(
msg
,
nick
,
tim
)
if
has_timestamp
:
self
.
print_old_conversation
(
msg
,
nick
,
tim
)
else
:
self
.
print_conversation
(
msg
,
nick
,
tim
)
def
on_private_message
(
self
,
nick
,
msg
,
tim
):
# Do we have a queue?
...
...
@@ -499,6 +502,21 @@ class GroupchatControl(ChatControlBase):
gc_count_nicknames_colors
=
0
gc_custom_colors
=
{}
def
print_old_conversation
(
self
,
text
,
contact
,
tim
=
None
):
if
isinstance
(
text
,
str
):
text
=
unicode
(
text
,
'utf-8'
)
if
contact
==
self
.
nick
:
# it's us
kind
=
'outgoing'
else
:
kind
=
'incoming'
if
gajim
.
config
.
get
(
'restored_messages_small'
):
small_attr
=
[
'small'
]
else
:
small_attr
=
[]
ChatControlBase
.
print_conversation_line
(
self
,
text
,
kind
,
contact
,
tim
,
small_attr
,
small_attr
+
[
'restored_message'
],
small_attr
+
[
'restored_message'
])
def
print_conversation
(
self
,
text
,
contact
=
''
,
tim
=
None
):
'''Print a line in the conversation:
if contact is set: it's a message from someone or an info message (contact
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment