Skip to content

Commit

Permalink
Removed chats filters strip from forward box while search.
Browse files Browse the repository at this point in the history
  • Loading branch information
23rd authored and john-preston committed Dec 23, 2024
1 parent b0b3717 commit a74ee91
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 3 deletions.
7 changes: 7 additions & 0 deletions Telegram/SourceFiles/boxes/peer_list_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ void PeerListBox::createMultiSelect() {
content()->submitted();
});
_select->entity()->setQueryChangedCallback([=](const QString &query) {
if (_customQueryChangedCallback) {
_customQueryChangedCallback(query);
}
searchQueryChanged(query);
});
_select->entity()->setItemRemovedCallback([=](uint64 itemId) {
Expand All @@ -138,6 +141,10 @@ void PeerListBox::createMultiSelect() {
_select->moveToLeft(0, 0);
}

void PeerListBox::appendQueryChangedCallback(Fn<void(QString)> callback) {
_customQueryChangedCallback = std::move(callback);
}

void PeerListBox::setAddedTopScrollSkip(int skip) {
_addedTopScrollSkip = skip;
_scrollBottomFixed = false;
Expand Down
3 changes: 3 additions & 0 deletions Telegram/SourceFiles/boxes/peer_list_box.h
Original file line number Diff line number Diff line change
Expand Up @@ -1137,6 +1137,8 @@ class PeerListBox

void showFinished() override;

void appendQueryChangedCallback(Fn<void(QString)>);

protected:
void prepare() override;
void setInnerFocus() override;
Expand Down Expand Up @@ -1174,6 +1176,7 @@ class PeerListBox
object_ptr<Ui::SlideWrap<Ui::MultiSelect>> _select = { nullptr };

const std::shared_ptr<Main::SessionShow> _show;
Fn<void(QString)> _customQueryChangedCallback;
std::unique_ptr<PeerListController> _controller;
Fn<void(PeerListBox*)> _init;
bool _scrollBottomFixed = false;
Expand Down
22 changes: 19 additions & 3 deletions Telegram/SourceFiles/window/window_peer_menu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2234,13 +2234,29 @@ QPointer<Ui::BoxContent> ShowForwardMessagesBox(
auto init = [=](not_null<ListBox*> box) {
controllerRaw->setSearchNoResultsText(
tr::lng_bot_chats_not_found(tr::now));
const auto lastFilterId = box->lifetime().make_state<FilterId>(0);
const auto chatsFilters = Ui::AddChatFiltersTabsStrip(
box,
session,
[=](FilterId id) { applyFilter(box, id); });
[=](FilterId id) {
*lastFilterId = id;
applyFilter(box, id);
});
chatsFilters->lower();
chatsFilters->heightValue() | rpl::start_with_next([box](int h) {
box->setAddedTopScrollSkip(h);
rpl::combine(
chatsFilters->heightValue(),
rpl::producer<bool>([=](auto consumer) {
auto lifetime = rpl::lifetime();
consumer.put_next(false);
box->appendQueryChangedCallback([=](const QString &q) {
const auto hasQuery = !q.isEmpty();
applyFilter(box, hasQuery ? 0 : (*lastFilterId));
consumer.put_next_copy(hasQuery);
});
return lifetime;
})
) | rpl::start_with_next([box](int h, bool hasQuery) {
box->setAddedTopScrollSkip(hasQuery ? 0 : h);
}, box->lifetime());
box->multiSelectHeightValue() | rpl::start_with_next([=](int h) {
chatsFilters->moveToLeft(0, h);
Expand Down

0 comments on commit a74ee91

Please sign in to comment.