vcl/inc/qt5/QtInstanceIconView.hxx |    6 -----
 vcl/inc/qt5/QtInstanceItemView.hxx |    4 +++
 vcl/inc/qt5/QtInstanceTreeView.hxx |    4 ---
 vcl/qt5/QtInstanceIconView.cxx     |   32 ----------------------------
 vcl/qt5/QtInstanceItemView.cxx     |   42 +++++++++++++++++++++++++++++++++++++
 vcl/qt5/QtInstanceTreeView.cxx     |   42 -------------------------------------
 6 files changed, 46 insertions(+), 84 deletions(-)

New commits:
commit 1421df9fb726fd26bfc9ffd0bae6730ea4e0716b
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 11:51:55 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 16:48:03 2025 +0100

    tdf#130857 qt weld: Share weld::ItemView::get_selected_text impl
    
    QtInstanceTreeView already had an implementation while
    QtInstanceItemView would only have asserted so far
    if called.
    
    Move the QtInstanceTreeView implementation to
    the shared QtInstanceItemView base class and
    adjust it work without relying on QtInstanceTreeView
    internals.
    
    Instead of calling the no longer available QStandardItem::text,
    just get the date for the Qt::DisplayRole role, which is
    what the QStandardItem::text implementation itself
    does.
    
    Change-Id: I4e9b56fb20155e70e8dc18372e54f20a6cfb6b43
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195967
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx 
b/vcl/inc/qt5/QtInstanceIconView.hxx
index 672cbadf2a53..ed6c677239ae 100644
--- a/vcl/inc/qt5/QtInstanceIconView.hxx
+++ b/vcl/inc/qt5/QtInstanceIconView.hxx
@@ -40,8 +40,6 @@ public:
 
     virtual int count_selected_items() const override;
 
-    virtual OUString get_selected_text() const override;
-
     virtual void set_image(int nPos, VirtualDevice& rDevice) override;
     virtual void set_text(int nPos, const OUString& rText) override;
     virtual void set_item_accessible_name(int nPos, const OUString& rName) 
override;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index 01ac8486e13a..17d6c1bd6a49 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -56,6 +56,7 @@ public:
     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;
 
     virtual bool get_selected(weld::TreeIter* pIter) const override;
 
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index f5249d43ae6d..2e0b6f8e4708 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -48,8 +48,6 @@ public:
 
     virtual void do_insert_separator(int pos, const OUString& rId) override;
 
-    virtual OUString get_selected_text() const override;
-
     virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override;
 
     virtual void set_clicks_to_toggle(int nToggleBehavior) override;
diff --git a/vcl/qt5/QtInstanceIconView.cxx b/vcl/qt5/QtInstanceIconView.cxx
index ffa71a0f98ab..123b92adb70c 100644
--- a/vcl/qt5/QtInstanceIconView.cxx
+++ b/vcl/qt5/QtInstanceIconView.cxx
@@ -104,12 +104,6 @@ int QtInstanceIconView::count_selected_items() const
     return 0;
 }
 
-OUString QtInstanceIconView::get_selected_text() const
-{
-    assert(false && "Not implemented yet");
-    return OUString();
-}
-
 void QtInstanceIconView::set_image(int nPos, VirtualDevice& rDevice)
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index 5308316261fa..e9ad8e3e56b0 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -102,6 +102,22 @@ OUString QtInstanceItemView::get_selected_id() const
     return sId;
 }
 
+OUString QtInstanceItemView::get_selected_text() const
+{
+    SolarMutexGuard g;
+
+    OUString sText;
+    GetQtInstance().RunInMainThread([&] {
+        const QModelIndexList aSelectedIndexes = 
getSelectionModel().selectedIndexes();
+        if (aSelectedIndexes.empty())
+            return;
+
+        sText = 
toOUString(aSelectedIndexes.first().data(Qt::DisplayRole).toString());
+    });
+
+    return sText;
+}
+
 bool QtInstanceItemView::get_selected(weld::TreeIter* pIter) const
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index 7bd7f1e2a383..2a76fee3bf51 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -98,22 +98,6 @@ void QtInstanceTreeView::do_insert_separator(int, const 
OUString&)
     assert(false && "Not implemented yet");
 }
 
