Kaydet (Commit) ac8aee92 authored tarafından Miklos Vajna's avatar Miklos Vajna

sw: import draw:fill-gradient-name for Writer textframes

Change-Id: I695cf16bc3b06823ae9e0546cb751e41eb201706
üst bb00150e
...@@ -3594,7 +3594,7 @@ XFillGradientItem* XFillGradientItem::checkForUniqueItem( SdrModel* pModel ) con ...@@ -3594,7 +3594,7 @@ XFillGradientItem* XFillGradientItem::checkForUniqueItem( SdrModel* pModel ) con
if( pModel ) if( pModel )
{ {
const String aUniqueName = NameOrIndex::CheckNamedItem( const String aUniqueName = NameOrIndex::CheckNamedItem(
this, XATTR_FILLGRADIENT, &pModel->GetItemPool(), this, Which(), &pModel->GetItemPool(),
pModel->GetStyleSheetPool() ? &pModel->GetStyleSheetPool()->GetPool() : NULL, pModel->GetStyleSheetPool() ? &pModel->GetStyleSheetPool()->GetPool() : NULL,
XFillGradientItem::CompareValueFunc, RID_SVXSTR_GRADIENT, XFillGradientItem::CompareValueFunc, RID_SVXSTR_GRADIENT,
pModel->GetPropertyList( XGRADIENT_LIST ) ); pModel->GetPropertyList( XGRADIENT_LIST ) );
......
...@@ -236,11 +236,29 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SwDoc* pDoc, SfxItemSet& rToSe ...@@ -236,11 +236,29 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SwDoc* pDoc, SfxItemSet& rToSe
XFillGradientItem aFillGradient( static_cast <const :: XFillGradientItem & > ( rFromSet.Get ( RES_FILL_GRADIENT ) ) ); XFillGradientItem aFillGradient( static_cast <const :: XFillGradientItem & > ( rFromSet.Get ( RES_FILL_GRADIENT ) ) );
XFillGradientItem* pItem = &aFillGradient; XFillGradientItem* pItem = &aFillGradient;
if (pFillGradient) if (pFillGradient)
{
bRet &= ((SfxPoolItem*)pItem)->PutValue(*pFillGradient, MID_FILLGRADIENT); bRet &= ((SfxPoolItem*)pItem)->PutValue(*pFillGradient, MID_FILLGRADIENT);
// If gradient is set directly, we always generate an associated style name for it.
SdrModel* pModel = pDoc->GetDrawModel();
pItem = pItem->checkForUniqueItem( pModel );
}
if (pName) if (pName)
{
bRet &= ((SfxPoolItem*)pItem)->PutValue(*pName, MID_NAME); bRet &= ((SfxPoolItem*)pItem)->PutValue(*pName, MID_NAME);
SdrModel* pModel = pDoc->GetDrawModel(); // Look up the associated style name.
pItem = pItem->checkForUniqueItem( pModel ); SfxItemPool& rPool = pDoc->GetDrawModel()->GetItemPool();
const sal_uInt32 nCount = rPool.GetItemCount2(XATTR_FILLGRADIENT);
const XFillGradientItem* pStyleItem;
for (sal_uInt32 i = 0; i < nCount; ++i)
{
pStyleItem = (XFillGradientItem*)rPool.GetItem2(XATTR_FILLGRADIENT, i);
if (pStyleItem && pStyleItem->GetName() == pItem->GetName())
{
pItem->SetGradientValue(pStyleItem->GetGradientValue());
break;
}
}
}
if (pItem) if (pItem)
{ {
rToSet.Put(*pItem); rToSet.Put(*pItem);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment