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)
