vcl/inc/qt5/QtInstanceTreeView.hxx |    3 +++
 vcl/qt5/QtInstanceTreeView.cxx     |   24 ++++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

New commits:
commit 32642136ad7ba0426f71d335730a3afe02524215
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Nov 28 23:21:47 2024 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Nov 29 12:03:59 2024 +0100

    tdf#130857 qt weld: Implement QtInstanceTreeView::set_selection_mode
    
    Change-Id: I1b41a57ccdda4cdbd8a3a8ab3dbde495a51df80e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177508
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index 594168acc5bf..5cd107dc4862 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -180,6 +180,9 @@ public:
 
     using QtInstanceWidget::set_sensitive;
     using QtInstanceWidget::get_sensitive;
+
+private:
+    static QAbstractItemView::SelectionMode mapSelectionMode(SelectionMode 
eMode);
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index d462def967f6..7cda3a3694ad 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -515,9 +515,11 @@ void QtInstanceTreeView::set_column_title(int, const 
OUString&)
     assert(false && "Not implemented yet");
 }
 
-void QtInstanceTreeView::set_selection_mode(SelectionMode)
+void QtInstanceTreeView::set_selection_mode(SelectionMode eMode)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+    GetQtInstance().RunInMainThread(
+        [&] { m_pTreeView->setSelectionMode(mapSelectionMode(eMode)); });
 }
 
 int QtInstanceTreeView::count_selected_rows() const
@@ -569,4 +571,22 @@ weld::TreeView* QtInstanceTreeView::get_drag_source() const
     return nullptr;
 }
 
+QAbstractItemView::SelectionMode 
QtInstanceTreeView::mapSelectionMode(SelectionMode eMode)
+{
+    switch (eMode)
+    {
+        case SelectionMode::NONE:
+            return QAbstractItemView::NoSelection;
+        case SelectionMode::Single:
+            return QAbstractItemView::SingleSelection;
+        case SelectionMode::Range:
+            return QAbstractItemView::ContiguousSelection;
+        case SelectionMode::Multiple:
+            return QAbstractItemView::ExtendedSelection;
+        default:
+            assert(false && "unhandled selection mode");
+            return QAbstractItemView::SingleSelection;
+    }
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */

Reply via email to