mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-08-03 18:49:30 +00:00
Add cache for global media search requests.
This commit is contained in:
@@ -1427,6 +1427,9 @@ void Widget::updateSuggestions(anim::type animated) {
|
||||
controller(),
|
||||
TopPeersContent(&session()),
|
||||
RecentPeersContent(&session()));
|
||||
_suggestions->clearSearchQueryRequests() | rpl::start_with_next([=] {
|
||||
setSearchQuery(QString());
|
||||
}, _suggestions->lifetime());
|
||||
_searchSuggestionsLocked = false;
|
||||
|
||||
rpl::merge(
|
||||
@@ -2934,7 +2937,11 @@ void Widget::updateCancelSearch() {
|
||||
|
||||
QString Widget::validateSearchQuery() {
|
||||
const auto query = currentSearchQuery();
|
||||
if (_searchState.tab == ChatSearchTab::PublicPosts) {
|
||||
if (!_subsectionTopBar
|
||||
&& _suggestions
|
||||
&& _suggestions->consumeSearchQuery(query)) {
|
||||
return QString();
|
||||
} else if (_searchState.tab == ChatSearchTab::PublicPosts) {
|
||||
if (_searchHashOrCashtag == HashOrCashtag::None) {
|
||||
_searchHashOrCashtag = HashOrCashtag::Hashtag;
|
||||
}
|
||||
@@ -3932,9 +3939,18 @@ void Widget::setSearchQuery(const QString &query, int cursorPosition) {
|
||||
}
|
||||
|
||||
bool Widget::cancelSearch(CancelSearchOptions options) {
|
||||
const auto clearingSuggestionsQuery = _suggestions
|
||||
&& _suggestions->consumeSearchQuery(QString());
|
||||
if (clearingSuggestionsQuery) {
|
||||
setSearchQuery(QString());
|
||||
if (!options.forceFullCancel) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
cancelSearchRequest();
|
||||
auto updatedState = _searchState;
|
||||
const auto clearingQuery = !updatedState.query.isEmpty();
|
||||
const auto clearingQuery = clearingSuggestionsQuery
|
||||
|| !updatedState.query.isEmpty();
|
||||
const auto forceFullCancel = options.forceFullCancel;
|
||||
auto clearingInChat = (forceFullCancel || !clearingQuery)
|
||||
&& (updatedState.inChat
|
||||
|
||||
Reference in New Issue
Block a user