chat view scrollbar locking fix
This commit is contained in:
parent
3ff5158b6f
commit
b2ba83acb1
1 changed files with 6 additions and 2 deletions
|
@ -34,12 +34,15 @@ QTextCursor ChatView::prepareBlock(bool same)
|
|||
|
||||
void ChatView::appendHtml(const QString &html)
|
||||
{
|
||||
bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum();
|
||||
prepareBlock().insertHtml(html);
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
if (atBottom)
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
}
|
||||
|
||||
void ChatView::appendMessage(QString sender, QString message, QColor playerColor, bool playerBold)
|
||||
{
|
||||
bool atBottom = verticalScrollBar()->value() >= verticalScrollBar()->maximum();
|
||||
bool sameSender = (sender == lastSender) && !lastSender.isEmpty();
|
||||
QTextCursor cursor = prepareBlock(sameSender);
|
||||
lastSender = sender;
|
||||
|
@ -120,7 +123,8 @@ void ChatView::appendMessage(QString sender, QString message, QColor playerColor
|
|||
if (!message.isEmpty())
|
||||
cursor.insertText(message);
|
||||
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
if (atBottom)
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
}
|
||||
|
||||
void ChatView::enterEvent(QEvent * /*event*/)
|
||||
|
|
Loading…
Reference in a new issue