vcl/inc/qt5/QtInstanceTreeView.hxx | 12 +++---- vcl/qt5/QtInstanceTreeView.cxx | 63 ++++++++++++++++++++++++------------- 2 files changed, 47 insertions(+), 28 deletions(-)
New commits: commit 37180baf408aa527e481b7f1a3e37142ed2074f8 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Feb 12 22:33:22 2025 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu Feb 13 09:26:03 2025 +0100 tdf#130857 qt weld: Implement remaining QtInstanceTreeView::set_image ... variants. Change-Id: I8e01ea5ac78d66732c7b437d8632c76c99b67777 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181517 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index 2e7cfe5195ad..a600639ffdbe 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -51,9 +51,9 @@ public: virtual void set_toggle(int row, TriState eState, int col = -1) override; virtual TriState get_toggle(int row, int col = -1) const override; virtual void set_image(int nRow, const OUString& rImage, int nCol = -1) override; - virtual void set_image(int row, VirtualDevice& rImage, int col = -1) override; - virtual void set_image(int row, const css::uno::Reference<css::graphic::XGraphic>& rImage, - int col = -1) override; + virtual void set_image(int nRow, VirtualDevice& rImage, int nCol = -1) override; + virtual void set_image(int nRow, const css::uno::Reference<css::graphic::XGraphic>& rImage, + int nCol = -1) override; virtual void set_text_emphasis(int row, bool bOn, int col) override; virtual bool get_text_emphasis(int row, int col) const override; virtual void set_text_align(int row, double fAlign, int col) override; @@ -107,10 +107,10 @@ public: 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, - int col = -1) override; + int nCol = -1) override; virtual void set_image(const weld::TreeIter& rIter, const css::uno::Reference<css::graphic::XGraphic>& rImage, - int col = -1) override; + int nCol = -1) override; virtual void set_font_color(const weld::TreeIter& rIter, const Color& rColor) override; virtual void scroll_to_row(const weld::TreeIter& rIter) override; virtual bool is_selected(const weld::TreeIter& rIter) const override; diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index d6fc0f952826..f318456df1bf 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -232,14 +232,32 @@ void QtInstanceTreeView::set_image(int nRow, const OUString& rImage, int nCol) }); } -void QtInstanceTreeView::set_image(int, VirtualDevice&, int) +void QtInstanceTreeView::set_image(int nRow, VirtualDevice& rImage, int nCol) { - assert(false && "Not implemented yet"); + assert(nCol != -1 && "Special column -1 not handled yet"); + + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QModelIndex aIndex = modelIndex(nRow, nCol); + QIcon aIcon = toQPixmap(rImage); + m_pModel->setData(aIndex, aIcon, Qt::DecorationRole); + }); } -void QtInstanceTreeView::set_image(int, const css::uno::Reference<css::graphic::XGraphic>&, int) +void QtInstanceTreeView::set_image(int nRow, + const css::uno::Reference<css::graphic::XGraphic>& rImage, + int nCol) { - assert(false && "Not implemented yet"); + assert(nCol != -1 && "Special column -1 not handled yet"); + + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + QModelIndex aIndex = modelIndex(nRow, nCol); + QIcon aIcon = toQPixmap(rImage); + m_pModel->setData(aIndex, aIcon, Qt::DecorationRole); + }); } void QtInstanceTreeView::set_text_emphasis(int, bool, int) @@ -550,15 +568,16 @@ void QtInstanceTreeView::set_image(const weld::TreeIter& rIter, const OUString& set_image(rowIndex(rIter), rImage, nCol); } -void QtInstanceTreeView::set_image(const weld::TreeIter&, VirtualDevice&, int) +void QtInstanceTreeView::set_image(const weld::TreeIter& rIter, VirtualDevice& rImage, int nCol) { - assert(false && "Not implemented yet"); + set_image(rowIndex(rIter), rImage, nCol); } -void QtInstanceTreeView::set_image(const weld::TreeIter&, - const css::uno::Reference<css::graphic::XGraphic>&, int) +void QtInstanceTreeView::set_image(const weld::TreeIter& rIter, + const css::uno::Reference<css::graphic::XGraphic>& rImage, + int nCol) { - assert(false && "Not implemented yet"); + set_image(rowIndex(rIter), rImage, nCol); } void QtInstanceTreeView::set_font_color(const weld::TreeIter&, const Color&) commit 78953a77d532bb0e197334fe94b6e7622b05d814 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Feb 12 22:23:30 2025 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu Feb 13 09:25:53 2025 +0100 tdf#130857 qt weld: Implement QtInstanceTreeView::set_image(int,...) Reuse the implementation for the variant taking a `const weld::TreeIter&` and forward the latter. Change-Id: I96e4e1c293daa2fc1a6030b0dd31830777a349c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181516 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index bef4ffa04dcd..2e7cfe5195ad 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -50,7 +50,7 @@ public: virtual void set_id(int row, const OUString& rId) override; virtual void set_toggle(int row, TriState eState, int col = -1) override; virtual TriState get_toggle(int row, int col = -1) const override; - virtual void set_image(int row, const OUString& rImage, int col = -1) override; + virtual void set_image(int nRow, const OUString& rImage, int nCol = -1) override; virtual void set_image(int row, VirtualDevice& rImage, int col = -1) override; virtual void set_image(int row, const css::uno::Reference<css::graphic::XGraphic>& rImage, int col = -1) override; diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index 167100e6c148..d6fc0f952826 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -217,9 +217,19 @@ TriState QtInstanceTreeView::get_toggle(int, int) const return TRISTATE_INDET; } -void QtInstanceTreeView::set_image(int, const OUString&, int) +void QtInstanceTreeView::set_image(int nRow, const OUString& rImage, int nCol) { - assert(false && "Not implemented yet"); + assert(nCol != -1 && "Special column -1 not handled yet"); + + SolarMutexGuard g; + + GetQtInstance().RunInMainThread([&] { + if (rImage.isEmpty()) + return; + QModelIndex aIndex = modelIndex(nRow, nCol); + QIcon aIcon = loadQPixmapIcon(rImage); + m_pModel->setData(aIndex, aIcon, Qt::DecorationRole); + }); } void QtInstanceTreeView::set_image(int, VirtualDevice&, int) @@ -537,17 +547,7 @@ OUString QtInstanceTreeView::get_id(const weld::TreeIter& rIter) const void QtInstanceTreeView::set_image(const weld::TreeIter& rIter, const OUString& rImage, int nCol) { - assert(nCol != -1 && "Special column -1 not handled yet"); - - SolarMutexGuard g; - - GetQtInstance().RunInMainThread([&] { - if (rImage.isEmpty()) - return; - QModelIndex aIndex = modelIndex(rIter, nCol); - QIcon aIcon = loadQPixmapIcon(rImage); - m_pModel->setData(aIndex, aIcon, Qt::DecorationRole); - }); + set_image(rowIndex(rIter), rImage, nCol); } void QtInstanceTreeView::set_image(const weld::TreeIter&, VirtualDevice&, int)