include/vcl/weld/ItemView.hxx      |    5 ++--
 include/vcl/weld/TreeView.hxx      |    3 --
 vcl/inc/qt5/QtInstanceIconView.hxx |    1 
 vcl/inc/qt5/QtInstanceItemView.hxx |    4 ++-
 vcl/inc/qt5/QtInstanceTreeView.hxx |    2 -
 vcl/inc/salvtables.hxx             |   15 ++++--------
 vcl/qt5/QtInstanceIconView.cxx     |   10 --------
 vcl/qt5/QtInstanceItemView.cxx     |   10 ++++++--
 vcl/qt5/QtInstanceTreeView.cxx     |   10 --------
 vcl/source/app/salvtables.cxx      |   45 +++++++++----------------------------
 vcl/source/weld/ItemView.cxx       |   14 +++++++++++
 vcl/unx/gtk3/gtkinst.cxx           |   35 +++-------------------------
 12 files changed, 50 insertions(+), 104 deletions(-)

New commits:
commit 14f49171885fdd499bae05e3032f7beab3908552
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 08:03:00 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 12:30:22 2025 +0100

    weld: Implement index-based ItemView::{g,s}et_id in base class
    
    Now that
    
        Change-Id: I2cfda98bb30487d20d5585eb98a4d45d6692675e
        Author: Michael Weghorn <[email protected]>
        Date:   Sat Dec 20 07:41:09 2025 +0100
    
            weld: Add weld::ItemView::set_id taking iter param
    
    added a purely virtual weld::ItemView::set_id taking
    a weld::TreeIter param that is implemented in all
    the toolkit-specific subclasses, the index-based
    implementation can be done right in the base class,
    using the iter-based one, to avoid some duplication
    in each of the subclasses.
    
    Change-Id: Idd8f674f7852987723040e3af2335645b395fe46
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195955
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/weld/ItemView.hxx b/include/vcl/weld/ItemView.hxx
index 8720a2dfe341..be8f97fb3681 100644
--- a/include/vcl/weld/ItemView.hxx
+++ b/include/vcl/weld/ItemView.hxx
@@ -41,9 +41,9 @@ public:
 
     virtual std::unique_ptr<TreeIter> get_iterator(int nPos) const = 0;
 
-    virtual OUString get_id(int pos) const = 0;
+    OUString get_id(int pos) const;
     virtual OUString get_id(const TreeIter& rIter) const = 0;
-    virtual void set_id(int row, const OUString& rId) = 0;
+    void set_id(int pos, const OUString& rId);
     virtual void set_id(const TreeIter& rIter, const OUString& rId) = 0;
 
     virtual OUString get_selected_id() const = 0;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index 23652af0193d..e577196c3c51 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -47,9 +47,9 @@ public:
 
     virtual std::unique_ptr<weld::TreeIter> get_iterator(int nPos) const 
override;
 
-    virtual OUString get_id(int nPos) const override;
+    using weld::ItemView::get_id;
     virtual OUString get_id(const weld::TreeIter& rIter) const override;
-    virtual void set_id(int pos, const OUString& rId) override;
+    using weld::ItemView::set_id;
     virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
 
 protected:
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 8f2253d006dd..faccdee57f12 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1517,9 +1517,9 @@ public:
 
     virtual std::unique_ptr<weld::TreeIter> get_iterator(int nPos) const 
override;
 
-    virtual OUString get_id(int pos) const override;
+    using weld::ItemView::get_id;
     virtual OUString get_id(const weld::TreeIter& rIter) const override;
-    virtual void set_id(int pos, const OUString& rId) override;
+    using weld::ItemView::set_id;
     virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
 
     virtual OUString get_selected_id() const override;
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index c5026d6758cb..43ad906a2c78 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -62,8 +62,6 @@ std::unique_ptr<weld::TreeIter> 
QtInstanceItemView::get_iterator(int nPos) const
     return {};
 }
 
