diff --git a/lib/utils/filter-combo-box.cpp b/lib/utils/filter-combo-box.cpp index ec8aee14..4d2dd6f6 100644 --- a/lib/utils/filter-combo-box.cpp +++ b/lib/utils/filter-combo-box.cpp @@ -62,6 +62,23 @@ void FilterComboBox::SetFilterBehaviourEnabled(bool value) FilterComboBox::_filteringEnabled = value; } +void FilterComboBox::setCurrentText(const QString &text) +{ + if (_filteringEnabled) { + lineEdit()->setText(text); + } + QComboBox::setCurrentText(text); +} + +void FilterComboBox::setItemText(int index, const QString &text) +{ + QComboBox::setItemText(index, text); + if (_filteringEnabled && index == currentIndex()) { + const QSignalBlocker b(this); + lineEdit()->setText(text); + } +} + void FilterComboBox::focusOutEvent(QFocusEvent *event) { // Reset on invalid selection diff --git a/lib/utils/filter-combo-box.hpp b/lib/utils/filter-combo-box.hpp index 1b090481..d73b72fc 100644 --- a/lib/utils/filter-combo-box.hpp +++ b/lib/utils/filter-combo-box.hpp @@ -14,6 +14,9 @@ public: const QString &placehodler = ""); static void SetFilterBehaviourEnabled(bool); + void setCurrentText(const QString &text); + void setItemText(int index, const QString &text); + protected: void focusOutEvent(QFocusEvent *event) override;