mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Fixed emoji categories in emoji picker from userpic builder.
This commit is contained in:
parent
575221b7be
commit
36190258be
2 changed files with 20 additions and 8 deletions
|
@ -505,10 +505,12 @@ void EmojiListWidget::applyNextSearchQuery() {
|
||||||
}
|
}
|
||||||
_searchResults.clear();
|
_searchResults.clear();
|
||||||
_searchCustomIds.clear();
|
_searchCustomIds.clear();
|
||||||
if (_mode == Mode::EmojiStatus || session().premium()) {
|
if ((_mode == Mode::EmojiStatus)
|
||||||
|
|| (_mode == Mode::UserpicBuilder)
|
||||||
|
|| session().premium()) {
|
||||||
appendPremiumSearchResults();
|
appendPremiumSearchResults();
|
||||||
}
|
}
|
||||||
if (_mode != Mode::EmojiStatus) {
|
if (_mode != Mode::EmojiStatus && _mode != Mode::UserpicBuilder) {
|
||||||
for (const auto emoji : plain) {
|
for (const auto emoji : plain) {
|
||||||
_searchResults.push_back({
|
_searchResults.push_back({
|
||||||
.id = { emoji },
|
.id = { emoji },
|
||||||
|
|
|
@ -157,14 +157,15 @@ private:
|
||||||
not_null<Footer*> footer;
|
not_null<Footer*> footer;
|
||||||
};
|
};
|
||||||
[[nodiscard]] Selector createEmojiList(
|
[[nodiscard]] Selector createEmojiList(
|
||||||
not_null<Ui::ScrollArea*> scroll) const;
|
not_null<Ui::ScrollArea*> scroll);
|
||||||
[[nodiscard]] Selector createStickersList(
|
[[nodiscard]] Selector createStickersList(
|
||||||
not_null<Ui::ScrollArea*> scroll) const;
|
not_null<Ui::ScrollArea*> scroll) const;
|
||||||
|
|
||||||
const not_null<Window::SessionController*> _controller;
|
const not_null<Window::SessionController*> _controller;
|
||||||
base::unique_qptr<Ui::RpWidget> _container;
|
base::unique_qptr<Ui::RpWidget> _container;
|
||||||
|
|
||||||
rpl::variable<std::vector<DocumentId>> _recent;
|
rpl::event_stream<> _recentChanges;
|
||||||
|
std::vector<DocumentId> _lastRecent;
|
||||||
rpl::event_stream<not_null<DocumentData*>> _chosen;
|
rpl::event_stream<not_null<DocumentData*>> _chosen;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -174,8 +175,13 @@ EmojiSelector::EmojiSelector(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
rpl::producer<std::vector<DocumentId>> recent)
|
rpl::producer<std::vector<DocumentId>> recent)
|
||||||
: RpWidget(parent)
|
: RpWidget(parent)
|
||||||
, _controller(controller)
|
, _controller(controller) {
|
||||||
, _recent(std::move(recent)) {
|
std::move(
|
||||||
|
recent
|
||||||
|
) | rpl::start_with_next([=](std::vector<DocumentId> ids) {
|
||||||
|
_lastRecent = std::move(ids);
|
||||||
|
_recentChanges.fire({});
|
||||||
|
}, lifetime());
|
||||||
createSelector(Type::Emoji);
|
createSelector(Type::Emoji);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +190,7 @@ rpl::producer<not_null<DocumentData*>> EmojiSelector::chosen() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
EmojiSelector::Selector EmojiSelector::createEmojiList(
|
EmojiSelector::Selector EmojiSelector::createEmojiList(
|
||||||
not_null<Ui::ScrollArea*> scroll) const {
|
not_null<Ui::ScrollArea*> scroll) {
|
||||||
const auto session = &_controller->session();
|
const auto session = &_controller->session();
|
||||||
const auto manager = &session->data().customEmojiManager();
|
const auto manager = &session->data().customEmojiManager();
|
||||||
const auto tag = Data::CustomEmojiManager::SizeTag::Large;
|
const auto tag = Data::CustomEmojiManager::SizeTag::Large;
|
||||||
|
@ -193,7 +199,7 @@ EmojiSelector::Selector EmojiSelector::createEmojiList(
|
||||||
.mode = ChatHelpers::EmojiListMode::UserpicBuilder,
|
.mode = ChatHelpers::EmojiListMode::UserpicBuilder,
|
||||||
.controller = _controller,
|
.controller = _controller,
|
||||||
.paused = [=] { return true; },
|
.paused = [=] { return true; },
|
||||||
.customRecentList = _recent.current(),
|
.customRecentList = _lastRecent,
|
||||||
.customRecentFactory = [=](DocumentId id, Fn<void()> repaint) {
|
.customRecentFactory = [=](DocumentId id, Fn<void()> repaint) {
|
||||||
return manager->create(id, std::move(repaint), tag);
|
return manager->create(id, std::move(repaint), tag);
|
||||||
},
|
},
|
||||||
|
@ -207,6 +213,10 @@ EmojiSelector::Selector EmojiSelector::createEmojiList(
|
||||||
) | rpl::start_with_next([=](const ChatHelpers::FileChosen &chosen) {
|
) | rpl::start_with_next([=](const ChatHelpers::FileChosen &chosen) {
|
||||||
_chosen.fire_copy(chosen.document);
|
_chosen.fire_copy(chosen.document);
|
||||||
}, list->lifetime());
|
}, list->lifetime());
|
||||||
|
_recentChanges.events(
|
||||||
|
) | rpl::start_with_next([=] {
|
||||||
|
createSelector(Type::Emoji);
|
||||||
|
}, list->lifetime());
|
||||||
return { list, footer };
|
return { list, footer };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue