vcl/inc/qt5/QtInstanceIconView.hxx |    1 -
 vcl/inc/qt5/QtInstanceItemView.hxx |    2 ++
 vcl/inc/qt5/QtInstanceTreeView.hxx |    1 -
 vcl/inc/salvtables.hxx             |    6 ++----
 vcl/qt5/QtInstanceIconView.cxx     |    5 -----
 vcl/qt5/QtInstanceItemView.cxx     |   10 ++++++++++
 vcl/qt5/QtInstanceTreeView.cxx     |   10 ----------
 vcl/source/app/salvtables.cxx      |   18 ++++++------------
 8 files changed, 20 insertions(+), 33 deletions(-)

New commits:
commit 71ececa9e43629a9cf140825876b411427e175bc
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 16:12:31 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 22:31:30 2025 +0100

    vcl weld: Deduplicate ItemView::do_remove impls
    
    The SalInstanceTreeView and SalInstanceItemView
    implementations are equivalent.
    
    Deduplicate by moving the logic to the common
    SalInstanceItemView base class.
    
    Change-Id: I8a107bcf6b224f6bd882b2fc99d80bf44b40d0ab
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196008
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 69dc87236be6..68c76810e6a2 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1504,6 +1504,8 @@ protected:
     virtual void do_select_all() override;
     virtual void do_unselect_all() override;
 
+    virtual void do_remove(const weld::TreeIter& rIter) override;
+
     virtual void do_clear() override;
 
 public:
@@ -1764,8 +1766,6 @@ public:
 
     virtual bool iter_parent(weld::TreeIter& rIter) const override;
 
-    virtual void do_remove(const weld::TreeIter& rIter) override;
-
     using SalInstanceItemView::do_select;
     virtual void do_select(const weld::TreeIter& rIter) override;
 
@@ -1940,8 +1940,6 @@ public:
 
     virtual void selected_foreach(const std::function<bool(weld::TreeIter&)>& 
func) override;
 
-    virtual void do_remove(const weld::TreeIter& rIter) override;
-
     virtual void set_image(int pos, VirtualDevice& rImage) override;
 
     virtual void set_text(int pos, const OUString& rText) override;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 90177868d7ab..9b4c91a907c5 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3641,6 +3641,12 @@ void SalInstanceItemView::do_unselect(const 
weld::TreeIter& rIter)
     m_pTreeListBox->Select(rVclIter.iter, false);
 }
 
+void SalInstanceItemView::do_remove(const weld::TreeIter& rIter)
+{
+    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
+    m_pTreeListBox->RemoveEntry(rVclIter.iter);
+}
+
 void SalInstanceItemView::do_clear()
 {
     m_pTreeListBox->Clear();
@@ -4631,12 +4637,6 @@ bool SalInstanceTreeView::iter_parent(weld::TreeIter& 
rIter) const
     return rVclIter.iter != nullptr;
 }
 
-void SalInstanceTreeView::do_remove(const weld::TreeIter& rIter)
-{
-    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
-    m_xTreeView->RemoveEntry(rVclIter.iter);
-}
-
 void SalInstanceTreeView::do_select(const weld::TreeIter& rIter)
 {
     assert(m_xTreeView->IsUpdateMode()
@@ -5418,12 +5418,6 @@ void SalInstanceIconView::set_image(int pos, 
VirtualDevice& rIcon)
     }
 }
 
-void SalInstanceIconView::do_remove(const weld::TreeIter& rIter)
-{
-    const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
-    m_xIconView->RemoveEntry(rVclIter.iter);
-}
-
 OUString SalInstanceIconView::get_text(const weld::TreeIter& rIter) const
 {
     const SalInstanceTreeIter& rVclIter = static_cast<const 
SalInstanceTreeIter&>(rIter);
commit d8e77188e92e30e9efa7f90636072bd9e9882543
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 16:08:50 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 22:31:22 2025 +0100

    tdf#130857 qt weld: Reuse QtInstanceTreeView::do_remove for IconView
    
    Move the QtInstanceTreeView::do_remove logic to the
    QtInstanceItemView base class, so it can be reused
    for QtInstanceIconview as well.
    
    Change-Id: I5a4e2f34ac9027d12059f2e50666ff727d7b9608
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196007
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx 
b/vcl/inc/qt5/QtInstanceIconView.hxx
index e543d7e730ed..0f3607f2acc9 100644
--- a/vcl/inc/qt5/QtInstanceIconView.hxx
+++ b/vcl/inc/qt5/QtInstanceIconView.hxx
@@ -44,7 +44,6 @@ public:
     virtual void set_text(int nPos, const OUString& rText) 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(const weld::TreeIter& rIter) override;
     virtual tools::Rectangle get_rect(const weld::TreeIter& rIter) const 
override;
 
     virtual OUString get_text(const weld::TreeIter& rIter) const override;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index 17d6c1bd6a49..37857733c9b1 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -35,6 +35,8 @@ protected:
     virtual void do_select_all() override;
     virtual void do_unselect_all() override;
 
+    virtual void do_remove(const weld::TreeIter& rIter) override;
+
     void do_clear() override;
 
 public:
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index d2748d3f7ac6..6e12506f0f04 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -88,7 +88,6 @@ public:
     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;
     virtual int iter_n_children(const weld::TreeIter& rIter) const override;
-    virtual void do_remove(const weld::TreeIter& rIter) override;
     virtual void set_extra_row_indent(const weld::TreeIter& rIter, int 
nIndentLevel) override;
     virtual void set_text(const weld::TreeIter& rIter, const OUString& rStr,
                           int nCol = -1) override;
diff --git a/vcl/qt5/QtInstanceIconView.cxx b/vcl/qt5/QtInstanceIconView.cxx
index aff9edd4d1ce..bd41cea25b86 100644
--- a/vcl/qt5/QtInstanceIconView.cxx
+++ b/vcl/qt5/QtInstanceIconView.cxx
@@ -149,11 +149,6 @@ void QtInstanceIconView::set_item_tooltip_text(int nPos, 
const OUString& rToolTi
     });
 }
 
-void QtInstanceIconView::do_remove(const weld::TreeIter&)
-{
-    assert(false && "Not implemented yet");
-}
-
 tools::Rectangle QtInstanceIconView::get_rect(const weld::TreeIter&) const
 {
     assert(false && "Not implemented yet");
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index e9ad8e3e56b0..529d2c3587ad 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -192,6 +192,16 @@ void QtInstanceItemView::do_unselect_all()
     GetQtInstance().RunInMainThread([&] { getItemView().clearSelection(); });
 }
 
+void QtInstanceItemView::do_remove(const weld::TreeIter& rIter)
+{
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        const QModelIndex aIndex = modelIndex(rIter);
+        m_rModel.removeRow(aIndex.row(), aIndex.parent());
+    });
+}
+
 void QtInstanceItemView::do_clear()
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index df077e6d45ef..653bcbe7e564 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -369,16 +369,6 @@ int QtInstanceTreeView::iter_n_children(const 
weld::TreeIter& rIter) const
     return m_pModel->rowCount(rQtIter.modelIndex());
 }
 
-void QtInstanceTreeView::do_remove(const weld::TreeIter& rIter)
-{
-    SolarMutexGuard g;
-
-    GetQtInstance().RunInMainThread([&] {
-        const QModelIndex aIndex = modelIndex(rIter);
-        m_pModel->removeRow(aIndex.row(), aIndex.parent());
-    });
-}
-
 void QtInstanceTreeView::set_extra_row_indent(const weld::TreeIter&, int)
 {
     assert(false && "Not implemented yet");

Reply via email to