Search sticker sets locally by short name.

This commit is contained in:
John Preston 2018-03-08 14:37:01 +03:00
parent cba12980f9
commit 5404dfef08
2 changed files with 15 additions and 1 deletions

View File

@ -146,12 +146,14 @@ StickersListWidget::Set::Set(
uint64 id, uint64 id,
MTPDstickerSet::Flags flags, MTPDstickerSet::Flags flags,
const QString &title, const QString &title,
const QString &shortName,
bool externalLayout, bool externalLayout,
int count, int count,
const Stickers::Pack &pack) const Stickers::Pack &pack)
: id(id) : id(id)
, flags(flags) , flags(flags)
, title(title) , title(title)
, shortName(shortName)
, pack(pack) , pack(pack)
, externalLayout(externalLayout) , externalLayout(externalLayout)
, count(count) { , count(count) {
@ -987,6 +989,7 @@ void StickersListWidget::addSearchRow(not_null<const Stickers::Set*> set) {
set->id, set->id,
set->flags, set->flags,
set->title, set->title,
set->shortName,
!SetInMyList(set->flags), !SetInMyList(set->flags),
set->count, set->count,
set->stickers.empty() ? set->covers : set->stickers)); set->stickers.empty() ? set->covers : set->stickers));
@ -1708,7 +1711,7 @@ void StickersListWidget::refreshSearchSets() {
void StickersListWidget::refreshSearchIndex() { void StickersListWidget::refreshSearchIndex() {
_searchIndex.clear(); _searchIndex.clear();
for (const auto &set : _mySets) { for (const auto &set : _mySets) {
const auto list = TextUtilities::PrepareSearchWords(set.title); const auto list = TextUtilities::PrepareSearchWords(set.title + ' ' + set.shortName);
_searchIndex.emplace_back(set.id, list); _searchIndex.emplace_back(set.id, list);
} }
} }
@ -1790,6 +1793,7 @@ void StickersListWidget::appendSet(
it->id, it->id,
it->flags, it->flags,
it->title, it->title,
it->shortName,
externalLayout, externalLayout,
it->count, it->count,
it->stickers)); it->stickers));
@ -1862,12 +1866,14 @@ void StickersListWidget::refreshRecentStickers(bool performResize) {
}); });
if (!recentPack.empty()) { if (!recentPack.empty()) {
if (recentIt == _mySets.end()) { if (recentIt == _mySets.end()) {
const auto shortName = QString();
const auto externalLayout = false; const auto externalLayout = false;
_mySets.push_back(Set( _mySets.push_back(Set(
Stickers::RecentSetId, Stickers::RecentSetId,
(MTPDstickerSet::Flag::f_official (MTPDstickerSet::Flag::f_official
| MTPDstickerSet_ClientFlag::f_special), | MTPDstickerSet_ClientFlag::f_special),
lang(lng_recent_stickers), lang(lng_recent_stickers),
shortName,
externalLayout, externalLayout,
recentPack.size(), recentPack.size(),
recentPack)); recentPack));
@ -1892,11 +1898,13 @@ void StickersListWidget::refreshFavedStickers() {
return; return;
} }
const auto externalLayout = false; const auto externalLayout = false;
const auto shortName = QString();
_mySets.push_back(Set( _mySets.push_back(Set(
Stickers::FavedSetId, Stickers::FavedSetId,
(MTPDstickerSet::Flag::f_official (MTPDstickerSet::Flag::f_official
| MTPDstickerSet_ClientFlag::f_special), | MTPDstickerSet_ClientFlag::f_special),
Lang::Hard::FavedSetTitle(), Lang::Hard::FavedSetTitle(),
shortName,
externalLayout, externalLayout,
it->count, it->count,
it->stickers)); it->stickers));
@ -1915,12 +1923,14 @@ void StickersListWidget::refreshMegagroupStickers(GroupStickersPlace place) {
if (canEdit) { if (canEdit) {
auto hidden = Auth().settings().isGroupStickersSectionHidden(_megagroupSet->id); auto hidden = Auth().settings().isGroupStickersSectionHidden(_megagroupSet->id);
if (isShownHere(hidden)) { if (isShownHere(hidden)) {
const auto shortName = QString();
const auto externalLayout = false; const auto externalLayout = false;
const auto count = 0; const auto count = 0;
_mySets.push_back(Set( _mySets.push_back(Set(
Stickers::MegagroupSetId, Stickers::MegagroupSetId,
MTPDstickerSet_ClientFlag::f_special | 0, MTPDstickerSet_ClientFlag::f_special | 0,
lang(lng_group_stickers), lang(lng_group_stickers),
QString(),
externalLayout, externalLayout,
count)); count));
} }
@ -1948,11 +1958,13 @@ void StickersListWidget::refreshMegagroupStickers(GroupStickersPlace place) {
if (isInstalled && !canEdit) { if (isInstalled && !canEdit) {
removeHiddenForGroup(); removeHiddenForGroup();
} else if (isShownHere(hidden)) { } else if (isShownHere(hidden)) {
const auto shortName = QString();
const auto externalLayout = false; const auto externalLayout = false;
_mySets.push_back(Set( _mySets.push_back(Set(
Stickers::MegagroupSetId, Stickers::MegagroupSetId,
MTPDstickerSet_ClientFlag::f_special | 0, MTPDstickerSet_ClientFlag::f_special | 0,
lang(lng_group_stickers), lang(lng_group_stickers),
shortName,
externalLayout, externalLayout,
it->count, it->count,
it->stickers)); it->stickers));

View File

@ -141,6 +141,7 @@ private:
uint64 id, uint64 id,
MTPDstickerSet::Flags flags, MTPDstickerSet::Flags flags,
const QString &title, const QString &title,
const QString &shortName,
bool externalLayout, bool externalLayout,
int count, int count,
const Stickers::Pack &pack = Stickers::Pack()); const Stickers::Pack &pack = Stickers::Pack());
@ -151,6 +152,7 @@ private:
uint64 id = 0; uint64 id = 0;
MTPDstickerSet::Flags flags = MTPDstickerSet::Flags(); MTPDstickerSet::Flags flags = MTPDstickerSet::Flags();
QString title; QString title;
QString shortName;
Stickers::Pack pack; Stickers::Pack pack;
std::unique_ptr<Ui::RippleAnimation> ripple; std::unique_ptr<Ui::RippleAnimation> ripple;
bool externalLayout = false; bool externalLayout = false;