summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-09-29 13:40:41 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2020-10-07 08:53:04 +0200
commit7a061d5c8778fee58f966eee7f95917a5a74123e (patch)
treed20ebfc45d5faaebcfbb6b7f75f425123ebeba78 /sc/source/ui
parent8fdaa15db9a9303c42184e7d3a2b32a4b5e1c340 (diff)
Set correct gradient color for chart background in sidebar
Change-Id: I98dc177494fddc4a975479e99aba7b6318051b1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103618 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104033 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/drawfunc/drawsh2.cxx30
1 files changed, 30 insertions, 0 deletions
diff --git a/sc/source/ui/drawfunc/drawsh2.cxx b/sc/source/ui/drawfunc/drawsh2.cxx
index 264f81998af9..e5339cc22940 100644
--- a/sc/source/ui/drawfunc/drawsh2.cxx
+++ b/sc/source/ui/drawfunc/drawsh2.cxx
@@ -34,6 +34,7 @@
#include <svx/sidebar/SelectionChangeHandler.hxx>
#include <svx/sidebar/SelectionAnalyzer.hxx>
#include <svx/sidebar/ContextChangeEventMultiplexer.hxx>
+#include <svx/unomid.hxx>
#include <drawsh.hxx>
#include <drawview.hxx>
@@ -343,6 +344,35 @@ static void setupFillColorForChart(SfxViewShell* pShell, SfxItemSet& rSet)
pShell->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED,
(".uno:FillColor=" + std::to_string(nFillColor)).c_str());
}
+
+ if (comphelper::LibreOfficeKit::isActive() && xInfo->hasPropertyByName("FillGradientName"))
+ {
+ OUString aGradientName;
+ xPropSet->getPropertyValue("FillGradientName") >>= aGradientName;
+
+ ::css::uno::Reference< ::css::frame::XController > xChartController = xChart->getCurrentController();
+ if( xChartController.is() )
+ {
+ css::uno::Reference<css::lang::XMultiServiceFactory> xFact(xChartController->getModel(), css::uno::UNO_QUERY);
+
+ if (xFact.is())
+ {
+ css::uno::Reference<css::container::XNameAccess> xNameAccess(
+ xFact->createInstance("com.sun.star.drawing.GradientTable"), css::uno::UNO_QUERY);
+
+ if (xNameAccess.is() && xNameAccess->hasByName(aGradientName))
+ {
+ css::uno::Any aAny = xNameAccess->getByName(aGradientName);
+
+ XFillGradientItem aItem;
+ aItem.SetName(aGradientName);
+ aItem.PutValue(aAny, MID_FILLGRADIENT);
+
+ rSet.Put(aItem);
+ }
+ }
+ }
+ }
}
}
}