1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

fix: scroll bar stuck to bottom (fix #5755)

This commit is contained in:
TriKriSta 2019-08-10 18:46:29 +03:00 committed by Anthony Bilinski
parent 909deb0feb
commit 38df897e02
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
2 changed files with 15 additions and 4 deletions

View File

@ -695,7 +695,7 @@ void GenericChatForm::loadHistoryTo(const QDateTime &time)
}
}
void GenericChatForm::loadHistoryFrom(const QDateTime &time)
bool GenericChatForm::loadHistoryFrom(const QDateTime &time)
{
chatWidget->setScroll(false);
auto begin = ChatLogIdx(0);
@ -707,10 +707,20 @@ void GenericChatForm::loadHistoryFrom(const QDateTime &time)
int add = DEF_NUM_MSG_TO_LOAD;
if (begin.get() + DEF_NUM_MSG_TO_LOAD > chatLog.getNextIdx().get()) {
auto t = chatLog.getNextIdx();
add = chatLog.getNextIdx().get() - begin.get();
}
if (add <= 1) {
chatWidget->setScroll(true);
return false;
}
auto end = ChatLogIdx(begin.get() + add);
renderMessages(begin, end);
return true;
}
void GenericChatForm::removeFirstsMessages(const int num)
@ -1159,8 +1169,9 @@ void GenericChatForm::loadHistoryUpper()
}
auto msg = messages.crbegin()->second;
loadHistoryFrom(QDateTime());
chatWidget->scrollToLine(msg);
if (loadHistoryFrom(QDateTime())) {
chatWidget->scrollToLine(msg);
}
}
void GenericChatForm::updateShowDateInfo(const ChatLine::Ptr& line)

View File

@ -137,7 +137,7 @@ private:
QDateTime getTime(const ChatLine::Ptr& chatLine) const;
void loadHistory(const QDateTime& time, const LoadHistoryDialog::LoadType type);
void loadHistoryTo(const QDateTime& time);
void loadHistoryFrom(const QDateTime& time);
bool loadHistoryFrom(const QDateTime& time);
void removeFirstsMessages(const int num);
void removeLastsMessages(const int num);