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");
