mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
parent
0a30c1b1c0
commit
acb91ed731
|
@ -174,13 +174,19 @@ SearchResult ChatHistory::searchBackward(SearchPos startIdx, const QString& phra
|
|||
history->getDateWhereFindPhrase(f.getPublicKey().toString(), earliestMessageDate, phrase,
|
||||
parameter);
|
||||
|
||||
auto loadIdx = history->getNumMessagesForFriendBeforeDate(f.getPublicKey(), dateWherePhraseFound);
|
||||
loadHistoryIntoSessionChatLog(ChatLogIdx(loadIdx));
|
||||
if (dateWherePhraseFound.isValid()) {
|
||||
auto loadIdx = history->getNumMessagesForFriendBeforeDate(f.getPublicKey(), dateWherePhraseFound);
|
||||
loadHistoryIntoSessionChatLog(ChatLogIdx(loadIdx));
|
||||
|
||||
// Reset search pos to the message we just loaded to avoid a double search
|
||||
startIdx.logIdx = ChatLogIdx(loadIdx);
|
||||
startIdx.numMatches = 0;
|
||||
return sessionChatLog.searchBackward(startIdx, phrase, parameter);
|
||||
// Reset search pos to the message we just loaded to avoid a double search
|
||||
startIdx.logIdx = ChatLogIdx(loadIdx);
|
||||
startIdx.numMatches = 0;
|
||||
return sessionChatLog.searchBackward(startIdx, phrase, parameter);
|
||||
}
|
||||
|
||||
SearchResult ret;
|
||||
ret.found = false;
|
||||
return ret;
|
||||
}
|
||||
|
||||
ChatLogIdx ChatHistory::getFirstIdx() const
|
||||
|
|
|
@ -992,7 +992,13 @@ void GenericChatForm::onSearchUp(const QString& phrase, const ParameterSearch& p
|
|||
|
||||
void GenericChatForm::onSearchDown(const QString& phrase, const ParameterSearch& parameter)
|
||||
{
|
||||
auto result = chatLog.searchForward(searchPos, phrase, parameter);
|
||||
auto result = chatLog.searchForward(searchPos, phrase, parameter);
|
||||
|
||||
if (result.found && result.pos.logIdx.get() > messages.end()->first.get()) {
|
||||
const auto dt = chatLog.at(result.pos.logIdx).getTimestamp();
|
||||
loadHistory(dt, LoadHistoryDialog::from);
|
||||
}
|
||||
|
||||
handleSearchResult(result, SearchDirection::Down);
|
||||
}
|
||||
|
||||
|
@ -1014,6 +1020,7 @@ void GenericChatForm::handleSearchResult(SearchResult result, SearchDirection di
|
|||
chatWidget->scrollToLine(msg);
|
||||
|
||||
auto text = qobject_cast<Text*>(msg->getContent(1));
|
||||
text->visibilityChanged(true);
|
||||
text->selectText(result.exp, std::make_pair(result.start, result.len));
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user