include/vcl/weld/IconView.hxx | 2 - include/vcl/weld/ItemView.hxx | 4 +++ include/vcl/weld/TreeView.hxx | 3 -- vcl/inc/qt5/QtInstanceIconView.hxx | 2 - vcl/inc/qt5/QtInstanceItemView.hxx | 3 ++ vcl/inc/qt5/QtInstanceTreeView.hxx | 2 - vcl/inc/salvtables.hxx | 11 ++------- vcl/qt5/QtInstanceIconView.cxx | 12 ---------- vcl/qt5/QtInstanceItemView.cxx | 18 +++++++++++++++ vcl/qt5/QtInstanceTreeView.cxx | 18 --------------- vcl/source/app/salvtables.cxx | 42 ++++++++++++------------------------- 11 files changed, 42 insertions(+), 75 deletions(-)
New commits: commit 453551b80d9a9b80a6c3465f2aef0a913374a3f2 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Dec 19 11:44:13 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Dec 19 22:51:45 2025 +0100 tdf#130857 qt weld: Move get_iter_first, iter_next_sibling to base The QtInstanceTreeView implementation is fine for QtInstancIconView as well, so move it to the common base class. Change-Id: I5806ebcc3858c19b0a57b3263468b67305c34fbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195890 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx b/vcl/inc/qt5/QtInstanceIconView.hxx index aab0ff9fbd25..675c8f458dcb 100644 --- a/vcl/inc/qt5/QtInstanceIconView.hxx +++ b/vcl/inc/qt5/QtInstanceIconView.hxx @@ -60,10 +60,8 @@ public: virtual bool get_selected(weld::TreeIter* pIter) const override; virtual bool get_cursor(weld::TreeIter* pIter) const override; virtual void do_set_cursor(const weld::TreeIter& rIter) override; - virtual bool get_iter_first(weld::TreeIter& rIter) const override; virtual OUString get_id(const weld::TreeIter& rIter) const override; virtual OUString get_text(const weld::TreeIter& rIter) const override; - virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; virtual void do_scroll_to_item(const weld::TreeIter& rIter) override; virtual void selected_foreach(const std::function<bool(weld::TreeIter&)>& func) override; diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx b/vcl/inc/qt5/QtInstanceItemView.hxx index 2c039ddf3cd5..b49c61f96a4c 100644 --- a/vcl/inc/qt5/QtInstanceItemView.hxx +++ b/vcl/inc/qt5/QtInstanceItemView.hxx @@ -35,6 +35,9 @@ public: virtual std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig = nullptr) const override; + virtual bool get_iter_first(weld::TreeIter& rIter) const override; + virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; + virtual std::unique_ptr<weld::TreeIter> get_iterator(int nPos) const override; protected: diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index ec489b1ba480..3ecf6db17fc0 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -87,8 +87,6 @@ public: virtual bool get_selected(weld::TreeIter* pIter) const override; virtual bool get_cursor(weld::TreeIter* pIter) const override; virtual void do_set_cursor(const weld::TreeIter& rIter) override; - virtual bool get_iter_first(weld::TreeIter& rIter) const override; - virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; virtual bool iter_previous_sibling(weld::TreeIter& rIter) const override; virtual bool iter_next(weld::TreeIter& rIter) const override; virtual bool iter_previous(weld::TreeIter& rIter) const override; diff --git a/vcl/qt5/QtInstanceIconView.cxx b/vcl/qt5/QtInstanceIconView.cxx index fc203f0f0c23..ee3ed59d94f8 100644 --- a/vcl/qt5/QtInstanceIconView.cxx +++ b/vcl/qt5/QtInstanceIconView.cxx @@ -228,12 +228,6 @@ void QtInstanceIconView::do_set_cursor(const weld::TreeIter& rIter) }); } -bool QtInstanceIconView::get_iter_first(weld::TreeIter&) const -{ - assert(false && "Not implemented yet"); - return false; -} - OUString QtInstanceIconView::get_id(const weld::TreeIter& rIter) const { SolarMutexGuard g; @@ -263,12 +257,6 @@ OUString QtInstanceIconView::get_text(const weld::TreeIter& rIter) const return sText; } -bool QtInstanceIconView::iter_next_sibling(weld::TreeIter&) const -{ - assert(false && "Not implemented yet"); - return false; -} - void QtInstanceIconView::do_scroll_to_item(const weld::TreeIter& rIter) { SolarMutexGuard g; diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx index 19281ede8438..cf5d61efe6c7 100644 --- a/vcl/qt5/QtInstanceItemView.cxx +++ b/vcl/qt5/QtInstanceItemView.cxx @@ -22,6 +22,24 @@ std::unique_ptr<weld::TreeIter> QtInstanceItemView::make_iterator(const weld::Tr return std::make_unique<QtInstanceTreeIter>(aIndex); } +bool QtInstanceItemView::get_iter_first(weld::TreeIter& rIter) const +{ + QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); + const QModelIndex aIndex = modelIndex(0); + rQtIter.setModelIndex(aIndex); + return aIndex.isValid(); +} + +bool QtInstanceItemView::iter_next_sibling(weld::TreeIter& rIter) const +{ + QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); + const QModelIndex aIndex = rQtIter.modelIndex(); + const QModelIndex aSiblingIndex = m_rModel.sibling(aIndex.row() + 1, 0, aIndex); + rQtIter.setModelIndex(aSiblingIndex); + + return aSiblingIndex.isValid(); +} + std::unique_ptr<weld::TreeIter> QtInstanceItemView::get_iterator(int nPos) const { const QModelIndex aIndex = modelIndex(nPos); diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index 18d6874f18dc..c995c694c98a 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -377,24 +377,6 @@ void QtInstanceTreeView::do_set_cursor(const weld::TreeIter& rIter) GetQtInstance().RunInMainThread([&] { m_pTreeView->setCurrentIndex(modelIndex(rIter)); }); } -bool QtInstanceTreeView::get_iter_first(weld::TreeIter& rIter) const -{ - QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); - const QModelIndex aIndex = modelIndex(0); - rQtIter.setModelIndex(aIndex); - return aIndex.isValid(); -} - -bool QtInstanceTreeView::iter_next_sibling(weld::TreeIter& rIter) const -{ - QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); - const QModelIndex aIndex = rQtIter.modelIndex(); - const QModelIndex aSiblingIndex = m_pModel->sibling(aIndex.row() + 1, 0, aIndex); - rQtIter.setModelIndex(aSiblingIndex); - - return aSiblingIndex.isValid(); -} - bool QtInstanceTreeView::iter_previous_sibling(weld::TreeIter& rIter) const { QtInstanceTreeIter& rQtIter = static_cast<QtInstanceTreeIter&>(rIter); commit f1be33dac3eb6278775b559ad12fbf93f65b5af9 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Dec 19 11:39:27 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Dec 19 22:51:39 2025 +0100 vcl weld: Deduplicate get_iter_first, iter_next_sibling The SalInstanceTreeView and SalInstanceIconView implementations implement the same logic. Unify the implementation in the base class. Change-Id: I146138607c36e73d1df124b5e33667fbc1ed9b30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195889 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index d9a9ab4092e0..94c55a686482 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1508,6 +1508,9 @@ public: virtual std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig = nullptr) const override; + virtual bool get_iter_first(weld::TreeIter& rIter) const override; + virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; + virtual std::unique_ptr<weld::TreeIter> get_iterator(int nPos) const override; virtual OUString get_selected_id() const override; @@ -1750,12 +1753,8 @@ public: virtual void do_set_cursor(const weld::TreeIter& rIter) override; - virtual bool get_iter_first(weld::TreeIter& rIter) const override; - bool get_iter_abs_pos(weld::TreeIter& rIter, int nPos) const; - virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; - virtual bool iter_previous_sibling(weld::TreeIter& rIter) const override; virtual bool iter_next(weld::TreeIter& rIter) const override; @@ -1946,10 +1945,6 @@ public: virtual void do_set_cursor(const weld::TreeIter& rIter) override; - virtual bool get_iter_first(weld::TreeIter& rIter) const override; - - virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; - virtual void do_scroll_to_item(const weld::TreeIter& rIter) override; virtual void selected_foreach(const std::function<bool(weld::TreeIter&)>& func) override; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index f4700b05f106..48ccbc7e112c 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3524,6 +3524,20 @@ SalInstanceItemView::make_iterator(const weld::TreeIter* pOrig) const new SalInstanceTreeIter(static_cast<const SalInstanceTreeIter*>(pOrig))); } +bool SalInstanceItemView::get_iter_first(weld::TreeIter& rIter) const +{ + SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); + rVclIter.iter = m_pTreeListBox->GetEntry(0); + return rVclIter.iter != nullptr; +} + +bool SalInstanceItemView::iter_next_sibling(weld::TreeIter& rIter) const +{ + SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); + rVclIter.iter = rVclIter.iter->NextSibling(); + return rVclIter.iter != nullptr; +} + std::unique_ptr<weld::TreeIter> SalInstanceItemView::get_iterator(int nPos) const { if (SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry(nPos)) @@ -4578,13 +4592,6 @@ void SalInstanceTreeView::do_set_cursor(const weld::TreeIter& rIter) m_xTreeView->SetCurEntry(rVclIter.iter); } -bool SalInstanceTreeView::get_iter_first(weld::TreeIter& rIter) const -{ - SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); - rVclIter.iter = m_xTreeView->GetEntry(0); - return rVclIter.iter != nullptr; -} - bool SalInstanceTreeView::get_iter_abs_pos(weld::TreeIter& rIter, int nAbsPos) const { SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); @@ -4592,13 +4599,6 @@ bool SalInstanceTreeView::get_iter_abs_pos(weld::TreeIter& rIter, int nAbsPos) c return rVclIter.iter != nullptr; } -bool SalInstanceTreeView::iter_next_sibling(weld::TreeIter& rIter) const -{ - SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); - rVclIter.iter = rVclIter.iter->NextSibling(); - return rVclIter.iter != nullptr; -} - bool SalInstanceTreeView::iter_previous_sibling(weld::TreeIter& rIter) const { SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); @@ -5415,20 +5415,6 @@ void SalInstanceIconView::do_set_cursor(const weld::TreeIter& rIter) m_xIconView->SetCurEntry(rVclIter.iter); } -bool SalInstanceIconView::get_iter_first(weld::TreeIter& rIter) const -{ - SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); - rVclIter.iter = m_xIconView->GetEntry(0); - return rVclIter.iter != nullptr; -} - -bool SalInstanceIconView::iter_next_sibling(weld::TreeIter& rIter) const -{ - SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter); - rVclIter.iter = rVclIter.iter->NextSibling(); - return rVclIter.iter != nullptr; -} - void SalInstanceIconView::do_scroll_to_item(const weld::TreeIter& rIter) { assert(m_xIconView->IsUpdateMode() commit 7c166be1140eec68085ce524a238d6649dc43bbd Author: Michael Weghorn <[email protected]> AuthorDate: Fri Dec 19 11:30:27 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Dec 19 22:51:32 2025 +0100 weld: Move get_iter_first and iter_next_sibling to ItemView These purely virtual methods exist in both, weld::TreeView and weld::ItemView. Move to the common base class. Change-Id: Ic7096be586733ae6685c98ef91d249ff71a8f876 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195888 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/include/vcl/weld/IconView.hxx b/include/vcl/weld/IconView.hxx index 1ef8c9aca6cc..fadb1a1dd742 100644 --- a/include/vcl/weld/IconView.hxx +++ b/include/vcl/weld/IconView.hxx @@ -145,10 +145,8 @@ public: enable_notify_events(); } - virtual bool get_iter_first(TreeIter& rIter) const = 0; virtual OUString get_id(const TreeIter& rIter) const = 0; virtual OUString get_text(const TreeIter& rIter) const = 0; - virtual bool iter_next_sibling(TreeIter& rIter) const = 0; void scroll_to_item(const TreeIter& rIter) { diff --git a/include/vcl/weld/ItemView.hxx b/include/vcl/weld/ItemView.hxx index 4d661282ae62..e7f9e61e1607 100644 --- a/include/vcl/weld/ItemView.hxx +++ b/include/vcl/weld/ItemView.hxx @@ -31,6 +31,10 @@ protected: public: virtual std::unique_ptr<TreeIter> make_iterator(const TreeIter* pOrig = nullptr) const = 0; + virtual bool get_iter_first(TreeIter& rIter) const = 0; + // set iter to point to next node at the current level + virtual bool iter_next_sibling(TreeIter& rIter) const = 0; + virtual std::unique_ptr<TreeIter> get_iterator(int nPos) const = 0; virtual OUString get_selected_id() const = 0; diff --git a/include/vcl/weld/TreeView.hxx b/include/vcl/weld/TreeView.hxx index 951a601fc668..945192304e8e 100644 --- a/include/vcl/weld/TreeView.hxx +++ b/include/vcl/weld/TreeView.hxx @@ -311,9 +311,6 @@ public: enable_notify_events(); } - virtual bool get_iter_first(TreeIter& rIter) const = 0; - // set iter to point to next node at the current level - virtual bool iter_next_sibling(TreeIter& rIter) const = 0; // set iter to point to previous node at the current level virtual bool iter_previous_sibling(TreeIter& rIter) const = 0; // set iter to point to next node, depth first, then sibling