-OUString QtInstanceItemView::get_id(int nPos) const { return 
get_id(treeIter(nPos)); }
-
 OUString QtInstanceItemView::get_id(const weld::TreeIter& rIter) const
 {
     SolarMutexGuard g;
@@ -78,8 +76,6 @@ OUString QtInstanceItemView::get_id(const weld::TreeIter& 
rIter) const
     return sId;
 }
 
-void QtInstanceItemView::set_id(int nRow, const OUString& rId) { 
set_id(treeIter(nRow), rId); }
-
 void QtInstanceItemView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
 {
     SolarMutexGuard g;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 9d2e301a43b3..63550d320a4a 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3558,14 +3558,6 @@ const OUString* SalInstanceItemView::getEntryData(int 
index) const
     return pEntry ? static_cast<const OUString*>(pEntry->GetUserData()) : 
nullptr;
 }
 
-OUString SalInstanceItemView::get_id(int pos) const
-{
-    const OUString* pRet = getEntryData(pos);
-    if (!pRet)
-        return OUString();
-    return *pRet;
-}
-
 OUString SalInstanceItemView::get_id(const weld::TreeIter& rIter) const
 {
     const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
@@ -3581,12 +3573,6 @@ void SalInstanceItemView::set_id(SvTreeListEntry* 
pEntry, const OUString& rId)
     pEntry->SetUserData(m_aUserData.back().get());
 }
 
-void SalInstanceItemView::set_id(int pos, const OUString& rId)
-{
-    SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry(nullptr, pos);
-    set_id(pEntry, rId);
-}
-
 void SalInstanceItemView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
 {
     const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
diff --git a/vcl/source/weld/ItemView.cxx b/vcl/source/weld/ItemView.cxx
index 710e9dd20f05..10b5d4a2ffff 100644
--- a/vcl/source/weld/ItemView.cxx
+++ b/vcl/source/weld/ItemView.cxx
@@ -11,6 +11,20 @@
 
 namespace weld
 {
+OUString ItemView::get_id(int pos) const
+{
+    if (std::unique_ptr<weld::TreeIter> pIter = get_iterator(pos))
+        return get_id(*pIter);
+
+    return OUString();
+}
+
+void ItemView::set_id(int pos, const OUString& rId)
+{
+    if (std::unique_ptr<weld::TreeIter> pIter = get_iterator(pos))
+        return set_id(*pIter, rId);
+}
+
 void ItemView::set_cursor(const TreeIter& rIter)
 {
     disable_notify_events();
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 3f7a88c757ca..9da061781fac 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -15616,16 +15616,6 @@ public:
         set_image(rGtkIter.iter, col, getPixbuf(rImage));
     }
 
-    virtual OUString get_id(int pos) const override
-    {
-        return get(pos, m_nIdCol);
-    }
-
-    virtual void set_id(int pos, const OUString& rId) override
-    {
-        return set(pos, m_nIdCol, rId);
-    }
-
     virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const 
override
     {
         const GtkInstanceTreeIter& rGtkIter = static_cast<const 
GtkInstanceTreeIter&>(rIter);
@@ -16828,16 +16818,6 @@ private:
         return sRet;
     }
 
-    OUString get(int pos, int col) const
-    {
-        GtkTreeModel* pModel = GTK_TREE_MODEL(m_pTreeStore);
-        OUString sRet;
-        GtkTreeIter iter;
-        if (gtk_tree_model_iter_nth_child(pModel, &iter, nullptr, pos))
-            sRet = get(iter, col);
-        return sRet;
-    }
-
     tools::Rectangle get_rect(const weld::TreeIter& rIter) const override
     {
         const GtkInstanceTreeIter& rGtkIter = static_cast<const 
GtkInstanceTreeIter&>(rIter);
@@ -16887,18 +16867,6 @@ private:
         }
     }
 
-    virtual void set_id(int pos, const OUString& rId) override
-    {
-        GtkTreeModel* pModel = GTK_TREE_MODEL(m_pTreeStore);
-        GtkTreeIter iter;
-
-        if (gtk_tree_model_iter_nth_child(pModel, &iter, nullptr, pos))
-        {
-            OString aStr(OUStringToOString(rId, RTL_TEXTENCODING_UTF8));
-            gtk_tree_store_set(m_pTreeStore, &iter, m_nIdCol, aStr.getStr(), 
-1);
-        }
-    }
-
     virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override
     {
         const GtkInstanceTreeIter& rGtkIter = static_cast<const 
GtkInstanceTreeIter&>(rIter);
@@ -17298,8 +17266,6 @@ public:
         return get(rGtkIter.iter, m_nIdCol);
     }
 
-    virtual OUString get_id(int pos) const override { return get(pos, 
m_nIdCol); }
-
     virtual OUString get_text(const weld::TreeIter& rIter) const override
     {
         const GtkInstanceTreeIter& rGtkIter = static_cast<const 
GtkInstanceTreeIter&>(rIter);
commit e75b3509f491adf5c90e31cdd1f8c2582c1394f8
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 07:41:09 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 12:30:15 2025 +0100

    weld: Add weld::ItemView::set_id taking iter param
    
    weld::TreeView already has such a method. Move this
    purely virtual method to the weld::ItemView base
    class, which means that the weld::IconView now
    also has it.
    
    For the Qt and vcl implementations, move the existing
    logic to implement both weld::ItemView::set_id
    variants to the base class, which also deduplicates
    code.
    
    For GTK, add a new GtkInstanceIconView::set_id
    implementation taking a TreeIter param, based
    on the one taking an index.
    
    Change-Id: I2cfda98bb30487d20d5585eb98a4d45d6692675e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195954
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/weld/ItemView.hxx b/include/vcl/weld/ItemView.hxx
index 1968c396ae8e..8720a2dfe341 100644
--- a/include/vcl/weld/ItemView.hxx
+++ b/include/vcl/weld/ItemView.hxx
@@ -44,6 +44,7 @@ public:
     virtual OUString get_id(int pos) const = 0;
     virtual OUString get_id(const TreeIter& rIter) const = 0;
     virtual void set_id(int row, const OUString& rId) = 0;
+    virtual void set_id(const TreeIter& rIter, const OUString& rId) = 0;
 
     virtual OUString get_selected_id() const = 0;
     virtual OUString get_selected_text() const = 0;
diff --git a/include/vcl/weld/TreeView.hxx b/include/vcl/weld/TreeView.hxx
index 2ee5903cf09b..b030c9313c66 100644
--- a/include/vcl/weld/TreeView.hxx
+++ b/include/vcl/weld/TreeView.hxx
@@ -359,9 +359,6 @@ public:
     // col index -1 gets the first text column
     virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0;
 
-    using weld::ItemView::set_id;
-    virtual void set_id(const TreeIter& rIter, const OUString& rId) = 0;
-
     // col index -1 sets the expander image
     virtual void set_image(const TreeIter& rIter, const OUString& rImage, int 
col = -1) = 0;
     // col index -1 sets the expander image
diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx 
b/vcl/inc/qt5/QtInstanceIconView.hxx
index 8384db2eca0f..6501665d874e 100644
--- a/vcl/inc/qt5/QtInstanceIconView.hxx
+++ b/vcl/inc/qt5/QtInstanceIconView.hxx
@@ -49,7 +49,6 @@ public:
 
     virtual void set_image(int nPos, VirtualDevice& rDevice) override;
     virtual void set_text(int nPos, const OUString& rText) override;
-    virtual void set_id(int nPos, const OUString& rId) override;
     virtual void set_item_accessible_name(int nPos, const OUString& rName) 
override;
     virtual void set_item_tooltip_text(int nPos, const OUString& rToolTip) 
override;
     virtual void do_remove(int pos) override;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index abf7f465bd88..23652af0193d 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -49,6 +49,8 @@ public:
 
     virtual OUString get_id(int nPos) const override;
     virtual OUString get_id(const weld::TreeIter& rIter) const override;
+    virtual void set_id(int pos, const OUString& rId) override;
+    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
 
 protected:
     QModelIndex modelIndex(int nRow, int nCol = 0,
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index 4baa9060ea83..337991762d9e 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -61,7 +61,6 @@ public:
     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_id(int row, const OUString& rId) override;
     virtual void set_toggle(int nRow, TriState eState, int nCol = -1) override;
     virtual TriState get_toggle(int nRow, int nCol = -1) const override;
     virtual void set_image(int nRow, const OUString& rImage, int nCol = -1) 
override;
@@ -111,7 +110,6 @@ public:
     virtual void set_toggle(const weld::TreeIter& rIter, TriState eState, int 
nCol = -1) override;
     virtual TriState get_toggle(const weld::TreeIter& rIter, int nCol = -1) 
const override;
     virtual OUString get_text(const weld::TreeIter& rIter, int nCol = -1) 
const override;
-    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
     virtual void set_image(const weld::TreeIter& rIter, const OUString& rImage,
                            int nCol = -1) override;
     virtual void set_image(const weld::TreeIter& rIter, VirtualDevice& rImage,
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index c2680acda4a5..8f2253d006dd 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1519,6 +1519,8 @@ public:
 
     virtual OUString get_id(int pos) const override;
     virtual OUString get_id(const weld::TreeIter& rIter) const override;
+    virtual void set_id(int pos, const OUString& rId) override;
+    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
 
     virtual OUString get_selected_id() const override;
     virtual OUString get_selected_text() const override;
@@ -1526,7 +1528,6 @@ public:
     virtual int n_children() const override;
 
 protected:
-    using weld::ItemView::set_id;
     void set_id(SvTreeListEntry* pEntry, const OUString& rId);
 
 private:
@@ -1750,9 +1751,6 @@ public:
     virtual void set_image(const weld::TreeIter& rIter, VirtualDevice& rImage,
                            int col = -1) override;
 
-    using SalInstanceItemView::set_id;
-    virtual void set_id(int pos, const OUString& rId) override;
-
     virtual int get_selected_index() const override;
 
     virtual void copy_iterator(const weld::TreeIter& rSource, weld::TreeIter& 
rDest) const override;
@@ -1803,8 +1801,6 @@ public:
     virtual void set_text(const weld::TreeIter& rIter, const OUString& rText,
                           int col = -1) override;
 
-    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
-
     virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& 
rHelper,
                                     sal_uInt8 eDNDConstants) override;
 
@@ -1957,9 +1953,6 @@ public:
 
     virtual void set_text(int pos, const OUString& rText) override;
 
-    using SalInstanceItemView::set_id;
-    virtual void set_id(int pos, const OUString& rId) override;
-
     virtual void set_item_accessible_name(int pos, const OUString& rName) 
override;
 
     virtual void set_item_tooltip_text(int pos, const OUString& rToolTip) 
override;
diff --git a/vcl/qt5/QtInstanceIconView.cxx b/vcl/qt5/QtInstanceIconView.cxx
index 1f655d34fcd9..c9ebd12e5411 100644
--- a/vcl/qt5/QtInstanceIconView.cxx
+++ b/vcl/qt5/QtInstanceIconView.cxx
@@ -164,16 +164,6 @@ void QtInstanceIconView::set_text(int nPos, const 
OUString& rText)
     });
 }
 
