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:
parent
909deb0feb
commit
38df897e02
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user