mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-09-05 08:55:59 +00:00
Redesign languages box with a search filter.
This commit is contained in:
@@ -293,6 +293,10 @@ void MultiSelect::setSubmittedCallback(Fn<void(Qt::KeyboardModifiers)> callback)
|
||||
_inner->setSubmittedCallback(std::move(callback));
|
||||
}
|
||||
|
||||
void MultiSelect::setCancelledCallback(Fn<void()> callback) {
|
||||
_inner->setCancelledCallback(std::move(callback));
|
||||
}
|
||||
|
||||
void MultiSelect::setResizedCallback(Fn<void()> callback) {
|
||||
_resizedCallback = std::move(callback);
|
||||
}
|
||||
@@ -362,6 +366,7 @@ MultiSelect::Inner::Inner(QWidget *parent, const style::MultiSelect &st, Fn<QStr
|
||||
connect(_field, &Ui::InputField::focused, [=] { fieldFocused(); });
|
||||
connect(_field, &Ui::InputField::changed, [=] { queryChanged(); });
|
||||
connect(_field, &Ui::InputField::submitted, this, &Inner::submitted);
|
||||
connect(_field, &Ui::InputField::cancelled, this, &Inner::cancelled);
|
||||
_cancel->setClickedCallback([=] {
|
||||
clearQuery();
|
||||
_field->setFocus();
|
||||
@@ -405,6 +410,10 @@ void MultiSelect::Inner::setSubmittedCallback(
|
||||
_submittedCallback = std::move(callback);
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::setCancelledCallback(Fn<void()> callback) {
|
||||
_cancelledCallback = std::move(callback);
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::updateFieldGeometry() {
|
||||
auto fieldFinalWidth = _fieldWidth;
|
||||
if (_cancel->toggled()) {
|
||||
@@ -570,6 +579,12 @@ void MultiSelect::Inner::submitted(Qt::KeyboardModifiers modifiers) {
|
||||
}
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::cancelled() {
|
||||
if (_cancelledCallback) {
|
||||
_cancelledCallback();
|
||||
}
|
||||
}
|
||||
|
||||
void MultiSelect::Inner::fieldFocused() {
|
||||
setActiveItem(-1, ChangeActiveWay::SkipSetFocus);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user