summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarper Akdemir <sarper.akdemir@collabora.com>2021-11-01 01:23:31 +0300
committerSarper Akdemir <sarper.akdemir@collabora.com>2021-11-01 03:25:47 +0300
commit7adc1fa124a334578657466e32dbbbaad3439350 (patch)
tree6e9d2cfa12e78889578f70d79ddaead2fb98e212
parentc089e07b5b74bd02f37889706892bc12b1a8be99 (diff)
WIP: refactor SfxObjectShell out of SvxColorItemfeature/themesupport2
Change-Id: Ib6be30a543b3ecac117260e7b0d4a4a5cb3e2411
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx18
-rw-r--r--cui/source/dialogs/SpellDialog.cxx2
-rw-r--r--cui/source/tabpages/backgrnd.cxx8
-rw-r--r--cui/source/tabpages/chardlg.cxx2
-rw-r--r--dbaccess/source/ui/control/sqledit.cxx4
-rw-r--r--editeng/source/editeng/editeng.cxx4
-rw-r--r--editeng/source/items/textitem.cxx61
-rw-r--r--editeng/source/rtf/rtfitem.cxx5
-rw-r--r--extensions/source/propctrlr/fontdialog.cxx2
-rw-r--r--filter/source/msfilter/svdfppt.cxx6
-rw-r--r--include/editeng/colritem.hxx15
-rw-r--r--include/editeng/editeng.hxx3
-rw-r--r--include/sfx2/ColorSets.hxx14
-rw-r--r--include/svx/svx3ditems.hxx44
-rw-r--r--reportdesign/source/ui/misc/UITools.cxx2
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx4
-rw-r--r--sc/source/filter/excel/xistyle.cxx2
-rw-r--r--sc/source/filter/html/htmlpars.cxx2
-rw-r--r--sc/source/filter/oox/stylesbuffer.cxx2
-rw-r--r--sc/source/filter/orcus/interface.cxx2
-rw-r--r--sc/source/ui/app/inputhdl.cxx4
-rw-r--r--sc/source/ui/view/editsh.cxx2
-rw-r--r--sc/source/ui/view/formatsh.cxx8
-rw-r--r--sc/source/ui/view/output2.cxx2
-rw-r--r--sc/source/ui/view/tabvwshf.cxx2
-rw-r--r--sd/qa/unit/dialogs-test.cxx2
-rw-r--r--sd/source/core/drawdoc4.cxx20
-rw-r--r--sd/source/core/stlpool.cxx16
-rw-r--r--sd/source/ui/func/fuchar.cxx2
-rw-r--r--sd/source/ui/func/fuoaprms.cxx4
-rw-r--r--sd/source/ui/func/futempl.cxx2
-rw-r--r--sd/source/ui/view/drtxtob1.cxx4
-rw-r--r--sfx2/source/styles/ColorSets.cxx13
-rw-r--r--svx/source/customshapes/EnhancedCustomShape3d.cxx10
-rw-r--r--svx/source/engine3d/float3d.cxx38
-rw-r--r--svx/source/svdraw/svdfmtf.cxx2
-rw-r--r--svx/source/svdraw/svdpdf.cxx3
-rw-r--r--svx/source/toolbars/extrusionbar.cxx2
-rw-r--r--sw/source/core/doc/DocumentStylePoolManager.cxx6
-rw-r--r--sw/source/core/table/swtable.cxx2
-rw-r--r--sw/source/filter/html/htmldrawreader.cxx2
-rw-r--r--sw/source/filter/html/htmlforw.cxx2
-rw-r--r--sw/source/filter/html/svxcss1.cxx2
-rw-r--r--sw/source/filter/html/swhtml.cxx2
-rw-r--r--sw/source/uibase/app/docshini.cxx2
-rw-r--r--sw/source/uibase/app/swmodul1.cxx2
-rw-r--r--sw/source/uibase/shells/basesh.cxx2
-rw-r--r--sw/source/uibase/shells/drwtxtex.cxx4
-rw-r--r--sw/source/uibase/shells/frmsh.cxx2
-rw-r--r--sw/source/uibase/shells/tabsh.cxx2
-rw-r--r--sw/source/uibase/shells/textsh1.cxx4
51 files changed, 184 insertions, 188 deletions
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
index c4b28162d08c..c9bda82dda39 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
@@ -470,44 +470,44 @@ void ThreeD_SceneIllumination_TabPage::updatePreview()
LightSourceInfo* pInfo = &m_pLightSourceInfoList[0];
// AmbientColor
- aItemSet.Put(makeSvx3DAmbientcolorItem(m_xLB_AmbientLight->GetSelectEntryColor()));
+ aItemSet.Put(makeSvx3DAmbientcolorItem(m_xLB_AmbientLight->GetSelectEntryColor(), aItemSet));
- aItemSet.Put(makeSvx3DLightcolor1Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor1Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff1Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection1Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[1];
- aItemSet.Put(makeSvx3DLightcolor2Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor2Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff2Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection2Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[2];
- aItemSet.Put(makeSvx3DLightcolor3Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor3Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff3Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection3Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[3];
- aItemSet.Put(makeSvx3DLightcolor4Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor4Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff4Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection4Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[4];
- aItemSet.Put(makeSvx3DLightcolor5Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor5Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff5Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection5Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[5];
- aItemSet.Put(makeSvx3DLightcolor6Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor6Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff6Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection6Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[6];
- aItemSet.Put(makeSvx3DLightcolor7Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor7Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff7Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection7Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
pInfo = &m_pLightSourceInfoList[7];
- aItemSet.Put(makeSvx3DLightcolor8Item(pInfo->aLightSource.nDiffuseColor));
+ aItemSet.Put(makeSvx3DLightcolor8Item(pInfo->aLightSource.nDiffuseColor, aItemSet));
aItemSet.Put(makeSvx3DLightOnOff8Item(pInfo->aLightSource.bIsEnabled));
aItemSet.Put(makeSvx3DLightDirection8Item(Direction3DToB3DVector(pInfo->aLightSource.aDirection)));
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index b583fa03768e..5955a0c6b727 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -1665,7 +1665,7 @@ void SentenceEditWindow_Impl::MoveErrorMarkTo(sal_Int32 nStart, sal_Int32 nEnd,
m_xEditEngine->RemoveAttribs(aAll, false, EE_CHAR_WEIGHT_CTL);
SfxItemSet aSet(m_xEditEngine->GetEmptyItemSet());
- aSet.Put(SvxColorItem(bGrammarError ? COL_LIGHTBLUE : COL_LIGHTRED, EE_CHAR_COLOR));
+ aSet.Put(SvxColorItem(bGrammarError ? COL_LIGHTBLUE : COL_LIGHTRED, ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT_CJK));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT_CTL));
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 3aac1fae51a7..0c42e86b2b25 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -153,8 +153,8 @@ bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
{
if ( SID_ATTR_CHAR_BACK_COLOR == nSlot )
{
- maSet.Put( SvxColorItem( COL_TRANSPARENT, nWhich ) );
- rCoreSet->Put( SvxColorItem( COL_TRANSPARENT, nWhich ) );
+ maSet.Put( SvxColorItem( COL_TRANSPARENT, ColorSets::getColorSetsFromItemSet(maSet), nWhich ) );
+ rCoreSet->Put( SvxColorItem( COL_TRANSPARENT, ColorSets::getColorSetsFromItemSet(maSet), nWhich ) );
}
else
{
@@ -169,8 +169,8 @@ bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
XFillColorItem aColorItem( maSet.Get( XATTR_FILLCOLOR ) );
if ( SID_ATTR_CHAR_BACK_COLOR == nSlot )
{
- maSet.Put( SvxColorItem( aColorItem.GetColorValue(), nWhich ) );
- rCoreSet->Put( SvxColorItem( aColorItem.GetColorValue(), nWhich ) );
+ maSet.Put( SvxColorItem( aColorItem.GetColorValue(), ColorSets::getColorSetsFromItemSet(maSet), nWhich ) );
+ rCoreSet->Put( SvxColorItem( aColorItem.GetColorValue(), ColorSets::getColorSetsFromItemSet(maSet), nWhich ) );
}
else
{
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index a4cc33265a18..5a1c6dd79596 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -1595,7 +1595,7 @@ bool SvxCharEffectsPage::FillItemSetColor_Impl( SfxItemSet& rSet )
}
if (bChanged)
- rSet.Put( SvxColorItem( aSelectedColor, nWhich ) );
+ rSet.Put( SvxColorItem( aSelectedColor, ColorSets::getColorSetsFromItemSet(rSet), nWhich ) );
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
rSet.InvalidateItem(nWhich);
diff --git a/dbaccess/source/ui/control/sqledit.cxx b/dbaccess/source/ui/control/sqledit.cxx
index c53f684dab4a..482dad8812ef 100644
--- a/dbaccess/source/ui/control/sqledit.cxx
+++ b/dbaccess/source/ui/control/sqledit.cxx
@@ -210,7 +210,7 @@ void SQLEditView::UpdateData()
for (auto const& portion : aPortions)
{
SfxItemSet aSet(rEditEngine.GetEmptyItemSet());
- aSet.Put(SvxColorItem(GetColorValue(portion.tokenType), EE_CHAR_COLOR));
+ aSet.Put(SvxColorItem(GetColorValue(portion.tokenType), ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR));
rEditEngine.QuickSetAttribs(aSet, ESelection(nLine, portion.nBegin, nLine, portion.nEnd));
}
}
@@ -280,7 +280,7 @@ void SQLEditView::DoBracketHilight(sal_uInt16 nKey)
if (!nCount)
{
SfxItemSet aSet(m_xEditEngine->GetEmptyItemSet());
- aSet.Put(SvxColorItem(Color(0,0,0), EE_CHAR_COLOR));
+ aSet.Put(SvxColorItem(Color(0,0,0), ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR));
aSet.Put(SvxWeightItem(WEIGHT_ULTRABOLD, EE_CHAR_WEIGHT));
aSet.Put(SvxWeightItem(WEIGHT_ULTRABOLD, EE_CHAR_WEIGHT_CJK));
aSet.Put(SvxWeightItem(WEIGHT_ULTRABOLD, EE_CHAR_WEIGHT_CTL));
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index b90ad3127fee..bdf4dcae130b 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -2635,8 +2635,8 @@ void EditEngine::SetFontInfoInItemSet( SfxItemSet& rSet, const SvxFont& rFont )
rSet.Put( SvxShadowedItem( rFont.IsShadow(), EE_CHAR_SHADOW ) );
rSet.Put( SvxEscapementItem( rFont.GetEscapement(), rFont.GetPropr(), EE_CHAR_ESCAPEMENT ) );
rSet.Put( SvxWeightItem( rFont.GetWeight(), EE_CHAR_WEIGHT ) );
- rSet.Put( SvxColorItem( rFont.GetColor(), EE_CHAR_COLOR ) );
- rSet.Put( SvxColorItem( rFont.GetFillColor(), EE_CHAR_BKGCOLOR ) );
+ rSet.Put( SvxColorItem( rFont.GetColor(), ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_COLOR ) );
+ rSet.Put( SvxColorItem( rFont.GetFillColor(), ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_BKGCOLOR ) );
rSet.Put( SvxUnderlineItem( rFont.GetUnderline(), EE_CHAR_UNDERLINE ) );
rSet.Put( SvxOverlineItem( rFont.GetOverline(), EE_CHAR_OVERLINE ) );
rSet.Put( SvxCrossedOutItem( rFont.GetStrikeout(), EE_CHAR_STRIKEOUT ) );
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index 088e2b7d0dbd..9848f8bcb886 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1321,30 +1321,14 @@ bool ThemeColorData::operator==(const ThemeColorData &rOther) const
return true;
else
return mnThemeColorIndex == rOther.mnThemeColorIndex
- && mnVirtualThemeColorSetIndex == rOther.mnVirtualThemeColorSetIndex
+ // TODO: && mpVirtualThemeColorSet == rOther.mpVirtualThemeColorSet
&& mnTintShade == rOther.mnTintShade;
}
std::optional<Color> ThemeColorData::getThemeColorIfNeedsUpdate() const
{
- // HACK: after getting rid of SfxObjectShell::Current() should be
- // able to get rid of mnContainerIndex
- if (mnThemeColorIndex != -1 && mnVirtualThemeColorSetIndex != -1)
+ if (mnThemeColorIndex != -1)
{
- // HACK: try to get the pointer to the container.. if it's not there
- // We won't need this after figuring out a better way of interacting with SfxObjectShell
- if(mpVirtualThemeColorSet.expired())
- {
- if (SfxObjectShell* pObjShell = SfxObjectShell::Current())
- {
- if (const SfxColorSetListItem* pColorSetItem = pObjShell->GetItem(SID_COLOR_SETS))
- {
- ColorSets& rColorSets = pColorSetItem->GetSfxColorSetList();
- mpVirtualThemeColorSet = rColorSets.getVirtualColorSet(mnVirtualThemeColorSetIndex);
- }
- }
- }
-
if (auto pVirtualThemeColorSet = mpVirtualThemeColorSet.lock())
{
if ( auto pColorSet = pVirtualThemeColorSet->getColorSetPtr().lock() )
@@ -1407,36 +1391,18 @@ void ThemeColorData::RecalculateOnNextGet()
void ThemeColorData::setVirtualThemeColorSet(sal_Int32 nVirtualThemeColorSetIndex)
{
- // HACK:
- mnVirtualThemeColorSetIndex = nVirtualThemeColorSetIndex;
- return;
-
- // After swapping out SfxObjectShell::Current() with something reasonable
- // this should work:
- if (SfxObjectShell* pObjShell = SfxObjectShell::Current())
+ if (mpColorSets)
{
- if (const SfxColorSetListItem* pColorSetItem = pObjShell->GetItem(SID_COLOR_SETS))
- {
- ColorSets& rColorSets = pColorSetItem->GetSfxColorSetList();
- mpVirtualThemeColorSet = rColorSets.getVirtualColorSet(nVirtualThemeColorSetIndex);
- }
+ mpVirtualThemeColorSet = mpColorSets->getVirtualColorSet(nVirtualThemeColorSetIndex);
}
}
sal_Int32 ThemeColorData::getVirtualThemeColorSetIndex() const
{
- // HACK:
- return mnVirtualThemeColorSetIndex;
-
- // After swapping out SfxObjectShell::Current() with something reasonable
- // this should work:
- if (SfxObjectShell* pObjShell = SfxObjectShell::Current())
- {
- if (const SfxColorSetListItem* pColorSetItem = pObjShell->GetItem(SID_COLOR_SETS))
- {
- return pColorSetItem->GetSfxColorSetList().getVirtualColorSetIndex(mpVirtualThemeColorSet);
- }
- }
+ if (mpColorSets)
+ return mpColorSets->getVirtualColorSetIndex(mpVirtualThemeColorSet);
+ else
+ return -1;
}
// class SvxColorItem ----------------------------------------------------
@@ -1447,10 +1413,17 @@ SvxColorItem::SvxColorItem( const sal_uInt16 nId ) :
{
}
-SvxColorItem::SvxColorItem( const Color& rCol, const sal_uInt16 nId ) :
+SvxColorItem::SvxColorItem(const Color& rCol, const sal_uInt16 nId)
+ : SfxPoolItem(nId)
+ , mColor(rCol)
+ , maThemeColorData()
+{
+}
+
+SvxColorItem::SvxColorItem( const Color& rCol, const ColorSets* pColorSets, const sal_uInt16 nId ) :
SfxPoolItem( nId ),
mColor( rCol ),
- maThemeColorData()
+ maThemeColorData( pColorSets )
{
}
diff --git a/editeng/source/rtf/rtfitem.cxx b/editeng/source/rtf/rtfitem.cxx
index b6e0a93adee6..719176de28c0 100644
--- a/editeng/source/rtf/rtfitem.cxx
+++ b/editeng/source/rtf/rtfitem.cxx
@@ -924,8 +924,9 @@ ATTR_SETOVERLINE:
case RTF_CF:
if( aPlainMap.nColor )
{
- pSet->Put( SvxColorItem( GetColor( sal_uInt16(nTokenValue) ),
- aPlainMap.nColor ));
+ pSet->Put(SvxColorItem(GetColor(sal_uInt16(nTokenValue)),
+ ColorSets::getColorSetsFromItemSet(*pSet),
+ aPlainMap.nColor));
}
break;
//#i12501# While cb is clearly documented in the rtf spec, word
diff --git a/extensions/source/propctrlr/fontdialog.cxx b/extensions/source/propctrlr/fontdialog.cxx
index 0e4b11be2896..b50c28e93d32 100644
--- a/extensions/source/propctrlr/fontdialog.cxx
+++ b/extensions/source/propctrlr/fontdialog.cxx
@@ -235,7 +235,7 @@ namespace pcr
SvxUnderlineItem aUnderlineItem(eUnderline,CFID_UNDERLINE);
aUnderlineItem.SetColor(Color(ColorTransparency, nTextLineColor));
- SvxColorItem aSvxColorItem(Color(ColorTransparency, nColor32),CFID_CHARCOLOR);
+ SvxColorItem aSvxColorItem(Color(ColorTransparency, nColor32), ColorSets::getColorSetsFromItemSet(*_pSet), CFID_CHARCOLOR);
SvxLanguageItem aLanguageItem(Application::GetSettings().GetUILanguageTag().getLanguageType(), CFID_LANGUAGE);
// the 2 CJK props
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index f7ef3675a03d..ff39d8a9ffff 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -5756,14 +5756,14 @@ void PPTPortionObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager, T
break;
default: break;
}
- rSet.Put( SvxColorItem( aDefColor, EE_CHAR_COLOR ) );
+ rSet.Put( SvxColorItem( aDefColor, ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_COLOR ) );
}
else
{
if ( GetAttrib( PPT_CharAttr_FontColor, nVal, nDestinationInstance ) ) // text color (4Byte-Arg)
{
Color aCol( rManager.MSO_TEXT_CLR_ToColor( nVal ) );
- rSet.Put( SvxColorItem( aCol, EE_CHAR_COLOR ) );
+ rSet.Put(SvxColorItem(aCol, ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_COLOR));
if ( nDestinationInstance == TSS_Type::Unknown )
mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ mnDepth ].mnFontColorInStyleSheet = aCol;
}
@@ -5772,7 +5772,7 @@ void PPTPortionObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager, T
Color aCol( rManager.MSO_TEXT_CLR_ToColor( nVal ) );
Color& aColorInSheet = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ mnDepth ].mnFontColorInStyleSheet;
if ( aColorInSheet != aCol )
- rSet.Put( SvxColorItem( aCol, EE_CHAR_COLOR ) );
+ rSet.Put( SvxColorItem( aCol, ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_COLOR ) );
}
}
diff --git a/include/editeng/colritem.hxx b/include/editeng/colritem.hxx
index fe300045598f..75d5ef480c42 100644
--- a/include/editeng/colritem.hxx
+++ b/include/editeng/colritem.hxx
@@ -27,7 +27,8 @@
#include <sal/log.hxx>
-#define VERSION_USEAUTOCOLOR 1
+#define VERSION_USEAUTOCOLOR 1
+
/** ThemeColorData holds theme color related
data of a color item eg. SvxColorItem
@@ -35,6 +36,8 @@
class ThemeColorData
{
public:
+ ThemeColorData() = default;
+ ThemeColorData(const ColorSets* pColorSets) : mpColorSets(pColorSets){}
bool operator==(const ThemeColorData& rOther) const;
/** Calculates and returns the theme color from current ThemeColorData
@@ -77,14 +80,7 @@ private:
// mutable since marked as false after recalculation in getThemeColorIfNeedsUpdate
mutable bool mbRecalculateColor = true;
- // HACK: VirtualColorSet index
- // should be able to remove this after removing SfxObjectShell::Current()
- // from the themecolordata code
- sal_Int32 mnVirtualThemeColorSetIndex = -1;
-
-
- // HACK: mutable here until I fix the SfxObjectShell interactions..
- mutable std::weak_ptr<VirtualThemeColorSet> mpVirtualThemeColorSet = std::weak_ptr<VirtualThemeColorSet>();
+ std::weak_ptr<VirtualThemeColorSet> mpVirtualThemeColorSet = std::weak_ptr<VirtualThemeColorSet>();
};
/** SvxColorItem item describes a color.
@@ -105,6 +101,7 @@ public:
explicit SvxColorItem(const sal_uInt16 nId);
SvxColorItem(const Color& aColor, const sal_uInt16 nId);
+ SvxColorItem(const Color& aColor, const ColorSets* pColorSets, const sal_uInt16 nId);
virtual ~SvxColorItem() override;
// "pure virtual Methods" from SfxPoolItem
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
index 53543cf178d2..88ce7700d654 100644
--- a/include/editeng/editeng.hxx
+++ b/include/editeng/editeng.hxx
@@ -29,6 +29,7 @@
#include <com/sun/star/i18n/WordType.hpp>
#include <com/sun/star/i18n/CharacterIteratorMode.hpp>
+#include <sfx2/ColorSets.hxx>
#include <svl/typedwhich.hxx>
#include <editeng/editdata.hxx>
#include <editeng/editstat.hxx>
@@ -417,6 +418,8 @@ public:
void SetEditTextObjectPool( SfxItemPool* pPool );
SfxItemPool* GetEditTextObjectPool() const;
+ ColorSets* GetColorSetsPtr() const;
+
void SetStyleSheetPool( SfxStyleSheetPool* pSPool );
SfxStyleSheetPool* GetStyleSheetPool();
diff --git a/include/sfx2/ColorSets.hxx b/include/sfx2/ColorSets.hxx
index 1f0cb6312c75..6b6735479c67 100644
--- a/include/sfx2/ColorSets.hxx
+++ b/include/sfx2/ColorSets.hxx
@@ -16,9 +16,13 @@
#include <rtl/ustring.hxx>
#include <sal/types.h>
#include <sfx2/dllapi.h>
+#include <sfx2/sfxsids.hrc>
#include <svl/poolitem.hxx>
+#include <svl/itemset.hxx>
#include <tools/color.hxx>
+class SfxColorSetListItem;
+
class ColorSet
{
OUString maColorSetName;
@@ -83,16 +87,18 @@ public:
return maColorSets.size() - 1;
}
- std::shared_ptr<VirtualThemeColorSet>& getVirtualColorSet(int nVirtualColorSetIndex)
+ const std::shared_ptr<VirtualThemeColorSet>& getVirtualColorSet(int nVirtualColorSetIndex) const
{
+ // HACK: dont forget to change this... :)
return maVirtualThemeColorSets[nVirtualColorSetIndex];
}
- sal_Int32 getVirtualColorSetIndex(const std::weak_ptr<VirtualThemeColorSet>& pVirtualColorSet)
+ sal_Int32
+ getVirtualColorSetIndex(const std::weak_ptr<VirtualThemeColorSet>& pVirtualColorSet) const
{
if (auto aIt = std::find_if(
maVirtualThemeColorSets.begin(), maVirtualThemeColorSets.end(),
- [pVirtualColorSet](std::shared_ptr<VirtualThemeColorSet>& pVirtualColorSet_) {
+ [pVirtualColorSet](const std::shared_ptr<VirtualThemeColorSet>& pVirtualColorSet_) {
return pVirtualColorSet_.get() == pVirtualColorSet.lock().get();
});
aIt != maVirtualThemeColorSets.end())
@@ -108,6 +114,8 @@ public:
std::make_shared<VirtualThemeColorSet>(getColorSetPtr(nIndexColorSetToReference)));
return maVirtualThemeColorSets.size() - 1;
}
+
+ static ColorSets* getColorSetsFromItemSet(const SfxItemSet& rSet);
};
class SFX2_DLLPUBLIC SfxColorSetListItem final : public SfxPoolItem
diff --git a/include/svx/svx3ditems.hxx b/include/svx/svx3ditems.hxx
index 7cb5eae6e399..190eb3a83245 100644
--- a/include/svx/svx3ditems.hxx
+++ b/include/svx/svx3ditems.hxx
@@ -105,12 +105,12 @@ inline SfxBoolItem makeSvx3DShadow3DItem(bool bVal) {
return SfxBoolItem(SDRATTR_3DOBJ_SHADOW_3D, bVal);
}
-inline SvxColorItem makeSvx3DMaterialEmissionItem(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DOBJ_MAT_EMISSION);
+inline SvxColorItem makeSvx3DMaterialEmissionItem(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DOBJ_MAT_EMISSION);
}
-inline SvxColorItem makeSvx3DMaterialSpecularItem(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DOBJ_MAT_SPECULAR);
+inline SvxColorItem makeSvx3DMaterialSpecularItem(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DOBJ_MAT_SPECULAR);
}
inline SfxUInt16Item makeSvx3DMaterialSpecularIntensityItem(sal_uInt16 nVal) {
@@ -164,40 +164,40 @@ inline SfxBoolItem makeSvx3DTwoSidedLightingItem(bool bVal) {
return SfxBoolItem(SDRATTR_3DSCENE_TWO_SIDED_LIGHTING, bVal);
}
-inline SvxColorItem makeSvx3DLightcolor1Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_1);
+inline SvxColorItem makeSvx3DLightcolor1Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_1);
}
-inline SvxColorItem makeSvx3DLightcolor2Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_2);
+inline SvxColorItem makeSvx3DLightcolor2Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_2);
}
-inline SvxColorItem makeSvx3DLightcolor3Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_3);
+inline SvxColorItem makeSvx3DLightcolor3Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_3);
}
-inline SvxColorItem makeSvx3DLightcolor4Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_4);
+inline SvxColorItem makeSvx3DLightcolor4Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_4);
}
-inline SvxColorItem makeSvx3DLightcolor5Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_5);
+inline SvxColorItem makeSvx3DLightcolor5Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_5);
}
-inline SvxColorItem makeSvx3DLightcolor6Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_6);
+inline SvxColorItem makeSvx3DLightcolor6Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_6);
}
-inline SvxColorItem makeSvx3DLightcolor7Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_7);
+inline SvxColorItem makeSvx3DLightcolor7Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_7);
}
-inline SvxColorItem makeSvx3DLightcolor8Item(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_LIGHTCOLOR_8);
+inline SvxColorItem makeSvx3DLightcolor8Item(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_LIGHTCOLOR_8);
}
-inline SvxColorItem makeSvx3DAmbientcolorItem(const Color& rCol) {
- return SvxColorItem(rCol, SDRATTR_3DSCENE_AMBIENTCOLOR);
+inline SvxColorItem makeSvx3DAmbientcolorItem(const Color& rCol, const SfxItemSet& rSet) {
+ return SvxColorItem(rCol, ColorSets::getColorSetsFromItemSet(rSet), SDRATTR_3DSCENE_AMBIENTCOLOR);
}
inline SfxBoolItem makeSvx3DLightOnOff1Item(bool bVal) {
diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx
index 6be0594813f6..4ab27ae03928 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -348,7 +348,7 @@ namespace
_rItemSet.Put(SvxKerningItem(_rxReportControlFormat->getCharKerning(),ITEMID_KERNING));
_rItemSet.Put(SvxEmphasisMarkItem(static_cast<FontEmphasisMark>(_rxReportControlFormat->getCharEmphasis()),ITEMID_EMPHASISMARK));
_rItemSet.Put(SvxCharReliefItem(static_cast<FontRelief>(_rxReportControlFormat->getCharRelief()),ITEMID_CHARRELIEF));
- _rItemSet.Put(SvxColorItem(::Color(ColorTransparency, _rxReportControlFormat->getCharColor()),ITEMID_COLOR));
+ _rItemSet.Put(SvxColorItem(::Color(ColorTransparency, _rxReportControlFormat->getCharColor()), ColorSets::getColorSetsFromItemSet(_rItemSet), ITEMID_COLOR));
_rItemSet.Put(SvxCharRotateItem(Degree10(_rxReportControlFormat->getCharRotation()),false,ITEMID_CHARROTATE));
_rItemSet.Put(SvxCharScaleWidthItem(_rxReportControlFormat->getCharScaleWidth(),ITEMID_CHARSCALE_W));
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 31c0aae3dd71..d378eac54d4a 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -1532,7 +1532,7 @@ void setAttribute( ScFieldEditEngine& rEE, sal_Int32 nPara, sal_Int32 nStart, sa
break;
case EE_CHAR_COLOR:
{
- SvxColorItem aItem(nColor, nType);
+ SvxColorItem aItem(nColor, ColorSets::getColorSetsFromItemSet(aItemSet), nType);
aItemSet.Put(aItem);
rEE.QuickSetAttribs(aItemSet, aSel);
}
@@ -2039,7 +2039,7 @@ void ScExportTest::testRichTextExportODS()
CPPUNIT_ASSERT_MESSAGE("Incorrect B9 value.", aCheckFunc.checkB9(pEditText));
ScPatternAttr aCellFontColor(rDoc3.GetPool());
- aCellFontColor.GetItemSet().Put(SvxColorItem(COL_BLUE, ATTR_FONT_COLOR));
+ aCellFontColor.GetItemSet().Put(SvxColorItem(COL_BLUE, ColorSets::getColorSetsFromItemSet(aCellFontColor.GetItemSet()), ATTR_FONT_COLOR));
// Set font color of B10 to blue.
rDoc3.ApplyPattern(1, 9, 0, aCellFontColor);
pEE->Clear();
diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 995219fc710a..a8a5cd56a78f 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -366,7 +366,7 @@ void XclImpFont::FillToItemSet( SfxItemSet& rItemSet, XclFontItemType eType, boo
// Font color - pass AUTO_COL to item
if( mbColorUsed )
- PUTITEM( SvxColorItem( maData.maColor, ATTR_FONT_COLOR ), ATTR_FONT_COLOR, EE_CHAR_COLOR );
+ PUTITEM( SvxColorItem( maData.maColor, ColorSets::getColorSetsFromItemSet(rItemSet), ATTR_FONT_COLOR ), ATTR_FONT_COLOR, EE_CHAR_COLOR );
// Font weight (for all script types)
if( mbWeightUsed )
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index e320269352ed..ba9761336bc7 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -1438,7 +1438,7 @@ void ScHTMLLayoutParser::FontOn( HtmlImportInfo* pInfo )
{
Color aColor;
rOption.GetColor( aColor );
- mxActEntry->aItemSet.Put( SvxColorItem( aColor, ATTR_FONT_COLOR ) );
+ mxActEntry->aItemSet.Put( SvxColorItem( aColor, ColorSets::getColorSetsFromItemSet(mxActEntry->aItemSet), ATTR_FONT_COLOR ) );
}
break;
default: break;
diff --git a/sc/source/filter/oox/stylesbuffer.cxx b/sc/source/filter/oox/stylesbuffer.cxx
index b0c574f09378..7e6dce759fc6 100644
--- a/sc/source/filter/oox/stylesbuffer.cxx
+++ b/sc/source/filter/oox/stylesbuffer.cxx
@@ -929,7 +929,7 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool bEditEngineText, bool bSkip
// character color
if( maUsedFlags.mbColorUsed )
{
- ScfTools::PutItem( rItemSet,SvxColorItem( maApiData.mnColor, bEditEngineText ? static_cast<sal_uInt16>(EE_CHAR_COLOR) : ATTR_FONT_COLOR), bSkipPoolDefs );
+ ScfTools::PutItem( rItemSet,SvxColorItem( maApiData.mnColor, ColorSets::getColorSetsFromItemSet(rItemSet), bEditEngineText ? static_cast<sal_uInt16>(EE_CHAR_COLOR) : ATTR_FONT_COLOR), bSkipPoolDefs );
}
// underline style
if( maUsedFlags.mbUnderlineUsed )
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index b996449c8218..715a4b2899d1 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -1365,7 +1365,7 @@ void ScOrcusStyles::font::applyToItemSet(SfxItemSet& rSet) const
FontWeight eWeight = mbBold ? WEIGHT_BOLD : WEIGHT_NORMAL;
rSet.Put(SvxWeightItem(eWeight, ATTR_FONT_WEIGHT));
- rSet.Put( SvxColorItem(maColor, ATTR_FONT_COLOR));
+ rSet.Put( SvxColorItem(maColor, ColorSets::getColorSetsFromItemSet(rSet), ATTR_FONT_COLOR));
if(!maName.isEmpty())
rSet.Put( SvxFontItem( FAMILY_DONTKNOW, maName, maName, PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, ATTR_FONT ));
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index a8bf4a39e8f9..4e1affc638ac 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -410,7 +410,7 @@ handle_r1c1:
ESelection aSel( 0, nStart, 0, nPos );
SfxItemSet aSet( mpEditEngine->GetEmptyItemSet() );
- aSet.Put( SvxColorItem( nColor, EE_CHAR_COLOR ) );
+ aSet.Put( SvxColorItem( nColor, ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR ) );
mpEditEngine->QuickSetAttribs( aSet, aSel );
++nCount;
}
@@ -610,7 +610,7 @@ void ScInputHandler::UpdateRange( sal_uInt16 nIndex, const ScRange& rNew )
lcl_Replace( pTopView, aNewStr, aOldSel );
lcl_Replace( pTableView, aNewStr, aOldSel );
- aSet.Put( SvxColorItem( nNewColor, EE_CHAR_COLOR ) );
+ aSet.Put( SvxColorItem( nNewColor, ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR ) );
mpEditEngine->QuickSetAttribs( aSet, aOldSel );
bInRangeUpdate = true;
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index f51e8f49290f..027ce966711a 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -978,7 +978,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
else
aColor = Color( ColorTransparency, sColor.toInt32( 16 ) );
- aSet.Put( SvxColorItem( aColor, EE_CHAR_COLOR ) );
+ aSet.Put( SvxColorItem( aColor, ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR ) );
}
else
{
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index a418f3185c8a..495b3088bc51 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -2066,7 +2066,7 @@ void ScFormatShell::GetAttrState( SfxItemSet& rSet )
{
case SID_BACKGROUND_COLOR:
{
- rSet.Put( SvxColorItem( rBrushItem.GetColor(), SID_BACKGROUND_COLOR ) );
+ rSet.Put( SvxColorItem( rBrushItem.GetColor(), ColorSets::getColorSetsFromItemSet(rSet), SID_BACKGROUND_COLOR ) );
if(SfxItemState::DONTCARE == rAttrSet.GetItemState(ATTR_BACKGROUND))
{
rSet.InvalidateItem(SID_BACKGROUND_COLOR);
@@ -2206,16 +2206,16 @@ void ScFormatShell::GetAttrState( SfxItemSet& rSet )
if(bColDisable) // if different lines have different colors
{
aCol = COL_TRANSPARENT;
- rSet.Put( SvxColorItem(aCol, SID_FRAME_LINECOLOR ) );
+ rSet.Put( SvxColorItem(aCol, ColorSets::getColorSetsFromItemSet(rSet), SID_FRAME_LINECOLOR ) );
rSet.InvalidateItem(SID_FRAME_LINECOLOR);
}
else if (!bCol) // if no line available
{
aCol = COL_AUTO;
- rSet.Put( SvxColorItem(aCol, SID_FRAME_LINECOLOR ) );
+ rSet.Put( SvxColorItem(aCol, ColorSets::getColorSetsFromItemSet(rSet), SID_FRAME_LINECOLOR ) );
}
else
- rSet.Put( SvxColorItem(aCol, SID_FRAME_LINECOLOR ) );
+ rSet.Put( SvxColorItem(aCol, ColorSets::getColorSetsFromItemSet(rSet), SID_FRAME_LINECOLOR ) );
}
else // if( nWhich == SID_FRAME_LINESTYLE)
{
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 2d45fa62eaa7..e040d1a3278b 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -916,7 +916,7 @@ static void lcl_SetEditColor( EditEngine& rEngine, const Color& rColor )
{
ESelection aSel( 0, 0, rEngine.GetParagraphCount(), 0 );
SfxItemSet aSet( rEngine.GetEmptyItemSet() );
- aSet.Put( SvxColorItem( rColor, EE_CHAR_COLOR ) );
+ aSet.Put( SvxColorItem( rColor, ColorSets::getColorSetsFromItemSet(aSet), EE_CHAR_COLOR ) );
rEngine.QuickSetAttribs( aSet, aSel );
// function is called with update mode set to FALSE
}
diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index 57b0bf6696d1..7e3ecc332edb 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -992,7 +992,7 @@ void ScTabViewShell::GetStateTable( SfxItemSet& rSet )
case FID_TAB_SET_TAB_BG_COLOR:
{
Color aColor = rDoc.GetTabBgColor( nTab );
- rSet.Put( SvxColorItem( aColor, nWhich ) );
+ rSet.Put( SvxColorItem( aColor, ColorSets::getColorSetsFromItemSet(rSet), nWhich ) );
}
break;
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index f796823fc426..0bdbd4b44968 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -502,7 +502,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
aSet.Put(SfxUInt16Item(ATTR_ANIMATION_TEXTEFFECT, sal_uInt16(presentation::AnimationEffect_NONE)));
aSet.InvalidateItem(ATTR_ANIMATION_SPEED);
aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, false));
- aSet.Put(SvxColorItem(COL_LIGHTGRAY, ATTR_ANIMATION_COLOR));
+ aSet.Put(SvxColorItem(COL_LIGHTGRAY, ColorSets::getColorSetsFromItemSet(aSet), ATTR_ANIMATION_COLOR));
aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, false));
aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, false));
aSet.InvalidateItem(ATTR_ANIMATION_SOUNDFILE);
diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx
index e078afc58b54..f18ad8ae065b 100644
--- a/sd/source/core/drawdoc4.cxx
+++ b/sd/source/core/drawdoc4.cxx
@@ -215,7 +215,7 @@ void SdDrawDocument::CreateLayoutTemplates()
rISet.Put(SvxCaseMapItem(SvxCaseMap::NotMapped, EE_CHAR_CASEMAP ));
rISet.Put(SvxEmphasisMarkItem(FontEmphasisMark::NONE, EE_CHAR_EMPHASISMARK));
rISet.Put(SvxCharReliefItem(FontRelief::NONE, EE_CHAR_RELIEF));
- rISet.Put(SvxColorItem(COL_AUTO, EE_CHAR_COLOR ));
+ rISet.Put(SvxColorItem(COL_AUTO, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR ));
// Paragraph attributes (Edit Engine)
rISet.Put(SvxLRSpaceItem(EE_PARA_LRSPACE));
@@ -443,7 +443,7 @@ void SdDrawDocument::CreateLayoutTemplates()
aFillGradient.SetName( aName );
aFillGradient.SetGradientValue(aGradient);
pISet->Put( aFillGradient );
- pISet->Put( SvxColorItem(COL_WHITE, EE_CHAR_COLOR )); // font white
+ pISet->Put( SvxColorItem(COL_WHITE, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font white
}
// Graphic > Shapes > Filled > Green
{
@@ -459,7 +459,7 @@ void SdDrawDocument::CreateLayoutTemplates()
aFillGradient.SetGradientValue(aGradient);
pISet->Put( aFillGradient );
pISet->Put( aSvxFontItem ); // font name
- pISet->Put( SvxColorItem(COL_WHITE, EE_CHAR_COLOR )); // font white
+ pISet->Put( SvxColorItem(COL_WHITE, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font white
}
// Graphic > Shapes > Filled > Red
{
@@ -474,7 +474,7 @@ void SdDrawDocument::CreateLayoutTemplates()
aFillGradient.SetName( aName );
aFillGradient.SetGradientValue(aGradient);
pISet->Put( aFillGradient );
- pISet->Put( SvxColorItem(COL_WHITE, EE_CHAR_COLOR )); // font white
+ pISet->Put( SvxColorItem(COL_WHITE, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font white
}
// Graphic > Shapes > Filled > Yellow
{
@@ -489,7 +489,7 @@ void SdDrawDocument::CreateLayoutTemplates()
aFillGradient.SetName( aName );
aFillGradient.SetGradientValue(aGradient);
pISet->Put( aFillGradient );
- pISet->Put( SvxColorItem(COL_WHITE, EE_CHAR_COLOR )); // font white
+ pISet->Put( SvxColorItem(COL_WHITE, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font white
}
// Graphic > Shapes > Outlines
OUString aOutlineName(SdResId(STR_POOLSHEET_OUTLINE));
@@ -512,7 +512,7 @@ void SdDrawDocument::CreateLayoutTemplates()
pSheet->SetHelpId( aHelpFile, HID_POOLSHEET_OUTLINE_BLUE );
pISet = &pSheet->GetItemSet();
pISet->Put( XLineColorItem(OUString(), Color(0x00355269)) ); // dark blue 2
- pISet->Put( SvxColorItem(Color(0x00355269), EE_CHAR_COLOR )); // font color
+ pISet->Put( SvxColorItem(Color(0x00355269), ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font color
}
// Graphic > Shapes > Outlines > Green
{
@@ -522,7 +522,7 @@ void SdDrawDocument::CreateLayoutTemplates()
pSheet->SetHelpId( aHelpFile, HID_POOLSHEET_OUTLINE_GREEN );
pISet = &pSheet->GetItemSet();
pISet->Put( XLineColorItem(OUString(), Color(0x00127622)) ); // dark green 2
- pISet->Put( SvxColorItem(Color(0x00127622), EE_CHAR_COLOR )); // font color
+ pISet->Put( SvxColorItem(Color(0x00127622), ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font color
}
// Graphic > Shapes > Outlines > Red
{
@@ -532,7 +532,7 @@ void SdDrawDocument::CreateLayoutTemplates()
pSheet->SetHelpId( aHelpFile, HID_POOLSHEET_OUTLINE_RED );
pISet = &pSheet->GetItemSet();
pISet->Put( XLineColorItem(OUString(), Color(0x00c9211e)) ); // dark red 2
- pISet->Put( SvxColorItem(Color(0x00c9211e), EE_CHAR_COLOR )); // font color
+ pISet->Put( SvxColorItem(Color(0x00c9211e), ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font color
}
// Graphic > Shapes > Outlines > Yellow
{
@@ -543,7 +543,7 @@ void SdDrawDocument::CreateLayoutTemplates()
pISet = &pSheet->GetItemSet();
pISet->Put( XLineStyleItem(drawing::LineStyle_SOLID));
pISet->Put( XLineColorItem(OUString(), Color(0x00b47804)) ); // dark gold 2
- pISet->Put( SvxColorItem(Color(0x00b47804), EE_CHAR_COLOR )); // font color
+ pISet->Put( SvxColorItem(Color(0x00b47804), ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR )); // font color
}
// Graphic > Lines
OUString aLinesName;
@@ -670,7 +670,7 @@ void SdDrawDocument::CreateDefaultCellStyles()
rISet.Put( SvxFontHeightItem( 635, 100, EE_CHAR_FONTHEIGHT_CJK ) ); // 18 pt
rISet.Put( SvxFontHeightItem( convertFontHeightToCTL( 635 ), 100, EE_CHAR_FONTHEIGHT_CTL ) ); // 18 pt
- rISet.Put(SvxColorItem(COL_AUTO, EE_CHAR_COLOR ));
+ rISet.Put(SvxColorItem(COL_AUTO, ColorSets::getColorSetsFromItemSet(rISet), EE_CHAR_COLOR ));
// Paragraph attributes (Edit Engine)
rISet.Put(SvxLRSpaceItem(EE_PARA_LRSPACE));
diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx
index d15aaf632b04..9101f6caeccd 100644
--- a/sd/source/core/stlpool.cxx
+++ b/sd/source/core/stlpool.cxx
@@ -238,8 +238,8 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName,
rSet.Put( SvxContourItem(false, EE_CHAR_OUTLINE ) );
rSet.Put( SvxEmphasisMarkItem(FontEmphasisMark::NONE, EE_CHAR_EMPHASISMARK ) );
rSet.Put( SvxCharReliefItem(FontRelief::NONE, EE_CHAR_RELIEF) );
- rSet.Put( SvxColorItem( COL_AUTO, EE_CHAR_COLOR) );
- rSet.Put( SvxColorItem( COL_AUTO, EE_CHAR_BKGCOLOR ) );
+ rSet.Put( SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_COLOR) );
+ rSet.Put( SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rSet), EE_CHAR_BKGCOLOR ) );
rSet.Put( XLineStyleItem(css::drawing::LineStyle_NONE) );
rSet.Put( XFillStyleItem(drawing::FillStyle_NONE) );
rSet.Put( SdrTextFitToSizeTypeItem(drawing::TextFitToSizeType_AUTOFIT) );
@@ -353,8 +353,8 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName,
rTitleSet.Put(SvxContourItem(false, EE_CHAR_OUTLINE ));
rTitleSet.Put( SvxEmphasisMarkItem(FontEmphasisMark::NONE, EE_CHAR_EMPHASISMARK ) );
rTitleSet.Put( SvxCharReliefItem(FontRelief::NONE, EE_CHAR_RELIEF ) );
- rTitleSet.Put(SvxColorItem( COL_AUTO, EE_CHAR_COLOR ));
- rTitleSet.Put(SvxColorItem( COL_AUTO, EE_CHAR_BKGCOLOR ));
+ rTitleSet.Put(SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rTitleSet), EE_CHAR_COLOR ));
+ rTitleSet.Put(SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rTitleSet), EE_CHAR_BKGCOLOR ));
rTitleSet.Put(SvxAdjustItem(SvxAdjust::Center, EE_PARA_JUST ));
rTitleSet.Put( SdrTextVertAdjustItem( SDRTEXTVERTADJUST_CENTER ) );
// #i16874# enable kerning by default but only for new documents
@@ -399,8 +399,8 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName,
rSubtitleSet.Put(SvxContourItem(false, EE_CHAR_OUTLINE ));
rSubtitleSet.Put( SvxEmphasisMarkItem(FontEmphasisMark::NONE, EE_CHAR_EMPHASISMARK ) );
rSubtitleSet.Put( SvxCharReliefItem(FontRelief::NONE, EE_CHAR_RELIEF ) );
- rSubtitleSet.Put(SvxColorItem( COL_AUTO, EE_CHAR_COLOR ));
- rSubtitleSet.Put(SvxColorItem( COL_AUTO, EE_CHAR_BKGCOLOR ));
+ rSubtitleSet.Put(SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rSubtitleSet), EE_CHAR_COLOR ));
+ rSubtitleSet.Put(SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rSubtitleSet), EE_CHAR_BKGCOLOR));
rSubtitleSet.Put(SvxAdjustItem(SvxAdjust::Center, EE_PARA_JUST ));
rSubtitleSet.Put( SdrTextVertAdjustItem( SDRTEXTVERTADJUST_CENTER ) );
// #i16874# enable kerning by default but only for new documents
@@ -448,8 +448,8 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(std::u16string_view rLayoutName,
rNotesSet.Put( SvxContourItem(false, EE_CHAR_OUTLINE ) );
rNotesSet.Put( SvxEmphasisMarkItem(FontEmphasisMark::NONE, EE_CHAR_EMPHASISMARK ) );
rNotesSet.Put( SvxCharReliefItem(FontRelief::NONE, EE_CHAR_RELIEF) );
- rNotesSet.Put( SvxColorItem( COL_AUTO, EE_CHAR_COLOR ) );
- rNotesSet.Put( SvxColorItem( COL_AUTO, EE_CHAR_BKGCOLOR ) );
+ rNotesSet.Put( SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rNotesSet), EE_CHAR_COLOR ) );
+ rNotesSet.Put( SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(rNotesSet), EE_CHAR_BKGCOLOR));
rNotesSet.Put( SvxLRSpaceItem( 0, 0, 600, -600, EE_PARA_LRSPACE ) );
// #i16874# enable kerning by default but only for new documents
rNotesSet.Put( SvxAutoKernItem( true, EE_CHAR_PAIRKERNING ) );
diff --git a/sd/source/ui/func/fuchar.cxx b/sd/source/ui/func/fuchar.cxx
index a1c69e25b041..b2981167b888 100644
--- a/sd/source/ui/func/fuchar.cxx
+++ b/sd/source/ui/func/fuchar.cxx
@@ -85,7 +85,7 @@ void FuChar::DoExecute( SfxRequest& rReq )
if ( pBrushItem )
{
- SvxColorItem aBackColorItem( pBrushItem->GetColor(), EE_CHAR_BKGCOLOR );
+ SvxColorItem aBackColorItem( pBrushItem->GetColor(), ColorSets::getColorSetsFromItemSet(aOtherSet), EE_CHAR_BKGCOLOR );
aOtherSet.ClearItem( SID_ATTR_BRUSH_CHAR );
aOtherSet.Put( aBackColorItem );
}
diff --git a/sd/source/ui/func/fuoaprms.cxx b/sd/source/ui/func/fuoaprms.cxx
index d6b7fa49115d..8cb9045a01a7 100644
--- a/sd/source/ui/func/fuoaprms.cxx
+++ b/sd/source/ui/func/fuoaprms.cxx
@@ -373,11 +373,11 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq )
aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, false));
if (nFadeColorSet == ATTR_SET)
- aSet.Put(SvxColorItem(aFadeColor, ATTR_ANIMATION_COLOR));
+ aSet.Put(SvxColorItem(aFadeColor, ColorSets::getColorSetsFromItemSet(aSet), ATTR_ANIMATION_COLOR));
else if (nFadeColorSet == ATTR_MIXED)
aSet.InvalidateItem(ATTR_ANIMATION_COLOR);
else
- aSet.Put(SvxColorItem(COL_LIGHTGRAY, ATTR_ANIMATION_COLOR));
+ aSet.Put(SvxColorItem(COL_LIGHTGRAY, ColorSets::getColorSetsFromItemSet(aSet), ATTR_ANIMATION_COLOR));
if (nInvisibleSet == ATTR_SET)
aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, bInvisible));
diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx
index a29fb21ab35c..f3ac1150196c 100644
--- a/sd/source/ui/func/futempl.cxx
+++ b/sd/source/ui/func/futempl.cxx
@@ -390,7 +390,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq )
if ( pBrushItem )
{
- SvxColorItem aBackColorItem(pBrushItem->GetColor(), EE_CHAR_BKGCOLOR);
+ SvxColorItem aBackColorItem(pBrushItem->GetColor(), ColorSets::getColorSetsFromItemSet(aTempSet), EE_CHAR_BKGCOLOR);
aTempSet.ClearItem( EE_CHAR_BKGCOLOR );
aTempSet.Put( aBackColorItem );
}
diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx
index 8c636345fc5b..e7193e5f2de6 100644
--- a/sd/source/ui/view/drtxtob1.cxx
+++ b/sd/source/ui/view/drtxtob1.cxx
@@ -88,14 +88,14 @@ namespace
{
case SID_ATTR_CHAR_COLOR:
{
- SvxColorItem aColorItem(aColor, EE_CHAR_COLOR);
+ SvxColorItem aColorItem(aColor, ColorSets::getColorSetsFromItemSet(*pArgs), EE_CHAR_COLOR);
pArgs->Put(aColorItem);
break;
}
case SID_ATTR_CHAR_BACK_COLOR:
{
- SvxColorItem pBackgroundItem(aColor, EE_CHAR_BKGCOLOR);
+ SvxColorItem pBackgroundItem(aColor, ColorSets::getColorSetsFromItemSet(*pArgs), EE_CHAR_BKGCOLOR);
pArgs->Put(pBackgroundItem);
break;
}
diff --git a/sfx2/source/styles/ColorSets.cxx b/sfx2/source/styles/ColorSets.cxx
index 96b9370978f7..f721510ae9c0 100644
--- a/sfx2/source/styles/ColorSets.cxx
+++ b/sfx2/source/styles/ColorSets.cxx
@@ -8,6 +8,7 @@
*
*/
+#include "sal/log.hxx"
#include <memory>
#include <sfx2/ColorSets.hxx>
@@ -124,6 +125,18 @@ void ColorSets::setThemeColorSet(std::u16string_view rName)
}
}
+ColorSets* ColorSets::getColorSetsFromItemSet(const SfxItemSet& rSet)
+{
+ if (const SfxColorSetListItem* const pColorSetListItem = rSet.GetItem(SID_COLOR_SETS))
+ {
+ return &pColorSetListItem->GetSfxColorSetList();
+ }
+ else
+ {
+ return nullptr;
+ }
+}
+
SfxColorSetListItem::SfxColorSetListItem() {}
SfxColorSetListItem::SfxColorSetListItem(const ColorSets& rColorSets, sal_uInt16 nW)
diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx b/svx/source/customshapes/EnhancedCustomShape3d.cxx
index 9c933ef9313e..ca07f70392e1 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.cxx
@@ -681,14 +681,14 @@ SdrObject* EnhancedCustomShape3d::Create3DObject(
if ( nAmbientColor > 255 )
nAmbientColor = 255;
Color aGlobalAmbientColor( static_cast<sal_uInt8>(nAmbientColor), static_cast<sal_uInt8>(nAmbientColor), static_cast<sal_uInt8>(nAmbientColor) );
- pScene->GetProperties().SetObjectItem( makeSvx3DAmbientcolorItem( aGlobalAmbientColor ) );
+ pScene->GetProperties().SetObjectItem( makeSvx3DAmbientcolorItem( aGlobalAmbientColor, pScene->GetMergedItemSet() ) );
sal_uInt8 nSpotLight1 = static_cast<sal_uInt8>( fLightIntensity * 255.0 );
basegfx::B3DVector aSpotLight1( aFirstLightDirection.DirectionX, - ( aFirstLightDirection.DirectionY ), -( aFirstLightDirection.DirectionZ ) );
aSpotLight1.normalize();
pScene->GetProperties().SetObjectItem( makeSvx3DLightOnOff1Item( true ) );
Color aAmbientSpot1Color( nSpotLight1, nSpotLight1, nSpotLight1 );
- pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor1Item( aAmbientSpot1Color ) );
+ pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor1Item( aAmbientSpot1Color, pScene->GetMergedItemSet() ) );
pScene->GetProperties().SetObjectItem( makeSvx3DLightDirection1Item( aSpotLight1 ) );
sal_uInt8 nSpotLight2 = static_cast<sal_uInt8>( fLight2Intensity * 255.0 );
@@ -696,14 +696,14 @@ SdrObject* EnhancedCustomShape3d::Create3DObject(
aSpotLight2.normalize();
pScene->GetProperties().SetObjectItem( makeSvx3DLightOnOff2Item( true ) );
Color aAmbientSpot2Color( nSpotLight2, nSpotLight2, nSpotLight2 );
- pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor2Item( aAmbientSpot2Color ) );
+ pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor2Item( aAmbientSpot2Color, pScene->GetMergedItemSet() ) );
pScene->GetProperties().SetObjectItem( makeSvx3DLightDirection2Item( aSpotLight2 ) );
sal_uInt8 nSpotLight3 = 70;
basegfx::B3DVector aSpotLight3( 0.0, 0.0, 1.0 );
pScene->GetProperties().SetObjectItem( makeSvx3DLightOnOff3Item( true ) );
Color aAmbientSpot3Color( nSpotLight3, nSpotLight3, nSpotLight3 );
- pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor3Item( aAmbientSpot3Color ) );
+ pScene->GetProperties().SetObjectItem( makeSvx3DLightcolor3Item( aAmbientSpot3Color, pScene->GetMergedItemSet() ) );
pScene->GetProperties().SetObjectItem( makeSvx3DLightDirection3Item( aSpotLight3 ) );
double fSpecular = GetDouble( rGeometryItem, "Specularity", 0 ) / 100;
@@ -721,7 +721,7 @@ SdrObject* EnhancedCustomShape3d::Create3DObject(
else if ( nIntensity < 0 )
nIntensity = 0;
nIntensity = 100 - nIntensity;
- pScene->GetProperties().SetObjectItem( makeSvx3DMaterialSpecularItem( aSpecularCol ) );
+ pScene->GetProperties().SetObjectItem( makeSvx3DMaterialSpecularItem( aSpecularCol, pScene->GetMergedItemSet() ) );
pScene->GetProperties().SetObjectItem( makeSvx3DMaterialSpecularIntensityItem( static_cast<sal_uInt16>(nIntensity) ) );
pScene->SetLogicRect(
diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx
index a3bd5f9ce430..579cb8632603 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -1843,7 +1843,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight1->IsNoSelection())
{
aColor = m_xLbLight1->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor1Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor1Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_1);
@@ -1868,7 +1868,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight2->IsNoSelection())
{
aColor = m_xLbLight2->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor2Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor2Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_2);
@@ -1892,7 +1892,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight3->IsNoSelection())
{
aColor = m_xLbLight3->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor3Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor3Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_3);
@@ -1916,7 +1916,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight4->IsNoSelection())
{
aColor = m_xLbLight4->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor4Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor4Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_4);
@@ -1940,7 +1940,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight5->IsNoSelection())
{
aColor = m_xLbLight5->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor5Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor5Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_5);
@@ -1964,7 +1964,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight6->IsNoSelection())
{
aColor = m_xLbLight6->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor6Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor6Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_6);
@@ -1988,7 +1988,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight7->IsNoSelection())
{
aColor = m_xLbLight7->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor7Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor7Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_7);
@@ -2012,7 +2012,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbLight8->IsNoSelection())
{
aColor = m_xLbLight8->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DLightcolor8Item(aColor));
+ rAttrs.Put(makeSvx3DLightcolor8Item(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTCOLOR_8);
@@ -2036,7 +2036,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbAmbientlight->IsNoSelection())
{
aColor = m_xLbAmbientlight->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DAmbientcolorItem(aColor));
+ rAttrs.Put(makeSvx3DAmbientcolorItem(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DSCENE_AMBIENTCOLOR);
@@ -2123,7 +2123,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbMatEmission->IsNoSelection())
{
aColor = m_xLbMatEmission->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DMaterialEmissionItem(aColor));
+ rAttrs.Put(makeSvx3DMaterialEmissionItem(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DOBJ_MAT_EMISSION);
@@ -2132,7 +2132,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
if (!m_xLbMatSpecular->IsNoSelection())
{
aColor = m_xLbMatSpecular->GetSelectEntryColor();
- rAttrs.Put(makeSvx3DMaterialSpecularItem(aColor));
+ rAttrs.Put(makeSvx3DMaterialSpecularItem(aColor, rAttrs));
}
else
rAttrs.InvalidateItem(SDRATTR_3DOBJ_MAT_SPECULAR);
@@ -2632,15 +2632,15 @@ void Svx3DWin::ClickLight(const LightButton& rBtn)
switch(nLightSource)
{
- case 0: aLightItemSet.Put(makeSvx3DLightcolor1Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff1Item(bOnOff)); break;
- case 1: aLightItemSet.Put(makeSvx3DLightcolor2Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff2Item(bOnOff)); break;
- case 2: aLightItemSet.Put(makeSvx3DLightcolor3Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff3Item(bOnOff)); break;
- case 3: aLightItemSet.Put(makeSvx3DLightcolor4Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff4Item(bOnOff)); break;
- case 4: aLightItemSet.Put(makeSvx3DLightcolor5Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff5Item(bOnOff)); break;
- case 5: aLightItemSet.Put(makeSvx3DLightcolor6Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff6Item(bOnOff)); break;
- case 6: aLightItemSet.Put(makeSvx3DLightcolor7Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff7Item(bOnOff)); break;
+ case 0: aLightItemSet.Put(makeSvx3DLightcolor1Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff1Item(bOnOff)); break;
+ case 1: aLightItemSet.Put(makeSvx3DLightcolor2Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff2Item(bOnOff)); break;
+ case 2: aLightItemSet.Put(makeSvx3DLightcolor3Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff3Item(bOnOff)); break;
+ case 3: aLightItemSet.Put(makeSvx3DLightcolor4Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff4Item(bOnOff)); break;
+ case 4: aLightItemSet.Put(makeSvx3DLightcolor5Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff5Item(bOnOff)); break;
+ case 5: aLightItemSet.Put(makeSvx3DLightcolor6Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff6Item(bOnOff)); break;
+ case 6: aLightItemSet.Put(makeSvx3DLightcolor7Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff7Item(bOnOff)); break;
default:
- case 7: aLightItemSet.Put(makeSvx3DLightcolor8Item(aColor)); aLightItemSet.Put(makeSvx3DLightOnOff8Item(bOnOff)); break;
+ case 7: aLightItemSet.Put(makeSvx3DLightcolor8Item(aColor, aLightItemSet)); aLightItemSet.Put(makeSvx3DLightOnOff8Item(bOnOff)); break;
}
m_xCtlLightPreview->GetSvx3DLightControl().Set3DAttributes(aLightItemSet);
diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx
index c2e43c07d43c..f68a944982dc 100644
--- a/svx/source/svdraw/svdfmtf.cxx
+++ b/svx/source/svdraw/svdfmtf.cxx
@@ -418,7 +418,7 @@ void ImpSdrGDIMetaFileImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr
mpTextAttr->Put(SvxWordLineModeItem(aFnt.IsWordLineMode(), EE_CHAR_WLM));
mpTextAttr->Put(SvxContourItem(aFnt.IsOutline(), EE_CHAR_OUTLINE));
- mpTextAttr->Put(SvxColorItem(mpVD->GetTextColor(), EE_CHAR_COLOR));
+ mpTextAttr->Put(SvxColorItem(mpVD->GetTextColor(), ColorSets::getColorSetsFromItemSet(*mpTextAttr), EE_CHAR_COLOR));
//... svxfont textitem svditext
mbFntDirty = false;
}
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx
index adb68732d0cb..a09c357ff7f0 100644
--- a/svx/source/svdraw/svdpdf.cxx
+++ b/svx/source/svdraw/svdpdf.cxx
@@ -376,7 +376,8 @@ void ImpSdrPdfImport::SetAttributes(SdrObject* pObj, bool bForceTextAttr)
mpTextAttr->Put(SvxWordLineModeItem(aFnt.IsWordLineMode(), EE_CHAR_WLM));
mpTextAttr->Put(SvxContourItem(aFnt.IsOutline(), EE_CHAR_OUTLINE));
- mpTextAttr->Put(SvxColorItem(mpVD->GetTextColor(), EE_CHAR_COLOR));
+ mpTextAttr->Put(SvxColorItem(
+ mpVD->GetTextColor(), ColorSets::getColorSetsFromItemSet(*mpTextAttr), EE_CHAR_COLOR));
//... svxfont textitem svditext
mbFntDirty = false;
}
diff --git a/svx/source/toolbars/extrusionbar.cxx b/svx/source/toolbars/extrusionbar.cxx
index 51fecface297..ddbedbd728a2 100644
--- a/svx/source/toolbars/extrusionbar.cxx
+++ b/svx/source/toolbars/extrusionbar.cxx
@@ -1188,7 +1188,7 @@ static void getExtrusionColorState( SdrView const * pSdrView, SfxItemSet& rSet )
aFinalColor = COL_AUTO;
if( bHasCustomShape )
- rSet.Put( SvxColorItem( aFinalColor, SID_EXTRUSION_3D_COLOR ) );
+ rSet.Put( SvxColorItem( aFinalColor, ColorSets::getColorSetsFromItemSet(rSet), SID_EXTRUSION_3D_COLOR ) );
else
rSet.DisableItem( SID_EXTRUSION_3D_COLOR );
}
diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx
index 49e399a78a07..1c995ee33009 100644
--- a/sw/source/core/doc/DocumentStylePoolManager.cxx
+++ b/sw/source/core/doc/DocumentStylePoolManager.cxx
@@ -1547,7 +1547,7 @@ SwFormat* DocumentStylePoolManager::GetFormatFromPool( sal_uInt16 nId )
case RES_POOLCHR_INET_NORMAL:
{
- aSet.Put( SvxColorItem( COL_BLUE, RES_CHRATR_COLOR ) );
+ aSet.Put( SvxColorItem( COL_BLUE, ColorSets::getColorSetsFromItemSet(aSet), RES_CHRATR_COLOR ) );
aSet.Put( SvxUnderlineItem( LINESTYLE_SINGLE, RES_CHRATR_UNDERLINE ) );
// i40133: patch submitted by rail: set language to 'none' to prevent spell checking:
aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
@@ -1557,7 +1557,7 @@ SwFormat* DocumentStylePoolManager::GetFormatFromPool( sal_uInt16 nId )
break;
case RES_POOLCHR_INET_VISIT:
{
- aSet.Put( SvxColorItem( COL_RED, RES_CHRATR_COLOR ) );
+ aSet.Put( SvxColorItem( COL_RED, ColorSets::getColorSetsFromItemSet(aSet), RES_CHRATR_COLOR ) );
aSet.Put( SvxUnderlineItem( LINESTYLE_SINGLE, RES_CHRATR_UNDERLINE ) );
aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CJK_LANGUAGE ) );
@@ -1566,7 +1566,7 @@ SwFormat* DocumentStylePoolManager::GetFormatFromPool( sal_uInt16 nId )
break;
case RES_POOLCHR_JUMPEDIT:
{
- aSet.Put( SvxColorItem( COL_CYAN, RES_CHRATR_COLOR ) );
+ aSet.Put( SvxColorItem( COL_CYAN, ColorSets::getColorSetsFromItemSet(aSet), RES_CHRATR_COLOR ) );
aSet.Put( SvxUnderlineItem( LINESTYLE_DOTTED, RES_CHRATR_UNDERLINE ) );
aSet.Put( SvxCaseMapItem( SvxCaseMap::SmallCaps, RES_CHRATR_CASEMAP ) );
}
diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx
index c2f3b3bd9764..c838692e7448 100644
--- a/sw/source/core/table/swtable.cxx
+++ b/sw/source/core/table/swtable.cxx
@@ -145,7 +145,7 @@ void InsTableBox( SwDoc& rDoc, SwTableNode* pTableNd,
{
SwAttrSet aAttrSet( *pCNd->GetpSwAttrSet() );
if( pBox->GetSaveUserColor() )
- aAttrSet.Put( SvxColorItem( *pBox->GetSaveUserColor(), RES_CHRATR_COLOR ));
+ aAttrSet.Put( SvxColorItem( *pBox->GetSaveUserColor(), ColorSets::getColorSetsFromItemSet(aAttrSet), RES_CHRATR_COLOR ));
else
aAttrSet.ClearItem( RES_CHRATR_COLOR );
rDoc.GetNodes().InsBoxen( pTableNd, pLine, pBoxFrameFormat,
diff --git a/sw/source/filter/html/htmldrawreader.cxx b/sw/source/filter/html/htmldrawreader.cxx
index 61ab1d493982..4cf9de7714f1 100644
--- a/sw/source/filter/html/htmldrawreader.cxx
+++ b/sw/source/filter/html/htmldrawreader.cxx
@@ -394,7 +394,7 @@ void SwHTMLParser::NewMarquee( HTMLTable *pCurTable )
const Color& rDfltColor =
m_pCSS1Parser->GetTextCollFromPool( RES_POOLCOLL_STANDARD )
->GetColor().GetValue();
- aItemSet.Put( SvxColorItem( rDfltColor, EE_CHAR_COLOR ) );
+ aItemSet.Put(SvxColorItem(rDfltColor, ColorSets::getColorSetsFromItemSet(aItemSet), EE_CHAR_COLOR));
// set the attributes of the current paragraph style
sal_uInt16 nWhichIds[] =
diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx
index 64d1beb7de46..7af2d441ee70 100644
--- a/sw/source/filter/html/htmlforw.cxx
+++ b/sw/source/filter/html/htmlforw.cxx
@@ -1060,7 +1060,7 @@ Writer& OutHTML_DrawFrameFormatAsControl( Writer& rWrt,
if( auto n = o3tl::tryAccess<sal_Int32>(aTmp) )
{
Color aColor( ColorTransparency, *n );
- aItemSet.Put( SvxColorItem( aColor, RES_CHRATR_COLOR ) );
+ aItemSet.Put( SvxColorItem( aColor, ColorSets::getColorSetsFromItemSet(aItemSet), RES_CHRATR_COLOR ) );
}
}
if( xPropSetInfo->hasPropertyByName( "FontHeight" ) )
diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx
index 280c927320d0..c715741dae4a 100644
--- a/sw/source/filter/html/svxcss1.cxx
+++ b/sw/source/filter/html/svxcss1.cxx
@@ -1286,7 +1286,7 @@ static void ParseCSS1_color( const CSS1Expression *pExpr,
{
Color aColor;
if( pExpr->GetColor( aColor ) )
- rItemSet.Put( SvxColorItem( aColor, aItemIds.nColor ) );
+ rItemSet.Put( SvxColorItem( aColor, ColorSets::getColorSetsFromItemSet(rItemSet), aItemIds.nColor ) );
}
break;
default:
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index beedbf13bbb7..b9901ef4cdc1 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -3857,7 +3857,7 @@ void SwHTMLParser::NewFontAttr( HtmlTokenId nToken )
aItemSet.Put( aFontHeightCTL );
}
if( bColor )
- aItemSet.Put( SvxColorItem(aColor, RES_CHRATR_COLOR) );
+ aItemSet.Put( SvxColorItem(aColor, ColorSets::getColorSetsFromItemSet(aItemSet), RES_CHRATR_COLOR) );
if( !aFontName.isEmpty() )
{
SvxFontItem aFont( eFamily, aFontName, aStyleName, ePitch, eEnc, RES_CHRATR_FONT );
diff --git a/sw/source/uibase/app/docshini.cxx b/sw/source/uibase/app/docshini.cxx
index 284d4a84afdd..5a636b1b9be9 100644
--- a/sw/source/uibase/app/docshini.cxx
+++ b/sw/source/uibase/app/docshini.cxx
@@ -660,7 +660,7 @@ void SwDocShell::SubInitNew()
aDfltSet.Put( SvxTabStopItem( 1, nNewPos,
SvxTabAdjust::Default, RES_PARATR_TABSTOP ) );
}
- aDfltSet.Put( SvxColorItem( COL_AUTO, RES_CHRATR_COLOR ) );
+ aDfltSet.Put( SvxColorItem( COL_AUTO, ColorSets::getColorSetsFromItemSet(aDfltSet), RES_CHRATR_COLOR ) );
m_xDoc->SetDefault( aDfltSet );
diff --git a/sw/source/uibase/app/swmodul1.cxx b/sw/source/uibase/app/swmodul1.cxx
index c396d437fd0f..49c1b66e7205 100644
--- a/sw/source/uibase/app/swmodul1.cxx
+++ b/sw/source/uibase/app/swmodul1.cxx
@@ -516,7 +516,7 @@ static void lcl_FillAuthorAttr( std::size_t nAuthor, SfxItemSet &rSet,
}
if( !bBackGr )
- rSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
+ rSet.Put( SvxColorItem( aCol, ColorSets::getColorSetsFromItemSet(rSet), RES_CHRATR_COLOR ) );
}
void SwModule::GetInsertAuthorAttr(std::size_t nAuthor, SfxItemSet &rSet)
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index a81ae435829c..b272a869e7b3 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2376,7 +2376,7 @@ void SwBaseShell::GetBckColState(SfxItemSet &rSet)
case SID_BACKGROUND_COLOR:
case SID_TABLE_CELL_BACKGROUND_COLOR:
{
- SvxColorItem aColorItem(aBrushItem->GetColor(), nWhich);
+ SvxColorItem aColorItem(aBrushItem->GetColor(), ColorSets::getColorSetsFromItemSet(rSet), nWhich);
rSet.Put(aColorItem);
break;
}
diff --git a/sw/source/uibase/shells/drwtxtex.cxx b/sw/source/uibase/shells/drwtxtex.cxx
index 770b46d7e7ba..d459f3b7480c 100644
--- a/sw/source/uibase/shells/drwtxtex.cxx
+++ b/sw/source/uibase/shells/drwtxtex.cxx
@@ -105,14 +105,14 @@ namespace
{
case SID_ATTR_CHAR_COLOR:
{
- SvxColorItem aColorItem(aColor, EE_CHAR_COLOR);
+ SvxColorItem aColorItem(aColor, ColorSets::getColorSetsFromItemSet(*pArgs), EE_CHAR_COLOR);
pArgs->Put(aColorItem);
break;
}
case SID_ATTR_CHAR_BACK_COLOR:
{
- SvxColorItem pBackgroundItem(aColor, EE_CHAR_BKGCOLOR);
+ SvxColorItem pBackgroundItem(aColor, ColorSets::getColorSetsFromItemSet(*pArgs), EE_CHAR_BKGCOLOR);
pArgs->Put(pBackgroundItem);
break;
}
diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx
index 6e990cd632b6..7ed04e7a3537 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -1294,7 +1294,7 @@ void SwFrameShell::GetLineStyleState(SfxItemSet &rSet)
rSh.GetFlyFrameAttr(aFrameSet);
const SvxBorderLine* pLine = aFrameSet.Get(RES_BOX).GetTop();
- rSet.Put(SvxColorItem(pLine ? pLine->GetColor() : Color(), SID_FRAME_LINECOLOR));
+ rSet.Put(SvxColorItem(pLine ? pLine->GetColor() : Color(), ColorSets::getColorSetsFromItemSet(rSet), SID_FRAME_LINECOLOR));
}
}
}
diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx
index cd231be93192..19bc50b4dd1b 100644
--- a/sw/source/uibase/shells/tabsh.cxx
+++ b/sw/source/uibase/shells/tabsh.cxx
@@ -1546,7 +1546,7 @@ void SwTableShell::GetLineStyleState(SfxItemSet &rSet)
const SvxBoxItem& rBoxItem = aCoreSet.Get( RES_BOX );
const SvxBorderLine* pLine = rBoxItem.GetTop();
- rSet.Put( SvxColorItem( pLine ? pLine->GetColor() : Color(), SID_FRAME_LINECOLOR ) );
+ rSet.Put( SvxColorItem( pLine ? pLine->GetColor() : Color(), ColorSets::getColorSetsFromItemSet(rSet), SID_FRAME_LINECOLOR ) );
SvxLineItem aLine( SID_FRAME_LINESTYLE );
aLine.SetLine(pLine);
rSet.Put( aLine );
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index f500f618c48a..cafa86f08066 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1807,12 +1807,12 @@ void SwTextShell::GetState( SfxItemSet &rSet )
const SvxBrushItem& aBrushItem = aSet.Get(RES_CHRATR_HIGHLIGHT);
if( aBrushItem.GetColor() != COL_TRANSPARENT )
{
- rSet.Put( SvxColorItem(aBrushItem.GetColor(), nWhich) );
+ rSet.Put( SvxColorItem(aBrushItem.GetColor(), ColorSets::getColorSetsFromItemSet(rSet), nWhich) );
}
else
{
const SvxBrushItem& aBrushItem2 = aSet.Get(RES_CHRATR_BACKGROUND);
- rSet.Put( SvxColorItem(aBrushItem2.GetColor(), nWhich) );
+ rSet.Put( SvxColorItem(aBrushItem2.GetColor(), ColorSets::getColorSetsFromItemSet(rSet), nWhich) );
}
}
break;