history loading after friend switching. refactoring
This commit is contained in:
parent
98dbe6a493
commit
f1c63bb4e8
15 changed files with 135 additions and 144 deletions
|
@ -1,4 +1,5 @@
|
|||
from history.database import MESSAGE_AUTHOR
|
||||
from ui.messages_widgets import *
|
||||
|
||||
|
||||
MESSAGE_TYPE = {
|
||||
|
@ -21,11 +22,10 @@ class MessageAuthor:
|
|||
|
||||
class Message:
|
||||
|
||||
def __init__(self, message_id, message_type, author, time):
|
||||
def __init__(self, message_type, author, time):
|
||||
self._time = time
|
||||
self._type = message_type
|
||||
self._author = author
|
||||
self._message_id = message_id
|
||||
self._widget = None
|
||||
|
||||
def get_type(self):
|
||||
|
@ -43,19 +43,9 @@ class Message:
|
|||
|
||||
time = property(get_time)
|
||||
|
||||
def get_message_id(self):
|
||||
return self._message_id
|
||||
|
||||
message_id = property(get_message_id)
|
||||
|
||||
def get_type(self):
|
||||
return self._type
|
||||
|
||||
type = property(get_type)
|
||||
|
||||
def get_widget(self):
|
||||
def get_widget(self, *args):
|
||||
if self._widget is None:
|
||||
self._widget = self._create_widget()
|
||||
self._widget = self._create_widget(*args)
|
||||
|
||||
return self._widget
|
||||
|
||||
|
@ -67,7 +57,7 @@ class Message:
|
|||
def mark_as_sent(self):
|
||||
self._author.author_type = MESSAGE_AUTHOR['ME']
|
||||
|
||||
def _create_widget(self):
|
||||
def _create_widget(self, *args):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -76,8 +66,8 @@ class TextMessage(Message):
|
|||
Plain text or action message
|
||||
"""
|
||||
|
||||
def __init__(self, id, message, owner, time, message_type):
|
||||
super().__init__(id, message_type, owner, time)
|
||||
def __init__(self, message, owner, time, message_type):
|
||||
super().__init__(message_type, owner, time)
|
||||
self._message = message
|
||||
|
||||
def get_text(self):
|
||||
|
@ -88,8 +78,20 @@ class TextMessage(Message):
|
|||
def get_data(self):
|
||||
return self._message, self._owner, self._time, self._type
|
||||
|
||||
def _create_widget(self):
|
||||
return
|
||||
def _create_widget(self, *args):
|
||||
return MessageItem(self, *args)
|
||||
|
||||
|
||||
class OutgoingTextMessage(TextMessage):
|
||||
|
||||
def __init__(self, message, owner, time, message_type, tox_message_id):
|
||||
super().__init__(message, owner, time, message_type)
|
||||
self._tox_message_id = tox_message_id
|
||||
|
||||
def get_tox_message_id(self):
|
||||
return self._tox_message_id
|
||||
|
||||
tox_message_id = property(get_tox_message_id)
|
||||
|
||||
|
||||
class GroupChatMessage(TextMessage):
|
||||
|
@ -107,7 +109,7 @@ class TransferMessage(Message):
|
|||
Message with info about file transfer
|
||||
"""
|
||||
|
||||
def __init__(self, id, owner, time, status, size, name, friend_number, file_number):
|
||||
def __init__(self, owner, time, status, size, name, friend_number, file_number):
|
||||
super().__init__(MESSAGE_TYPE['FILE_TRANSFER'], owner, time)
|
||||
self._status = status
|
||||
self._size = size
|
||||
|
|
|
@ -23,7 +23,7 @@ class Messenger(tox_save.ToxSave):
|
|||
|
||||
def _create_message_item(self, text_message):
|
||||
# pixmap = self._contacts_manager.get_curr_contact().get_pixmap()
|
||||
self._items_factory.message_item(text_message)
|
||||
self._items_factory.create_message_item(text_message)
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# Messaging
|
||||
|
@ -38,7 +38,7 @@ class Messenger(tox_save.ToxSave):
|
|||
"""
|
||||
t = util.get_unix_time()
|
||||
friend = self._get_friend_by_number(friend_number)
|
||||
text_message = TextMessage(0, message, MessageAuthor(friend.name, MESSAGE_AUTHOR['FRIEND']), t, message_type)
|
||||
text_message = TextMessage(message, MessageAuthor(friend.name, MESSAGE_AUTHOR['FRIEND']), t, message_type)
|
||||
|
||||
if self._contacts_manager.is_friend_active(friend_number): # add message to list
|
||||
self._create_message_item(text_message)
|
||||
|
@ -80,7 +80,7 @@ class Messenger(tox_save.ToxSave):
|
|||
else:
|
||||
message_id = 0
|
||||
message_author = MessageAuthor(self._profile.name, MESSAGE_AUTHOR['NOT_SENT'])
|
||||
message = TextMessage(message_id, text, message_author, t, message_type)
|
||||
message = OutgoingTextMessage(text, message_author, t, message_type, message_id)
|
||||
friend.append_message(message)
|
||||
if self._contacts_manager.is_friend_active(friend_number):
|
||||
self._create_message_item(message)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue