include/vcl/weld/TreeView.hxx        |   14 ++++++--------
 vcl/inc/jsdialog/jsdialogbuilder.hxx |    2 +-
 vcl/inc/qt5/QtInstanceTreeView.hxx   |    2 --
 vcl/inc/salvtables.hxx               |    4 ----
 vcl/jsdialog/jsdialogbuilder.cxx     |    6 ------
 vcl/qt5/QtInstanceTreeView.cxx       |   10 ----------
 vcl/source/app/salvtables.cxx        |   12 ------------
 vcl/source/weld/TreeView.cxx         |   14 ++++++++++++++
 vcl/unx/gtk3/gtkinst.cxx             |   34 ----------------------------------
 9 files changed, 21 insertions(+), 77 deletions(-)

New commits:
commit d00510cda799ee53634063468035208124b1dae0
Author:     Michael Weghorn <[email protected]>
AuthorDate: Mon Dec 22 20:15:29 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Dec 23 10:11:37 2025 +0100

    weld: Deduplicate TreeView::set_text implementations
    
    The variant taking an int param can be implemented using
    the variant taking a GtkTreeIter param.
    
    Do so once in the abstract weld::TreeView base class, and drop
    the toolkit-specific implementations.
    
    Also move the method declarations of both methods
    next to each other, so one comment can describe both
    of them.
    
    Change-Id: I0943348b851ab74010b3cac1747bb9a3930dd2c1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196130
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/weld/TreeView.hxx b/include/vcl/weld/TreeView.hxx
index 7cb3c517ec13..dd47d96f3b24 100644
--- a/include/vcl/weld/TreeView.hxx
+++ b/include/vcl/weld/TreeView.hxx
@@ -228,7 +228,9 @@ public:
     virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0;
 
     // col index -1 sets the first text column
-    virtual void set_text(int row, const OUString& rText, int col = -1) = 0;
+    void set_text(int row, const OUString& rText, int col = -1);
+    virtual void set_text(const TreeIter& rIter, const OUString& rStr, int col 
= -1) = 0;
+
     // col index -1 sets all columns
     virtual void set_sensitive(int row, bool bSensitive, int col = -1) = 0;
     virtual bool get_sensitive(int row, int col) const = 0;
@@ -327,8 +329,6 @@ public:
 
     //visually indent this row as if it was at get_iter_depth() + nIndentLevel
     virtual void set_extra_row_indent(const TreeIter& rIter, int nIndentLevel) 
= 0;
-    // col index -1 sets the first text column
-    virtual void set_text(const TreeIter& rIter, const OUString& rStr, int col 
= -1) = 0;
     // col index -1 sets all columns
     virtual void set_sensitive(const TreeIter& rIter, bool bSensitive, int col 
= -1) = 0;
     virtual bool get_sensitive(const TreeIter& rIter, int col) const = 0;
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx 
b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 10d9afc28f2a..3609b74a8142 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -735,7 +735,7 @@ public:
                            VirtualDevice* pImageSurface, bool 
bChildrenOnDemand,
                            weld::TreeIter* pRet) override;
 
-    virtual void set_text(int row, const OUString& rText, int col = -1) 
override;
+    using weld::TreeView::set_text;
     virtual void set_text(const weld::TreeIter& rIter, const OUString& rStr, 
int col = -1) override;
 
     virtual void expand_row(const weld::TreeIter& rIter) override;
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index 74ce91f750d5..4b2b67d6997a 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -52,7 +52,6 @@ public:
 
     virtual void set_clicks_to_toggle(int nToggleBehavior) override;
 
-    virtual void set_text(int nRow, const OUString& rText, int nCol = -1) 
override;
     virtual void set_sensitive(int nRow, bool bSensitive, int nCol = -1) 
override;
     virtual bool get_sensitive(int nRow, int nCol) const override;
     virtual void set_toggle(int nRow, TriState eState, int nCol = -1) override;
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 6c9b46242857..7f609bc1ff37 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1676,8 +1676,6 @@ public:
 
     void set_text(SvTreeListEntry* pEntry, const OUString& rText, int col);
 
-    virtual void set_text(int pos, const OUString& rText, int col = -1) 
override;
-
     using SalInstanceWidget::set_sensitive;
     using SalInstanceWidget::get_sensitive;
 
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index c7eee27eb83a..3a20e671ea84 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1778,12 +1778,6 @@ void JSTreeView::do_insert(const weld::TreeIter* 
pParent, int pos, const OUStrin
     sendUpdate();
 }
 
