diff --git a/weboob/frontends/qboobmsg/messages_manager.py b/weboob/frontends/qboobmsg/messages_manager.py index 57e90e82..dded0bb1 100644 --- a/weboob/frontends/qboobmsg/messages_manager.py +++ b/weboob/frontends/qboobmsg/messages_manager.py @@ -81,10 +81,26 @@ class MessagesManager(QWidget): self.ui.backendsList.setEnabled(True) return - item = QTreeWidgetItem(self.ui.messagesTree, [time.strftime('%Y-%m-%d %H:%M:%S', message.get_date().timetuple()), + item = QTreeWidgetItem(None, [time.strftime('%Y-%m-%d %H:%M:%S', message.get_date().timetuple()), message.sender, message.title]) item.setData(0, Qt.UserRole, message) - self.ui.messagesTree.addTopLevelItem(item) + + if not self._insertMessage(self.ui.messagesTree.invisibleRootItem(), item): + self.ui.messagesTree.addTopLevelItem(item) + + def _insertMessage(self, top, item): + top_message = top.data(0, Qt.UserRole).toPyObject() + item_message = item.data(0, Qt.UserRole).toPyObject() + + if top_message and top_message.thread_id == item_message.thread_id and top_message.id == item_message.reply_id: + top.addChild(item) + return True + else: + for i in xrange(top.childCount()): + sub = top.child(i) + if self._insertMessage(sub, item): + return True + return False def _messageSelected(self, item, column): message = item.data(0, Qt.UserRole).toPyObject() diff --git a/weboob/frontends/qboobmsg/ui/messages_manager.ui b/weboob/frontends/qboobmsg/ui/messages_manager.ui index b246706d..51663a18 100644 --- a/weboob/frontends/qboobmsg/ui/messages_manager.ui +++ b/weboob/frontends/qboobmsg/ui/messages_manager.ui @@ -32,6 +32,15 @@ Qt::Vertical + + QAbstractItemView::NoEditTriggers + + + true + + + false + 100