vcl/inc/qt5/QtInstanceTreeView.hxx | 2 +- vcl/qt5/QtInstanceTreeView.cxx | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-)
New commits: commit 05c8f91d5abf79f3591b5979ae01a17f2b153880 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Nov 30 02:17:21 2024 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Nov 30 09:41:05 2024 +0100 tdf#130857 qt weld: Implement more TreeView methods wrt selection Change-Id: I3479b138a0986f1fbac7745e575e318bf63c1911 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177576 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index 04cb4ae87337..a344c365a7c4 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -41,7 +41,7 @@ public: virtual int get_selected_index() const override; virtual void select(int nPos) override; - virtual void unselect(int pos) override; + virtual void unselect(int nPos) override; virtual void remove(int pos) override; virtual OUString get_text(int nRow, int nCol = -1) const override; virtual void set_text(int row, const OUString& rText, int col = -1) override; diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index 451987aaba1c..4211307c36da 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -113,8 +113,18 @@ void QtInstanceTreeView::set_clicks_to_toggle(int) { assert(false && "Not implem int QtInstanceTreeView::get_selected_index() const { - assert(false && "Not implemented yet"); - return -1; + SolarMutexGuard g; + + int nIndex = -1; + GetQtInstance().RunInMainThread([&] { + const QModelIndexList aSelectedIndexes = m_pSelectionModel->selectedIndexes(); + if (aSelectedIndexes.empty()) + return; + + nIndex = aSelectedIndexes.first().row(); + }); + + return nIndex; } void QtInstanceTreeView::select(int nPos) @@ -124,7 +134,13 @@ void QtInstanceTreeView::select(int nPos) [&] { m_pSelectionModel->select(m_pModel->index(nPos, 0), QItemSelectionModel::Select); }); } -void QtInstanceTreeView::unselect(int) { assert(false && "Not implemented yet"); } +void QtInstanceTreeView::unselect(int nPos) +{ + SolarMutexGuard g; + GetQtInstance().RunInMainThread([&] { + m_pSelectionModel->select(m_pModel->index(nPos, 0), QItemSelectionModel::Deselect); + }); +} void QtInstanceTreeView::remove(int) { assert(false && "Not implemented yet"); }