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");

Reply via email to