set message as read when viewing one, and display unread messages in yellow in list

This commit is contained in:
Romain Bignon 2010-10-17 16:24:09 +02:00
commit e64d4fc288

View file

@ -18,7 +18,7 @@
import time import time
import logging import logging
from PyQt4.QtGui import QWidget, QTreeWidgetItem, QListWidgetItem, QMessageBox from PyQt4.QtGui import QWidget, QTreeWidgetItem, QListWidgetItem, QMessageBox, QBrush
from PyQt4.QtCore import SIGNAL, Qt from PyQt4.QtCore import SIGNAL, Qt
from weboob.capabilities.messages import ICapMessages, ICapMessagesPost, Message from weboob.capabilities.messages import ICapMessages, ICapMessagesPost, Message
@ -130,6 +130,10 @@ class MessagesManager(QWidget):
item = QTreeWidgetItem(None, [message.title or '', message.sender or 'Unknown', item = QTreeWidgetItem(None, [message.title or '', message.sender or 'Unknown',
time.strftime('%Y-%m-%d %H:%M:%S', message.date.timetuple())]) time.strftime('%Y-%m-%d %H:%M:%S', message.date.timetuple())])
item.setData(0, Qt.UserRole, message) item.setData(0, Qt.UserRole, message)
if message.flags & message.IS_UNREAD:
item.setForeground(0, QBrush(Qt.darkYellow))
item.setForeground(1, QBrush(Qt.darkYellow))
item.setForeground(2, QBrush(Qt.darkYellow))
top.addChild(item) top.addChild(item)
@ -139,9 +143,9 @@ class MessagesManager(QWidget):
def _messageSelected(self, item, column): def _messageSelected(self, item, column):
message = item.data(0, Qt.UserRole).toPyObject() message = item.data(0, Qt.UserRole).toPyObject()
self.showMessage(message) self.showMessage(message, item)
def showMessage(self, message): def showMessage(self, message, item=None):
backend = self.weboob.get_backend(message.thread.backend) backend = self.weboob.get_backend(message.thread.backend)
if backend.has_caps(ICapMessagesPost): if backend.has_caps(ICapMessagesPost):
self.ui.replyButton.setEnabled(True) self.ui.replyButton.setEnabled(True)
@ -172,6 +176,13 @@ class MessagesManager(QWidget):
"<p>%s</p>" "<p>%s</p>"
% (message.title, str(message.date), message.sender, extra, content)) % (message.title, str(message.date), message.sender, extra, content))
if item and message.flags & message.IS_UNREAD:
backend.set_message_read(message)
message.flags &= ~message.IS_UNREAD
item.setForeground(0, QBrush())
item.setForeground(1, QBrush())
item.setForeground(2, QBrush())
def displayReply(self): def displayReply(self):
self.ui.replyButton.setText(self.tr('Cancel')) self.ui.replyButton.setText(self.tr('Cancel'))
self.ui.replyWidget.show() self.ui.replyWidget.show()