last message on top (and send box on top too)
This commit is contained in:
parent
2377824691
commit
6ccc3c0dff
2 changed files with 42 additions and 33 deletions
|
|
@ -32,6 +32,10 @@ from .ui.thread_message_ui import Ui_ThreadMessage
|
||||||
from .ui.profile_ui import Ui_Profile
|
from .ui.profile_ui import Ui_Profile
|
||||||
|
|
||||||
class ThreadMessage(QFrame):
|
class ThreadMessage(QFrame):
|
||||||
|
"""
|
||||||
|
This class represents a message in the thread tab.
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, message, parent=None):
|
def __init__(self, message, parent=None):
|
||||||
QFrame.__init__(self, parent)
|
QFrame.__init__(self, parent)
|
||||||
self.ui = Ui_ThreadMessage()
|
self.ui = Ui_ThreadMessage()
|
||||||
|
|
@ -48,6 +52,10 @@ class ThreadMessage(QFrame):
|
||||||
self.ui.contentLabel.setText(content)
|
self.ui.contentLabel.setText(content)
|
||||||
|
|
||||||
class ContactThread(QWidget):
|
class ContactThread(QWidget):
|
||||||
|
"""
|
||||||
|
The thread of the selected contact.
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, weboob, contact, parent=None):
|
def __init__(self, weboob, contact, parent=None):
|
||||||
QWidget.__init__(self, parent)
|
QWidget.__init__(self, parent)
|
||||||
self.ui = Ui_ContactThread()
|
self.ui = Ui_ContactThread()
|
||||||
|
|
@ -72,15 +80,15 @@ class ContactThread(QWidget):
|
||||||
|
|
||||||
def gotMessage(self, backend, message):
|
def gotMessage(self, backend, message):
|
||||||
if not message:
|
if not message:
|
||||||
v = self.ui.scrollArea.verticalScrollBar()
|
#v = self.ui.scrollArea.verticalScrollBar()
|
||||||
print v.minimum(), v.value(), v.maximum(), v.sliderPosition()
|
#print v.minimum(), v.value(), v.maximum(), v.sliderPosition()
|
||||||
self.ui.scrollArea.verticalScrollBar().setValue(self.ui.scrollArea.verticalScrollBar().maximum())
|
#self.ui.scrollArea.verticalScrollBar().setValue(self.ui.scrollArea.verticalScrollBar().maximum())
|
||||||
self.process_msg = None
|
self.process_msg = None
|
||||||
return
|
return
|
||||||
|
|
||||||
widget = ThreadMessage(message)
|
widget = ThreadMessage(message)
|
||||||
for i, m in enumerate(self.messages):
|
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.ui.scrollAreaContent.layout().insertWidget(i, widget)
|
||||||
self.messages.insert(i, widget)
|
self.messages.insert(i, widget)
|
||||||
return
|
return
|
||||||
|
|
@ -92,22 +100,23 @@ class ContactThread(QWidget):
|
||||||
text = unicode(self.ui.textEdit.toPlainText())
|
text = unicode(self.ui.textEdit.toPlainText())
|
||||||
self.ui.textEdit.setEnabled(False)
|
self.ui.textEdit.setEnabled(False)
|
||||||
self.ui.sendButton.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)
|
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.clear()
|
||||||
self.ui.textEdit.setEnabled(True)
|
self.ui.textEdit.setEnabled(True)
|
||||||
self.ui.sendButton.setEnabled(True)
|
self.ui.sendButton.setEnabled(True)
|
||||||
self.refreshMessages()
|
self.refreshMessages()
|
||||||
self.process_reply = None
|
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
|
content = unicode(self.tr('Unable to send message:\n%s\n')) % error
|
||||||
if logging.root.level == logging.DEBUG:
|
if logging.root.level == logging.DEBUG:
|
||||||
content += '\n%s\n' % backtrace
|
content += '\n%s\n' % backtrace
|
||||||
QMessageBox.critical(self, self.tr('Error while posting reply'),
|
QMessageBox.critical(self, self.tr('Error while posting reply'),
|
||||||
content, QMessageBox.Ok)
|
content, QMessageBox.Ok)
|
||||||
|
self.process_reply = None
|
||||||
|
|
||||||
class ContactProfile(QWidget):
|
class ContactProfile(QWidget):
|
||||||
def __init__(self, weboob, contact, parent=None):
|
def __init__(self, weboob, contact, parent=None):
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,32 @@
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<widget class="QFrame" name="frame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QTextEdit" name="textEdit"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="sendButton">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Send</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
<widget class="QScrollArea" name="scrollArea">
|
<widget class="QScrollArea" name="scrollArea">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
|
@ -55,32 +81,6 @@
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QFrame" name="frame">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QTextEdit" name="textEdit"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="sendButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Send</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue