include/vcl/weld/ItemView.hxx | 2 ++ include/vcl/weld/TreeView.hxx | 1 - sfx2/inc/charmapcontrol.hxx | 1 - vcl/inc/qt5/QtInstanceItemView.hxx | 2 ++ vcl/inc/qt5/QtInstanceTreeView.hxx | 1 - vcl/inc/salvtables.hxx | 4 ++-- vcl/qt5/QtInstanceItemView.cxx | 13 +++++++++++++ vcl/qt5/QtInstanceTreeView.cxx | 13 ------------- vcl/source/app/salvtables.cxx | 12 ++++++------ vcl/unx/gtk3/gtkinst.cxx | 15 +++++++++++++++ 10 files changed, 40 insertions(+), 24 deletions(-)
New commits: commit 5e9de3ebdc63062062939a1d14b79b36a6d9d551 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Dec 19 14:50:58 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Dec 19 22:52:01 2025 +0100 sfx2: Drop unused include Change-Id: I3391074d879f2e842e77feaefef001d54482e741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195927 Reviewed-by: Simon Chenery <[email protected]> Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/sfx2/inc/charmapcontrol.hxx b/sfx2/inc/charmapcontrol.hxx index 286e3a0684fa..d3e531a52afe 100644 --- a/sfx2/inc/charmapcontrol.hxx +++ b/sfx2/inc/charmapcontrol.hxx @@ -22,7 +22,6 @@ #include <sal/config.h> #include <sfx2/charmapcontainer.hxx> #include <svtools/toolbarmenu.hxx> -#include <deque> class CharmapPopup; commit 9c7dbd7d06c4425df55a849527c001fb8b0f00bb Author: Michael Weghorn <[email protected]> AuthorDate: Fri Dec 19 12:20:34 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Dec 19 22:51:52 2025 +0100 tdf#168594 weld: Add get_iter_index_in_parent for IconView weld::TreeView already has such a method. Move it to the weld::ItemView base class, to make it available for weld::IconView as well. The Qt and vcl TreeView implementations are fine for IconView as well, so just move them to the corresponding base classes. For GTK, add a new GtkInstanceIconView::get_iter_index_in_parent, similar to the existing GtkInstanceTreeView::get_iter_index_in_parent. Change-Id: Ia22ac533b9d72b901eee9d17bdfe76c5738f871e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195891 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/include/vcl/weld/ItemView.hxx b/include/vcl/weld/ItemView.hxx index e7f9e61e1607..2ad2e7c81192 100644 --- a/include/vcl/weld/ItemView.hxx +++ b/include/vcl/weld/ItemView.hxx @@ -35,6 +35,8 @@ public: // set iter to point to next node at the current level virtual bool iter_next_sibling(TreeIter& rIter) const = 0; + virtual int get_iter_index_in_parent(const 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 945192304e8e..572c06d69fd3 100644 --- a/include/vcl/weld/TreeView.hxx +++ b/include/vcl/weld/TreeView.hxx @@ -334,7 +334,6 @@ public: } virtual bool iter_parent(TreeIter& rIter) const = 0; virtual int get_iter_depth(const TreeIter& rIter) const = 0; - virtual int get_iter_index_in_parent(const TreeIter& rIter) const = 0; /* Compares two paths. If a appears before b in a tree, then -1 is returned. If b appears before a , then 1 is returned. If the two nodes are equal, then 0 is returned. diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx b/vcl/inc/qt5/QtInstanceItemView.hxx index b49c61f96a4c..aad7eba1f839 100644 --- a/vcl/inc/qt5/QtInstanceItemView.hxx +++ b/vcl/inc/qt5/QtInstanceItemView.hxx @@ -38,6 +38,8 @@ public: virtual bool get_iter_first(weld::TreeIter& rIter) const override; virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; + virtual int get_iter_index_in_parent(const 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 3ecf6db17fc0..3e9ee8dc5633 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -93,7 +93,6 @@ public: virtual bool iter_children(weld::TreeIter& rIter) const override; virtual bool iter_parent(weld::TreeIter& rIter) const override; virtual int get_iter_depth(const weld::TreeIter& rIter) const override; - virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const override; virtual int iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) const override; virtual bool iter_has_child(const weld::TreeIter& rIter) const override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 94c55a686482..93a22e695ea3 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1511,6 +1511,8 @@ public: virtual bool get_iter_first(weld::TreeIter& rIter) const override; virtual bool iter_next_sibling(weld::TreeIter& rIter) const override; + virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const override; + virtual std::unique_ptr<weld::TreeIter> get_iterator(int nPos) const override; virtual OUString get_selected_id() const override; @@ -1816,8 +1818,6 @@ public: virtual bool is_selected(const weld::TreeIter& rIter) const override; - virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const override; - virtual int iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) const override; virtual void move_subtree(weld::TreeIter& rNode, const weld::TreeIter* pNewParent, diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx index cf5d61efe6c7..1971c310a473 100644 --- a/vcl/qt5/QtInstanceItemView.cxx +++ b/vcl/qt5/QtInstanceItemView.cxx @@ -40,6 +40,19 @@ bool QtInstanceItemView::iter_next_sibling(weld::TreeIter& rIter) const return aSiblingIndex.isValid(); } +int QtInstanceItemView::get_iter_index_in_parent(const weld::TreeIter& rIter) const +{ + SolarMutexGuard g; + + int nIndex; + GetQtInstance().RunInMainThread([&] { + const QModelIndex aIndex = modelIndex(rIter); + nIndex = aIndex.row(); + }); + + return nIndex; +} + 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 c995c694c98a..3eee457463c5 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -450,19 +450,6 @@ int QtInstanceTreeView::get_iter_depth(const weld::TreeIter& rIter) const return nDepth; } -int QtInstanceTreeView::get_iter_index_in_parent(const weld::TreeIter& rIter) const -{ - SolarMutexGuard g; - - int nIndex; - GetQtInstance().RunInMainThread([&] { - const QModelIndex aIndex = modelIndex(rIter); - nIndex = aIndex.row(); - }); - - return nIndex; -} - int QtInstanceTreeView::iter_compare(const weld::TreeIter&, const weld::TreeIter&) const { assert(false && "Not implemented yet"); diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 48ccbc7e112c..c0eb1a29c592 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3538,6 +3538,12 @@ bool SalInstanceItemView::iter_next_sibling(weld::TreeIter& rIter) const return rVclIter.iter != nullptr; } +int SalInstanceItemView::get_iter_index_in_parent(const weld::TreeIter& rIter) const +{ + const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); + return SvTreeList::GetRelPos(rVclIter.iter); +} + std::unique_ptr<weld::TreeIter> SalInstanceItemView::get_iterator(int nPos) const { if (SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry(nPos)) @@ -4833,12 +4839,6 @@ bool SalInstanceTreeView::is_selected(const weld::TreeIter& rIter) const return m_xTreeView->IsSelected(rVclIter.iter); } -int SalInstanceTreeView::get_iter_index_in_parent(const weld::TreeIter& rIter) const -{ - const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); - return SvTreeList::GetRelPos(rVclIter.iter); -} - int SalInstanceTreeView::iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) const { const SalInstanceTreeIter& rVclIterA = static_cast<const SalInstanceTreeIter&>(a); diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 4e27b4d40311..e41143347a09 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -17221,6 +17221,21 @@ public: return gtk_tree_model_iter_next(pModel, &rGtkIter.iter); } + virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const override + { + const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); + + GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL(m_pTreeStore), const_cast<GtkTreeIter*>(&rGtkIter.iter)); + + gint depth; + gint* indices = gtk_tree_path_get_indices_with_depth(path, &depth); + int nRet = indices[depth-1]; + + gtk_tree_path_free(path); + + return nRet; + } + virtual void do_scroll_to_item(const weld::TreeIter& rIter) override { assert(gtk_icon_view_get_model(m_pIconView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze");