-OUString QtInstanceTreeView::get_selected_text() const
-{
-    SolarMutexGuard g;
-
-    OUString sText;
-    GetQtInstance().RunInMainThread([&] {
-        const QModelIndexList aSelectedIndexes = 
m_pSelectionModel->selectedIndexes();
-        if (aSelectedIndexes.empty())
-            return;
-
-        sText = toOUString(itemFromIndex(aSelectedIndexes.first())->text());
-    });
-
-    return sText;
-}
-
 void QtInstanceTreeView::enable_toggle_buttons(weld::ColumnToggleType)
 {
     assert(m_pModel->rowCount() == 0 && "Must be called before inserting any 
data");
commit d15a82ebd57bc040cb87c964584acc415ff7ddc7
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 11:41:51 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 16:47:56 2025 +0100

    tdf#130857 qt weld: Deduplicate weld::ItemView::get_selected_id impls
    
    The QtInstanceTreeView and QtInstanceIconView implementations
    are the same.
    
    Move to the shared QtInstanceItemView base class and
    drop the duplicate subclass implementations.
    
    Change-Id: I90c67265ef08160f34113d5c1f12d785953e738a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195966
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx 
b/vcl/inc/qt5/QtInstanceIconView.hxx
index 50d2bb58fab4..672cbadf2a53 100644
--- a/vcl/inc/qt5/QtInstanceIconView.hxx
+++ b/vcl/inc/qt5/QtInstanceIconView.hxx
@@ -38,8 +38,6 @@ public:
 
     virtual void insert_separator(int pos, const OUString* pId) override;
 
-    virtual OUString get_selected_id() const override;
-
     virtual int count_selected_items() const override;
 
     virtual OUString get_selected_text() const override;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index 92b1a7d973b5..01ac8486e13a 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -55,6 +55,8 @@ public:
     using weld::ItemView::set_id;
     virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) 
override;
 
+    virtual OUString get_selected_id() const override;
+
     virtual bool get_selected(weld::TreeIter* pIter) const override;
 
     virtual bool get_cursor(weld::TreeIter* pIter) const override;
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index 9dcbfe71f24b..f5249d43ae6d 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -49,7 +49,6 @@ public:
     virtual void do_insert_separator(int pos, const OUString& rId) override;
 
     virtual OUString get_selected_text() const override;
-    virtual OUString get_selected_id() const override;
 
     virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override;
 
diff --git a/vcl/qt5/QtInstanceIconView.cxx b/vcl/qt5/QtInstanceIconView.cxx
index af84a5634d1f..ffa71a0f98ab 100644
--- a/vcl/qt5/QtInstanceIconView.cxx
+++ b/vcl/qt5/QtInstanceIconView.cxx
@@ -98,24 +98,6 @@ void QtInstanceIconView::insert_separator(int, const 
OUString*)
     assert(false && "Not implemented yet");
 }
 
-OUString QtInstanceIconView::get_selected_id() const
-{
-    SolarMutexGuard g;
-
-    OUString sId;
-    GetQtInstance().RunInMainThread([&] {
-        const QModelIndexList aSelectedIndexes = 
m_pSelectionModel->selectedIndexes();
-        if (aSelectedIndexes.empty())
-            return;
-
-        QVariant aIdData = aSelectedIndexes.first().data(ROLE_ID);
-        if (aIdData.canConvert<QString>())
-            sId = toOUString(aIdData.toString());
-    });
-
-    return sId;
-}
-
 int QtInstanceIconView::count_selected_items() const
 {
     assert(false && "Not implemented yet");
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index 27b4372c9b6b..5308316261fa 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -84,6 +84,24 @@ void QtInstanceItemView::set_id(const weld::TreeIter& rIter, 
const OUString& rId
         [&] { m_rModel.setData(modelIndex(rIter), toQString(rId), ROLE_ID); });
 }
 
+OUString QtInstanceItemView::get_selected_id() const
+{
+    SolarMutexGuard g;
+
+    OUString sId;
+    GetQtInstance().RunInMainThread([&] {
+        const QModelIndexList aSelectedIndexes = 
getSelectionModel().selectedIndexes();
+        if (aSelectedIndexes.empty())
+            return;
+
+        QVariant aIdData = aSelectedIndexes.first().data(ROLE_ID);
+        if (aIdData.canConvert<QString>())
+            sId = toOUString(aIdData.toString());
+    });
+
+    return sId;
+}
+
 bool QtInstanceItemView::get_selected(weld::TreeIter* pIter) const
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index f03ab076264e..7bd7f1e2a383 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -114,24 +114,6 @@ OUString QtInstanceTreeView::get_selected_text() const
     return sText;
 }
 
