2
0
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:
John Preston
2018-10-30 15:23:54 +04:00
parent 162da089ec
commit 6d65cf2382
10 changed files with 852 additions and 136 deletions

View File

@@ -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);
}