vcl/qt5/QtInstanceComboBox.cxx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-)
New commits: commit 63a93d21d6f0c0312727541978ce0714360b538b Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Oct 30 10:31:06 2024 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Wed Oct 30 12:08:43 2024 +0100 tdf#130857 qt weld: Implement QtInstanceComboBox::set_entry_completion Set a corresponding QCompleter [1] using QComboBox::setCompleter [2]. [1] https://doc.qt.io/qt-6/qcompleter.html [2] https://doc.qt.io/qt-6/qcombobox.html#setCompleter Change-Id: I89cdd8bee676c8a208ffe944ca84225210e842a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175819 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/QtInstanceComboBox.cxx b/vcl/qt5/QtInstanceComboBox.cxx index 3915f2728c4a..20de509f8f49 100644 --- a/vcl/qt5/QtInstanceComboBox.cxx +++ b/vcl/qt5/QtInstanceComboBox.cxx @@ -12,6 +12,7 @@ #include <vcl/qt/QtUtils.hxx> +#include <QtWidgets/QCompleter> #include <QtWidgets/QLineEdit> QtInstanceComboBox::QtInstanceComboBox(QComboBox* pComboBox) @@ -268,9 +269,22 @@ bool QtInstanceComboBox::get_entry_selection_bounds(int& rStartPos, int& rEndPos return bHasSelection; } -void QtInstanceComboBox::set_entry_completion(bool, bool) +void QtInstanceComboBox::set_entry_completion(bool bEnable, bool bCaseSensitive) { - assert(false && "Not implemented yet"); + SolarMutexGuard g; + GetQtInstance().RunInMainThread([&] { + QCompleter* pCompleter = nullptr; + if (bEnable) + { + pCompleter = new QCompleter(m_pComboBox->model(), m_pComboBox); + pCompleter->setCompletionMode(QCompleter::InlineCompletion); + Qt::CaseSensitivity eCaseSensitivity + = bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; + pCompleter->setCaseSensitivity(eCaseSensitivity); + } + + m_pComboBox->setCompleter(pCompleter); + }); } void QtInstanceComboBox::set_entry_placeholder_text(const OUString& rText)