From 6ccc3c0dff1930df3584f955962f439752bbc69b Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Mon, 12 Jul 2010 23:55:22 +0200 Subject: [PATCH] last message on top (and send box on top too) --- weboob/applications/qhavesex/contacts.py | 23 +++++--- .../qhavesex/ui/contact_thread.ui | 52 +++++++++---------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/weboob/applications/qhavesex/contacts.py b/weboob/applications/qhavesex/contacts.py index 8a8dc90f..3567db9a 100644 --- a/weboob/applications/qhavesex/contacts.py +++ b/weboob/applications/qhavesex/contacts.py @@ -32,6 +32,10 @@ from .ui.thread_message_ui import Ui_ThreadMessage from .ui.profile_ui import Ui_Profile class ThreadMessage(QFrame): + """ + This class represents a message in the thread tab. + """ + def __init__(self, message, parent=None): QFrame.__init__(self, parent) self.ui = Ui_ThreadMessage() @@ -48,6 +52,10 @@ class ThreadMessage(QFrame): self.ui.contentLabel.setText(content) class ContactThread(QWidget): + """ + The thread of the selected contact. + """ + def __init__(self, weboob, contact, parent=None): QWidget.__init__(self, parent) self.ui = Ui_ContactThread() @@ -72,15 +80,15 @@ class ContactThread(QWidget): def gotMessage(self, backend, message): if not message: - v = self.ui.scrollArea.verticalScrollBar() - print v.minimum(), v.value(), v.maximum(), v.sliderPosition() - self.ui.scrollArea.verticalScrollBar().setValue(self.ui.scrollArea.verticalScrollBar().maximum()) + #v = self.ui.scrollArea.verticalScrollBar() + #print v.minimum(), v.value(), v.maximum(), v.sliderPosition() + #self.ui.scrollArea.verticalScrollBar().setValue(self.ui.scrollArea.verticalScrollBar().maximum()) self.process_msg = None return widget = ThreadMessage(message) for i, m in enumerate(self.messages): - if widget.date < m.date: + if widget.date > m.date: self.ui.scrollAreaContent.layout().insertWidget(i, widget) self.messages.insert(i, widget) return @@ -92,22 +100,23 @@ class ContactThread(QWidget): text = unicode(self.ui.textEdit.toPlainText()) self.ui.textEdit.setEnabled(False) self.ui.sendButton.setEnabled(False) - self.process_reply = QtDo(self.weboob, self.replyPosted, self.replyNotPosted) + self.process_reply = QtDo(self.weboob, self._postReply_cb, self._postReply_eb) self.process_reply.do_backends(self.contact.backend, 'post_reply', self.contact.id, 0, '', text) - def replyPosted(self, backend, ignored): + def _postReply_cb(self, backend, ignored): self.ui.textEdit.clear() self.ui.textEdit.setEnabled(True) self.ui.sendButton.setEnabled(True) self.refreshMessages() self.process_reply = None - def replyNotPosted(self, backend, error, backtrace): + def _postReply_eb(self, backend, error, backtrace): content = unicode(self.tr('Unable to send message:\n%s\n')) % error if logging.root.level == logging.DEBUG: content += '\n%s\n' % backtrace QMessageBox.critical(self, self.tr('Error while posting reply'), content, QMessageBox.Ok) + self.process_reply = None class ContactProfile(QWidget): def __init__(self, weboob, contact, parent=None): diff --git a/weboob/applications/qhavesex/ui/contact_thread.ui b/weboob/applications/qhavesex/ui/contact_thread.ui index 33a482f3..3e96fbd1 100644 --- a/weboob/applications/qhavesex/ui/contact_thread.ui +++ b/weboob/applications/qhavesex/ui/contact_thread.ui @@ -19,6 +19,32 @@ Qt::Vertical + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + 0 + 0 + + + + Send + + + + + @@ -55,32 +81,6 @@ - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - - - - 0 - 0 - - - - Send - - - - -