vcl/source/control/fixed.cxx | 6 +----- vcl/source/window/builder.cxx | 28 ++++++++++++++++++++++------ 2 files changed, 23 insertions(+), 11 deletions(-)
New commits: commit 9b2d46e41a463232e80154f5bb023bf14072d59e Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Jan 11 16:51:07 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jan 13 10:08:48 2021 +0100 move FixedImage icon-name property setting to the builder Change-Id: Ic7250fbc7887a652b340d0dae346210d9e743e30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109196 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx index c8ac59046181..0482c06f584f 100644 --- a/vcl/source/control/fixed.cxx +++ b/vcl/source/control/fixed.cxx @@ -960,11 +960,7 @@ Image FixedImage::loadThemeImage(const OUString &rFileName) bool FixedImage::set_property(const OString &rKey, const OUString &rValue) { - if (rKey == "pixbuf" || rKey == "icon-name") - { - SetImage(loadThemeImage(rValue)); - } - else if (rKey == "icon-size") + if (rKey == "icon-size") { WinBits nBits = GetStyle(); nBits &= ~WB_SMALLSTYLE; diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index a250fd89b214..9ea07cdb5ee3 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -1071,11 +1071,22 @@ namespace OUString extractIconName(VclBuilder::stringmap &rMap) { OUString sIconName; - VclBuilder::stringmap::iterator aFind = rMap.find(OString("icon-name")); - if (aFind != rMap.end()) + // allow pixbuf, but prefer icon-name { - sIconName = aFind->second; - rMap.erase(aFind); + VclBuilder::stringmap::iterator aFind = rMap.find(OString("pixbuf")); + if (aFind != rMap.end()) + { + sIconName = aFind->second; + rMap.erase(aFind); + } + } + { + VclBuilder::stringmap::iterator aFind = rMap.find(OString("icon-name")); + if (aFind != rMap.end()) + { + sIconName = aFind->second; + rMap.erase(aFind); + } } return sIconName; } @@ -2126,8 +2137,13 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString & } else if (name == "GtkImage") { - extractStock(id, rMap); - xWindow = VclPtr<FixedImage>::Create(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK|WB_SCALE); + VclPtr<FixedImage> xFixedImage = VclPtr<FixedImage>::Create(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK|WB_SCALE); + OUString sIconName = extractIconName(rMap); + if (!sIconName.isEmpty()) + xFixedImage->SetImage(FixedImage::loadThemeImage(sIconName)); + else + extractStock(id, rMap); + xWindow = xFixedImage; //such parentless GtkImages are temps used to set icons on buttons //default them to hidden to stop e.g. insert->index entry flicking temp //full screen windows _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits