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)

Reply via email to