-void QtInstanceIconView::set_id(int nPos, const OUString& rId)
-{
-    SolarMutexGuard g;
-
-    GetQtInstance().RunInMainThread([&] {
-        QModelIndex aIndex = modelIndex(nPos);
-        m_pModel->setData(aIndex, toQString(rId), ROLE_ID);
-    });
-}
-
 void QtInstanceIconView::set_item_accessible_name(int nPos, const OUString& 
rName)
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index bb59499b736a..c5026d6758cb 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -78,6 +78,16 @@ OUString QtInstanceItemView::get_id(const weld::TreeIter& 
rIter) const
     return sId;
 }
 
+void QtInstanceItemView::set_id(int nRow, const OUString& rId) { 
set_id(treeIter(nRow), rId); }
+
+void QtInstanceItemView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
+{
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread(
+        [&] { m_rModel.setData(modelIndex(rIter), toQString(rId), ROLE_ID); });
+}
+
 void QtInstanceItemView::do_set_cursor(const weld::TreeIter& rIter)
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index ac04220bb817..6f87ee170423 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -181,8 +181,6 @@ bool QtInstanceTreeView::get_sensitive(int nRow, int nCol) 
const
     return get_sensitive(treeIter(nRow), nCol);
 }
 
-void QtInstanceTreeView::set_id(int nRow, const OUString& rId) { 
set_id(treeIter(nRow), rId); }
-
 void QtInstanceTreeView::set_toggle(int nRow, TriState eState, int nCol)
 {
     set_toggle(treeIter(nRow), eState, nCol);
@@ -609,14 +607,6 @@ OUString QtInstanceTreeView::get_text(const 
weld::TreeIter& rIter, int nCol) con
     return sText;
 }
 