-void JSTreeView::set_text(int row, const OUString& rText, int col)
-{
-    SalInstanceTreeView::set_text(row, rText, col);
-    sendUpdate();
-}
-
 void JSTreeView::set_text(const weld::TreeIter& rIter, const OUString& rStr, 
int col)
 {
     SalInstanceTreeView::set_text(rIter, rStr, col);
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index c0338a6f24cb..8f020c09cd28 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -109,11 +109,6 @@ void 
QtInstanceTreeView::enable_toggle_buttons(weld::ColumnToggleType)
 
 void QtInstanceTreeView::set_clicks_to_toggle(int) { assert(false && "Not 
implemented yet"); }
 
-void QtInstanceTreeView::set_text(int nRow, const OUString& rText, int nCol)
-{
-    set_text(treeIter(nRow), rText, nCol);
-}
-
 void QtInstanceTreeView::set_sensitive(int nRow, bool bSensitive, int nCol)
 {
     set_sensitive(treeIter(nRow), bSensitive, nCol);
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 6f5e3b89ed32..fca8710d2a7c 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4281,12 +4281,6 @@ void SalInstanceTreeView::set_text(SvTreeListEntry* 
pEntry, const OUString& rTex
     InvalidateModelEntry(pEntry);
 }
 
-void SalInstanceTreeView::set_text(int pos, const OUString& rText, int col)
-{
-    SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
-    set_text(pEntry, rText, col);
-}
-
 void SalInstanceTreeView::set_sensitive(SvTreeListEntry* pEntry, bool 
bSensitive, int col)
 {
     if (col == -1)
diff --git a/vcl/source/weld/TreeView.cxx b/vcl/source/weld/TreeView.cxx
index b1960c0a5635..9c6bf5f3e692 100644
--- a/vcl/source/weld/TreeView.cxx
+++ b/vcl/source/weld/TreeView.cxx
@@ -26,6 +26,12 @@ OUString weld::TreeView::get_text(int row, int col) const
 
     return OUString();
 }
+
+void weld::TreeView::set_text(int row, const OUString& rText, int col)
+{
+    if (std::unique_ptr<weld::TreeIter> pIter = get_iterator(row))
+        set_text(*pIter, rText, col);
+}
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 5c666626d299..80a0a6d8c4f8 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -14146,13 +14146,6 @@ private:
         m_Setter(m_pTreeModel, const_cast<GtkTreeIter*>(&iter), col, 
aStr.getStr(), -1);
     }
 
-    void set(int pos, int col, std::u16string_view rText)
-    {
-        GtkTreeIter iter;
-        if (gtk_tree_model_iter_nth_child(m_pTreeModel, &iter, nullptr, pos))
-            set(iter, col, rText);
-    }
-
     void set(const GtkTreeIter& iter, int col, bool bOn)
     {
         m_Setter(m_pTreeModel, const_cast<GtkTreeIter*>(&iter), col, 
promote_arg(bOn), -1);
@@ -15351,15 +15344,6 @@ public:
         return 
gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(m_pTreeView), 
const_cast<GtkTreeIter*>(&rGtkIter.iter));
     }
 
-    virtual void set_text(int pos, const OUString& rText, int col) override
-    {
-        if (col == -1)
-            col = m_nTextCol;
-        else
-            col = to_internal_model(col);
-        set(pos, col, rText);
-    }
-
     virtual TriState get_toggle(int pos, int col) const override
     {
         if (col == -1)
commit 58005021e9b363095196a127faccae99f6578c83
Author:     Michael Weghorn <[email protected]>
AuthorDate: Mon Dec 22 14:18:07 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Dec 23 10:11:29 2025 +0100

    weld: Deduplicate TreeView::get_text implementations
    
    The variant taking an int param can be implemented using
    the variant taking a GtkTreeIter param.
    
    Do so once in the abstract weld::TreeView base class, and drop
    the toolkit-specific implementations.
    
    Also move the method declarations of both methods
    next to each other, so one comment can describe both
    of them (and there's no need to keep that in sync
    if anything changes in the future).
    
    Change-Id: Ifc6f2211e6ec1fda36a7e6f355edf09d3dc1d020
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196129
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/weld/TreeView.hxx b/include/vcl/weld/TreeView.hxx
index b578724304fb..7cb3c517ec13 100644
--- a/include/vcl/weld/TreeView.hxx
+++ b/include/vcl/weld/TreeView.hxx
@@ -221,11 +221,12 @@ public:
 
     virtual void set_clicks_to_toggle(int nToggleBehavior) = 0;
 
-    //by index
     int get_selected_index() const;
 
     // col index -1 gets the first text column
-    virtual OUString get_text(int row, int col = -1) const = 0;
+    OUString get_text(int row, int col = -1) const;
+    virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0;
+
     // col index -1 sets the first text column
     virtual void set_text(int row, const OUString& rText, int col = -1) = 0;
     // col index -1 sets all columns
@@ -290,7 +291,6 @@ public:
     void select_id(const OUString& rId) { select(find_id(rId)); }
     void remove_id(const OUString& rText) { remove(find_id(rText)); }
 
-    //via iter
     virtual void copy_iterator(const TreeIter& rSource, TreeIter& rDest) const 
= 0;
 
     // set iter to point to previous node at the current level
@@ -339,8 +339,6 @@ public:
     virtual void set_toggle(const TreeIter& rIter, TriState bOn, int col = -1) 
= 0;
     // col index -1 gets the expander toggle, enable_toggle_buttons must have 
been called to create that column
     virtual TriState get_toggle(const TreeIter& rIter, int col = -1) const = 0;
-    // col index -1 gets the first text column
-    virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0;
 
     // col index -1 sets the expander image
     virtual void set_image(const TreeIter& rIter, const OUString& rImage, int 
col = -1) = 0;
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index 3d8254206765..74ce91f750d5 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -52,7 +52,6 @@ public:
 
     virtual void set_clicks_to_toggle(int nToggleBehavior) override;
 
-    virtual OUString get_text(int nRow, int nCol = -1) const override;
     virtual void set_text(int nRow, const OUString& rText, int nCol = -1) 
override;
     virtual void set_sensitive(int nRow, bool bSensitive, int nCol = -1) 
override;
     virtual bool get_sensitive(int nRow, int nCol) const override;
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index be1e2177b244..6c9b46242857 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1674,8 +1674,6 @@ public:
 
     OUString get_text(SvTreeListEntry* pEntry, int col) const;
 
-    virtual OUString get_text(int pos, int col = -1) const override;
-
     void set_text(SvTreeListEntry* pEntry, const OUString& rText, int col);
 
     virtual void set_text(int pos, const OUString& rText, int col = -1) 
override;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index e9ff99f84122..c0338a6f24cb 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -109,11 +109,6 @@ void 
QtInstanceTreeView::enable_toggle_buttons(weld::ColumnToggleType)
 
 void QtInstanceTreeView::set_clicks_to_toggle(int) { assert(false && "Not 
implemented yet"); }
 
-OUString QtInstanceTreeView::get_text(int nRow, int nCol) const
-{
-    return get_text(treeIter(nRow), nCol);
-}
-
 void QtInstanceTreeView::set_text(int nRow, const OUString& rText, int nCol)
 {
     set_text(treeIter(nRow), rText, nCol);
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index f10d9cdb2299..6f5e3b89ed32 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4250,12 +4250,6 @@ OUString SalInstanceTreeView::get_text(SvTreeListEntry* 
pEntry, int col) const
     return static_cast<SvLBoxString&>(rItem).GetText();
 }
 
-OUString SalInstanceTreeView::get_text(int pos, int col) const
-{
-    SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
-    return get_text(pEntry, col);
-}
-
 void SalInstanceTreeView::set_text(SvTreeListEntry* pEntry, const OUString& 
rText, int col)
 {
     if (col == -1)
diff --git a/vcl/source/weld/TreeView.cxx b/vcl/source/weld/TreeView.cxx
index 1720bd2b074a..b1960c0a5635 100644
--- a/vcl/source/weld/TreeView.cxx
+++ b/vcl/source/weld/TreeView.cxx
@@ -18,6 +18,14 @@ int weld::TreeView::get_selected_index() const
 
     return -1;
 }
+
+OUString weld::TreeView::get_text(int row, int col) const
+{
+    if (std::unique_ptr<weld::TreeIter> pIter = get_iterator(row))
+        return get_text(*pIter, col);
+
+    return OUString();
+}
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 40579a1e032b..5c666626d299 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -14083,15 +14083,6 @@ private:
         return sRet;
     }
 
-    OUString get(int pos, int col) const
-    {
-        OUString sRet;
-        GtkTreeIter iter;
-        if (gtk_tree_model_iter_nth_child(m_pTreeModel, &iter, nullptr, pos))
-            sRet = get(iter, col);
-        return sRet;
-    }
-
     gint get_int(const GtkTreeIter& iter, int col) const
     {
         gint nRet(-1);
@@ -15360,15 +15351,6 @@ public:
         return 
gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(m_pTreeView), 
const_cast<GtkTreeIter*>(&rGtkIter.iter));
     }
 
-    virtual OUString get_text(int pos, int col) const override
-    {
-        if (col == -1)
-            col = m_nTextCol;
-        else
-            col = to_internal_model(col);
-        return get(pos, col);
-    }
-
     virtual void set_text(int pos, const OUString& rText, int col) override
     {
         if (col == -1)

Reply via email to