mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-08-13 15:03:36 +00:00
Re-run editor search on edits and field focus
This commit is contained in:
@@ -427,6 +427,7 @@ public:
|
||||
void setQueryChangedCallback(Fn<void(const QString &query)> callback);
|
||||
void setSubmittedCallback(Fn<void(Qt::KeyboardModifiers)> callback);
|
||||
void setCancelledCallback(Fn<void()> callback);
|
||||
void setFocusedChangedCallback(Fn<void(bool focused)> callback);
|
||||
|
||||
void addItemInBunch(std::unique_ptr<Item> item);
|
||||
void finishItemsBunch(AddItemWay way);
|
||||
@@ -504,6 +505,7 @@ private:
|
||||
Fn<void(const QString &query)> _queryChangedCallback;
|
||||
Fn<void(Qt::KeyboardModifiers)> _submittedCallback;
|
||||
Fn<void()> _cancelledCallback;
|
||||
Fn<void(bool focused)> _focusedChangedCallback;
|
||||
Fn<void(uint64 itemId)> _itemRemovedCallback;
|
||||
Fn<void(int heightDelta)> _resizedCallback;
|
||||
|
||||
@@ -582,6 +584,10 @@ void MultiSelect::setCancelledCallback(Fn<void()> callback) {
|
||||
_inner->setCancelledCallback(std::move(callback));
|
||||
}
|
||||
|
||||
void MultiSelect::setFocusedChangedCallback(Fn<void(bool focused)> callback) {
|
||||
_inner->setFocusedChangedCallback(std::move(callback));
|
||||
}
|
||||
|
||||
void MultiSelect::setResizedCallback(Fn<void()> callback) {
|
||||
_resizedCallback = std::move(callback);
|
||||
}
|
||||
@@ -662,6 +668,12 @@ MultiSelect::Inner::Inner(
|
||||
) | rpl::filter(rpl::mappers::_1) | rpl::on_next([=] {
|
||||
fieldFocused();
|
||||
}, _field->lifetime());
|
||||
_field->focusedChanges(
|
||||
) | rpl::on_next([=](bool focused) {
|
||||
if (_focusedChangedCallback) {
|
||||
_focusedChangedCallback(focused);
|
||||
}
|
||||
}, _field->lifetime());
|
||||
_field->changes(
|
||||
) | rpl::on_next([=] {
|
||||
queryChanged();
|
||||
@@ -730,6 +742,11 @@ void MultiSelect::Inner::setCancelledCallback(Fn<void()> callback) {
|
||||
_cancelledCallback = std::move(callback);
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::setFocusedChangedCallback(
|
||||
Fn<void(bool focused)> callback) {
|
||||
_focusedChangedCallback = std::move(callback);
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::updateFieldGeometry() {
|
||||
auto fieldFinalWidth = _fieldWidth;
|
||||
if (_cancel->toggled()) {
|
||||
|
||||
Reference in New Issue
Block a user