-void QtInstanceTreeView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
-{
-    SolarMutexGuard g;
-
-    GetQtInstance().RunInMainThread(
-        [&] { m_pModel->setData(modelIndex(rIter), toQString(rId), ROLE_ID); 
});
-}
-
 void QtInstanceTreeView::set_image(const weld::TreeIter& rIter, const 
OUString& rImage, int nCol)
 {
     if (rImage.isEmpty())
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 97cd68e50c9c..9d2e301a43b3 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3581,6 +3581,18 @@ void SalInstanceItemView::set_id(SvTreeListEntry* 
pEntry, const OUString& rId)
     pEntry->SetUserData(m_aUserData.back().get());
 }
 
+void SalInstanceItemView::set_id(int pos, const OUString& rId)
+{
+    SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry(nullptr, pos);
+    set_id(pEntry, rId);
+}
+
+void SalInstanceItemView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
+{
+    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
+    set_id(rVclIter.iter, rId);
+}
+
 OUString SalInstanceItemView::get_selected_id() const
 {
     assert(m_pTreeListBox->IsUpdateMode() && "don't request selection when 
frozen");
@@ -4567,12 +4579,6 @@ void SalInstanceTreeView::set_image(const 
weld::TreeIter& rIter, VirtualDevice&
     set_image(rVclIter.iter, createImage(rImage), col);
 }
 
-void SalInstanceTreeView::set_id(int pos, const OUString& rId)
-{
-    SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
-    set_id(pEntry, rId);
-}
-
 int SalInstanceTreeView::get_selected_index() const
 {
     assert(m_xTreeView->IsUpdateMode() && "don't request selection when 
frozen");
@@ -4760,12 +4766,6 @@ void SalInstanceTreeView::set_text(const weld::TreeIter& 
rIter, const OUString&
     set_text(rVclIter.iter, rText, col);
 }
 
-void SalInstanceTreeView::set_id(const weld::TreeIter& rIter, const OUString& 
rId)
-{
-    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
-    set_id(rVclIter.iter, rId);
-}
-
 void 
SalInstanceTreeView::enable_drag_source(rtl::Reference<TransferDataContainer>& 
rHelper,
                                              sal_uInt8 eDNDConstants)
 {
@@ -5484,12 +5484,6 @@ void SalInstanceIconView::set_text(int pos, const 
OUString& rText)
         m_xIconView->ModelHasEntryInvalidated(aEntry);
 }
 
-void SalInstanceIconView::set_id(int pos, const OUString& rId)
-{
-    SvTreeListEntry* pEntry = m_xIconView->GetEntry(nullptr, pos);
-    set_id(pEntry, rId);
-}
-
 void SalInstanceIconView::set_item_accessible_name(int pos, const OUString& 
rName)
 {
     SvTreeListEntry* pEntry = m_xIconView->GetEntry(pos);
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index e41143347a09..3f7a88c757ca 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -16899,6 +16899,13 @@ private:
         }
     }
 
+    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override
+    {
+        const GtkInstanceTreeIter& rGtkIter = static_cast<const 
GtkInstanceTreeIter&>(rIter);
+        gtk_tree_store_set(m_pTreeStore, 
const_cast<GtkTreeIter*>(&rGtkIter.iter), m_nIdCol,
+                           rId.toUtf8().getStr(), -1);
+    }
+
     virtual void set_item_accessible_name(int pos, const OUString& rName) 
override
     {
 #if GTK_CHECK_VERSION(4, 0, 0)
commit 6b5d10f8b844ddcfb5eafc5feba6f9c55fbda033
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 07:19:48 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 12:30:08 2025 +0100

    vcl weld: Move set_id helper to SalInstanceItemView
    
    This allows it to be reused in SalInstanceIconView
    as well.
    
    Change-Id: Ia7e901556ac13f9a90a115737d4201c6787b1a91
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195953
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index f47682ca12da..c2680acda4a5 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1525,6 +1525,10 @@ public:
 
     virtual int n_children() const override;
 
+protected:
+    using weld::ItemView::set_id;
+    void set_id(SvTreeListEntry* pEntry, const OUString& rId);
+
 private:
     const OUString* getEntryData(int index) const;
 };
@@ -1746,8 +1750,7 @@ public:
     virtual void set_image(const weld::TreeIter& rIter, VirtualDevice& rImage,
                            int col = -1) override;
 
-    void set_id(SvTreeListEntry* pEntry, const OUString& rId);
-
+    using SalInstanceItemView::set_id;
     virtual void set_id(int pos, const OUString& rId) override;
 
     virtual int get_selected_index() const override;
@@ -1954,6 +1957,7 @@ public:
 
     virtual void set_text(int pos, const OUString& rText) override;
 
+    using SalInstanceItemView::set_id;
     virtual void set_id(int pos, const OUString& rId) override;
 
     virtual void set_item_accessible_name(int pos, const OUString& rName) 
override;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 5f50eaab6a74..97cd68e50c9c 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3575,6 +3575,12 @@ OUString SalInstanceItemView::get_id(const 
weld::TreeIter& rIter) const
     return OUString();
 }
 
+void SalInstanceItemView::set_id(SvTreeListEntry* pEntry, const OUString& rId)
+{
+    m_aUserData.emplace_back(std::make_unique<OUString>(rId));
+    pEntry->SetUserData(m_aUserData.back().get());
+}
+
 OUString SalInstanceItemView::get_selected_id() const
 {
     assert(m_pTreeListBox->IsUpdateMode() && "don't request selection when 
frozen");
@@ -4561,12 +4567,6 @@ void SalInstanceTreeView::set_image(const 
weld::TreeIter& rIter, VirtualDevice&
     set_image(rVclIter.iter, createImage(rImage), col);
 }
 
-void SalInstanceTreeView::set_id(SvTreeListEntry* pEntry, const OUString& rId)
-{
-    m_aUserData.emplace_back(std::make_unique<OUString>(rId));
-    pEntry->SetUserData(m_aUserData.back().get());
-}
-
 void SalInstanceTreeView::set_id(int pos, const OUString& rId)
 {
     SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
@@ -5487,8 +5487,7 @@ void SalInstanceIconView::set_text(int pos, const 
OUString& rText)
 void SalInstanceIconView::set_id(int pos, const OUString& rId)
 {
     SvTreeListEntry* pEntry = m_xIconView->GetEntry(nullptr, pos);
-    m_aUserData.emplace_back(std::make_unique<OUString>(rId));
-    pEntry->SetUserData(m_aUserData.back().get());
+    set_id(pEntry, rId);
 }
 
 void SalInstanceIconView::set_item_accessible_name(int pos, const OUString& 
rName)

Reply via email to