-OUString QtInstanceTreeView::get_selected_id() const
-{
-    SolarMutexGuard g;
-
-    OUString sId;
-    GetQtInstance().RunInMainThread([&] {
-        const QModelIndexList aSelectedIndexes = 
m_pSelectionModel->selectedIndexes();
-        if (aSelectedIndexes.empty())
-            return;
-
-        QVariant aIdData = aSelectedIndexes.first().data(ROLE_ID);
-        if (aIdData.canConvert<QString>())
-            sId = toOUString(aIdData.toString());
-    });
-
-    return sId;
-}
-
 void QtInstanceTreeView::enable_toggle_buttons(weld::ColumnToggleType)
 {
     assert(m_pModel->rowCount() == 0 && "Must be called before inserting any 
data");
commit 086209d7af68ff1c2c2218234eee5cced5629d68
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 20 11:37:29 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Dec 20 16:47:50 2025 +0100

    tdf#130857 qt weld: Deduplicate weld::ItemView::do_unselect impls
    
    The QtInstanceTreeView and QtInstanceIconView implementations
    are the same.
    
    Move to the shared QtInstanceItemView base class and
    drop the duplicate subclass implementations.
    
    Change-Id: I7472d0efb04050f36e15d6f7fae0dfb127fd50a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195965
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/inc/qt5/QtInstanceIconView.hxx 
b/vcl/inc/qt5/QtInstanceIconView.hxx
index 406bc693276b..50d2bb58fab4 100644
--- a/vcl/inc/qt5/QtInstanceIconView.hxx
+++ b/vcl/inc/qt5/QtInstanceIconView.hxx
@@ -44,8 +44,6 @@ public:
 
     virtual OUString get_selected_text() const override;
 
-    virtual void do_unselect(const weld::TreeIter& rIter) override;
-
     virtual void set_image(int nPos, VirtualDevice& rDevice) override;
     virtual void set_text(int nPos, const OUString& rText) override;
     virtual void set_item_accessible_name(int nPos, const OUString& rName) 
override;
diff --git a/vcl/inc/qt5/QtInstanceItemView.hxx 
b/vcl/inc/qt5/QtInstanceItemView.hxx
index bfe9feb2672a..92b1a7d973b5 100644
--- a/vcl/inc/qt5/QtInstanceItemView.hxx
+++ b/vcl/inc/qt5/QtInstanceItemView.hxx
@@ -30,6 +30,7 @@ protected:
     virtual void do_set_cursor(const weld::TreeIter& rIter) override;
 
     virtual void do_select(const weld::TreeIter& rIter) override;
+    virtual void do_unselect(const weld::TreeIter& rIter) override;
 
     virtual void do_select_all() override;
     virtual void do_unselect_all() override;
diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx 
b/vcl/inc/qt5/QtInstanceTreeView.hxx
index a6a6296e25bb..9dcbfe71f24b 100644
--- a/vcl/inc/qt5/QtInstanceTreeView.hxx
+++ b/vcl/inc/qt5/QtInstanceTreeView.hxx
@@ -93,7 +93,6 @@ public:
     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 do_unselect(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 d1c1159b33b5..af84a5634d1f 100644
--- a/vcl/qt5/QtInstanceIconView.cxx
+++ b/vcl/qt5/QtInstanceIconView.cxx
@@ -128,14 +128,6 @@ OUString QtInstanceIconView::get_selected_text() const
     return OUString();
 }
 
-void QtInstanceIconView::do_unselect(const weld::TreeIter& rIter)
-{
-    SolarMutexGuard g;
-
-    GetQtInstance().RunInMainThread(
-        [&] { m_pSelectionModel->select(modelIndex(rIter), 
QItemSelectionModel::Deselect); });
-}
-
 void QtInstanceIconView::set_image(int nPos, VirtualDevice& rDevice)
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceItemView.cxx b/vcl/qt5/QtInstanceItemView.cxx
index c9b0d2e712a6..27b4372c9b6b 100644
--- a/vcl/qt5/QtInstanceItemView.cxx
+++ b/vcl/qt5/QtInstanceItemView.cxx
@@ -138,6 +138,14 @@ void QtInstanceItemView::do_select(const weld::TreeIter& 
rIter)
     });
 }
 
+void QtInstanceItemView::do_unselect(const weld::TreeIter& rIter)
+{
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread(
+        [&] { getSelectionModel().select(modelIndex(rIter), 
QItemSelectionModel::Deselect); });
+}
+
 void QtInstanceItemView::do_select_all()
 {
     SolarMutexGuard g;
diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx
index c9a11cac8fe5..f03ab076264e 100644
--- a/vcl/qt5/QtInstanceTreeView.cxx
+++ b/vcl/qt5/QtInstanceTreeView.cxx
@@ -415,14 +415,6 @@ void QtInstanceTreeView::do_remove(const weld::TreeIter& 
rIter)
     });
 }
 
-void QtInstanceTreeView::do_unselect(const weld::TreeIter& rIter)
-{
-    SolarMutexGuard g;
-
-    GetQtInstance().RunInMainThread(
-        [&] { m_pSelectionModel->select(modelIndex(rIter), 
QItemSelectionModel::Deselect); });
-}
-
 void QtInstanceTreeView::set_extra_row_indent(const weld::TreeIter&, int)
 {
     assert(false && "Not implemented yet");

Reply via email to