chart2/source/controller/main/ChartController_Tools.cxx | 6 ++++ vcl/inc/jsdialog/jsdialogbuilder.hxx | 2 + vcl/jsdialog/jsdialogbuilder.cxx | 10 +++++++ vcl/source/window/toolbox2.cxx | 22 ++++++++++------ 4 files changed, 32 insertions(+), 8 deletions(-)
New commits: commit fb0cd05702852d29ee50d98d305043ac1993885b Author: Marco Cecchetti <marco.cecche...@collabora.com> AuthorDate: Mon Apr 21 12:02:13 2025 +0200 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Thu May 1 08:56:58 2025 +0200 chart color palette: ui panel is wrong in the lok case 1) Current color palette is not visible in the sidebar panel. 2) Setting up a custom color for a data series, the current color palette icon is not set to the no color palette image. Change-Id: I6fdcf84878c9e26a6a4ad3e2ba8628ee0dd28924 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184438 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx index b622a2a9b801..8a650d466b2d 100644 --- a/chart2/source/controller/main/ChartController_Tools.cxx +++ b/chart2/source/controller/main/ChartController_Tools.cxx @@ -946,6 +946,12 @@ void ChartController::executeDispatch_FillColor(sal_uInt32 nColor) ObjectIdentifier::getObjectPropertySet( aCID, xChartModel ) ); if( xPointProperties.is() ) xPointProperties->setPropertyValue( u"FillColor"_ustr, uno::Any( nColor ) ); + + ObjectType eType = ObjectIdentifier::getObjectType(aCID); + if (eType == OBJECTTYPE_DATA_SERIES || eType == OBJECTTYPE_DATA_POINT) + { + xChartModel->clearColorPalette(); + } } } catch( const uno::Exception& ) diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index de68a553ec19..77d646bc1373 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -649,6 +649,8 @@ public: virtual void set_menu_item_active(const OUString& rIdent, bool bActive) override; virtual void set_item_sensitive(const OUString& rIdent, bool bSensitive) override; virtual void set_item_icon_name(const OUString& rIdent, const OUString& rIconName) override; + virtual void set_item_image(const OUString& rIdent, + const css::uno::Reference<css::graphic::XGraphic>& rImage) override; }; class JSTextView final : public JSWidget<SalInstanceTextView, ::VclMultiLineEdit> diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 9d1aabad460a..20f59f2aa850 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1643,6 +1643,16 @@ void JSToolbar::set_item_icon_name(const OUString& rIdent, const OUString& rIcon sendUpdate(); } +void JSToolbar::set_item_image(const OUString& rIdent, + const css::uno::Reference<css::graphic::XGraphic>& rImage) +{ + SalInstanceToolbar::set_item_image(rIdent, rImage); + if (rIdent == u".uno:ChartColorPalette"_ustr) + { + sendUpdate(); + } +} + JSTextView::JSTextView(JSDialogSender* pSender, ::VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : JSWidget<SalInstanceTextView, ::VclMultiLineEdit>(pSender, pTextView, pBuilder, diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index 24cd01ed63df..5ae142ae7c2d 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -1762,16 +1762,22 @@ void ToolBox::DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) rJsonWriter.put("description", sAccDesc); } - Image aImage = GetItemImage(nId); - if (!sCommand.startsWith(".uno:") && !!aImage) + if (!sCommand.startsWith(".uno:") || sCommand == u".uno:ChartColorPalette"_ustr) { - SvMemoryStream aOStm(6535, 6535); - if(GraphicConverter::Export(aOStm, aImage.GetBitmapEx(), ConvertDataFormat::PNG) == ERRCODE_NONE) + Image aImage = GetItemImage(nId); + if (!!aImage) { - css::uno::Sequence<sal_Int8> aSeq( static_cast<sal_Int8 const *>(aOStm.GetData()), aOStm.Tell()); - OStringBuffer aBuffer("data:image/png;base64,"); - ::comphelper::Base64::encode(aBuffer, aSeq); - rJsonWriter.put("image", aBuffer); + SvMemoryStream aOStm(6535, 6535); + if (GraphicConverter::Export(aOStm, aImage.GetBitmapEx(), + ConvertDataFormat::PNG) + == ERRCODE_NONE) + { + css::uno::Sequence<sal_Int8> aSeq( + static_cast<sal_Int8 const*>(aOStm.GetData()), aOStm.Tell()); + OStringBuffer aBuffer("data:image/png;base64,"); + ::comphelper::Base64::encode(aBuffer, aSeq); + rJsonWriter.put("image", aBuffer); + } } } }