summaryrefslogtreecommitdiff
path: root/sc/source/core
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2024-01-15 09:49:18 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2024-01-16 12:23:49 +0100
commitb804dc3c61ab595d3971e1b1a0e9a09ea498a7e4 (patch)
tree3af550f878f062e06521dd0f915368d83d7efb64 /sc/source/core
parent5276aa03fa94e4c6b3e42c33647e649bb5d7c64f (diff)
Use correct type when getting document colors
After commit 0460be8848b0ce02c07183e41dd7137ac3b94164 Send document colors with lok callback There was issue detected by CI: /sc/source/core/data/document10.cxx:198:46: runtime error: downcast of address 0x6100000efa40 which does not point to an object of type 'const SvxColorItem' 0x6100000efa40: note: object is of type 'SvxBrushItem' 00 00 00 00 b0 79 19 48 ce 7f 00 00 01 00 00 00 94 00 be be 4c 17 00 00 a0 be be be cc cc ff 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'SvxBrushItem' #0 0x7fce1fbed369 in ScDocument::GetDocColors() /sc/source/core/data/document10.cxx:198:46 Change-Id: I41f28b6bb54d7720d58c16d75b9d116a53f106cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162077 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'sc/source/core')
-rw-r--r--sc/source/core/data/document10.cxx19
1 files changed, 5 insertions, 14 deletions
diff --git a/sc/source/core/data/document10.cxx b/sc/source/core/data/document10.cxx
index 61c75b5e2cc5..a2d1ae67b919 100644
--- a/sc/source/core/data/document10.cxx
+++ b/sc/source/core/data/document10.cxx
@@ -22,7 +22,7 @@
#include <refupdatecontext.hxx>
#include <sal/log.hxx>
-#include <editeng/colritem.hxx>
+#include <svx/DocumentColorHelper.hxx>
#include <scitems.hxx>
#include <datamapper.hxx>
#include <docsh.hxx>
@@ -188,19 +188,10 @@ std::set<Color> ScDocument::GetDocColors()
{
std::set<Color> aDocColors;
ScDocumentPool *pPool = GetPool();
- const sal_uInt16 pAttribs[] = {ATTR_BACKGROUND, ATTR_FONT_COLOR};
- for (sal_uInt16 nAttrib : pAttribs)
- {
- ItemSurrogates aSurrogates;
- pPool->GetItemSurrogates(aSurrogates, nAttrib);
- for (const SfxPoolItem* pItem : aSurrogates)
- {
- const SvxColorItem *pColorItem = static_cast<const SvxColorItem*>(pItem);
- Color aColor( pColorItem->GetValue() );
- if (COL_AUTO != aColor)
- aDocColors.insert(aColor);
- }
- }
+
+ svx::DocumentColorHelper::queryColors<SvxBrushItem>(ATTR_BACKGROUND, pPool, aDocColors);
+ svx::DocumentColorHelper::queryColors<SvxColorItem>(ATTR_FONT_COLOR, pPool, aDocColors);
+
return aDocColors;
}