load history part #1
This commit is contained in:
parent
d557c7cf8f
commit
1315017fcc
3 changed files with 33 additions and 8 deletions
|
@ -211,6 +211,12 @@ class MainWindow(QtGui.QMainWindow):
|
|||
def setup_right_center(self, widget):
|
||||
self.messages = QtGui.QListWidget(widget)
|
||||
self.messages.setGeometry(0, 0, 620, 250)
|
||||
|
||||
def load(pos):
|
||||
if not pos:
|
||||
self.profile.load_history()
|
||||
self.messages.verticalScrollBar().setValue(1)
|
||||
self.messages.verticalScrollBar().valueChanged.connect(load)
|
||||
self.messages.setVerticalScrollMode(QtGui.QAbstractItemView.ScrollPerPixel)
|
||||
|
||||
def initUI(self, tox):
|
||||
|
|
|
@ -217,6 +217,7 @@ class Friend(Contact):
|
|||
def load_corr(self, first_time=True):
|
||||
"""
|
||||
:param first_time: friend became active, load first part of messages
|
||||
:return: list ol loaded messages
|
||||
"""
|
||||
if (first_time and self._history_loaded) or (not hasattr(self, '_message_getter')):
|
||||
return
|
||||
|
@ -224,9 +225,10 @@ class Friend(Contact):
|
|||
if data is not None and len(data):
|
||||
data.reverse()
|
||||
else:
|
||||
return
|
||||
return []
|
||||
self._corr = data + self._corr
|
||||
self._history_loaded = True
|
||||
return data
|
||||
|
||||
def get_corr_for_saving(self):
|
||||
"""
|
||||
|
@ -454,6 +456,7 @@ class Profile(Contact, Singleton):
|
|||
self._screen.account_avatar.repaint()
|
||||
except: # no friend found. ignore
|
||||
log('Incorrect friend value: ' + str(value))
|
||||
raise
|
||||
|
||||
active_friend = property(get_active, set_active)
|
||||
|
||||
|
@ -568,6 +571,21 @@ class Profile(Contact, Singleton):
|
|||
self._messages.clear()
|
||||
self._messages.repaint()
|
||||
|
||||
def load_history(self):
|
||||
"""
|
||||
Tries to load next part of messages
|
||||
"""
|
||||
friend = self._friends[self._active_friend]
|
||||
data = friend.load_corr(False)
|
||||
if not data:
|
||||
return
|
||||
for message in data:
|
||||
self.create_message_item(message[0],
|
||||
convert_time(message[2]),
|
||||
friend.name if message[1] else self._name,
|
||||
message[3],
|
||||
False)
|
||||
|
||||
def export_history(self, directory):
|
||||
self._history.export(directory)
|
||||
|
||||
|
@ -587,12 +605,15 @@ class Profile(Contact, Singleton):
|
|||
self._screen.friends_list.setItemWidget(elem, item)
|
||||
return item
|
||||
|
||||
def create_message_item(self, text, time, name, message_type):
|
||||
def create_message_item(self, text, time, name, message_type, append=True):
|
||||
item = MessageItem(text, time, name, message_type, self._messages)
|
||||
elem = QtGui.QListWidgetItem(self._messages)
|
||||
elem.setSizeHint(QtCore.QSize(600, item.getHeight()))
|
||||
self._messages.addItem(elem)
|
||||
self._messages.setItemWidget(elem, item)
|
||||
if append:
|
||||
self._messages.addItem(elem)
|
||||
else:
|
||||
self._messages.insertItem(3, elem)
|
||||
self._messages.repaint()
|
||||
|
||||
def create_file_transfer_item(self, file_name, size, friend_number, file_number, show_accept):
|
||||
|
|
|
@ -1259,10 +1259,8 @@ QListWidget QListWidgetItem:selected
|
|||
|
||||
#friends_list:item:selected
|
||||
{
|
||||
background-color: #A9A9A9;
|
||||
border: 2px solid;
|
||||
background-color: transparent;
|
||||
border-color: green;
|
||||
}
|
||||
|
||||
#toxygen
|
||||
{
|
||||
color: #006400;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue