diff --git a/interface/src/ui/ChatWindow.cpp b/interface/src/ui/ChatWindow.cpp index 445aec62c2..fde77334f4 100644 --- a/interface/src/ui/ChatWindow.cpp +++ b/interface/src/ui/ChatWindow.cpp @@ -80,7 +80,7 @@ ChatWindow::ChatWindow(QWidget* parent) : } else { ui->numOnlineLabel->hide(); ui->closeButton->hide(); - ui->usersWidget->hide(); + ui->usersArea->hide(); ui->messagesScrollArea->hide(); ui->messagePlainTextEdit->hide(); connect(&XmppClient::getInstance(), SIGNAL(joinedPublicChatRoom()), this, SLOT(connected())); @@ -208,7 +208,7 @@ void ChatWindow::connected() { ui->connectingToXMPPLabel->hide(); ui->numOnlineLabel->show(); ui->closeButton->show(); - ui->usersWidget->show(); + ui->usersArea->show(); ui->messagesScrollArea->show(); ui->messagePlainTextEdit->show(); ui->messagePlainTextEdit->setFocus(); @@ -248,6 +248,7 @@ void ChatWindow::notificationClicked() { return; } } + Application::processEvents(); scrollToBottom(); } @@ -262,6 +263,8 @@ void ChatWindow::error(QXmppClient::Error error) { } void ChatWindow::participantsChanged() { + bool atBottom = isNearBottom(); + QStringList participants = XmppClient::getInstance().getPublicChatRoom()->participants(); ui->numOnlineLabel->setText(tr("%1 online now:").arg(participants.count())); @@ -288,6 +291,11 @@ void ChatWindow::participantsChanged() { userLabel->installEventFilter(this); ui->usersWidget->layout()->addWidget(userLabel); } + Application::processEvents(); + + if (atBottom) { + scrollToBottom(); + } } void ChatWindow::messageReceived(const QXmppMessage& message) { diff --git a/interface/ui/chatWindow.ui b/interface/ui/chatWindow.ui index 4d223b2665..46ccafd5f8 100644 --- a/interface/ui/chatWindow.ui +++ b/interface/ui/chatWindow.ui @@ -128,19 +128,43 @@ QPushButton:pressed { - - - #usersWidget { - margin-right: 20px; -} + + + + 0 + 0 + + + + 0 + 0 + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 12 + + + + + - - margin-top: 12px; - Qt::ScrollBarAlwaysOff