summaryrefslogtreecommitdiff
path: root/cui/source/tabpages/tparea.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/tabpages/tparea.cxx')
-rw-r--r--cui/source/tabpages/tparea.cxx46
1 files changed, 28 insertions, 18 deletions
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 35db8ef9a85a..9f7803bffeb7 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -1423,28 +1423,35 @@ void SvxAreaTabPage::Reset( const SfxItemSet& rAttrs )
m_pLbHatchBckgrdColor->SelectEntry( rColorItem.GetColorValue() );
}
- if (SFX_ITEM_DONTCARE != rAttrs.GetItemState(XATTR_FILLGRADIENT))
+ SfxItemState const eGradState(rAttrs.GetItemState(XATTR_FILLGRADIENT));
+ XFillGradientItem const* pGradientItem(NULL);
+ if (SFX_ITEM_DONTCARE != eGradState)
{
- XFillGradientItem const& rGradientItem(
- static_cast<const XFillGradientItem&>(
- rAttrs.Get(XATTR_FILLGRADIENT)) );
- OUString const aString( rGradientItem.GetName() );
- XGradient const aGradient( rGradientItem.GetGradientValue() );
-
+ pGradientItem = &static_cast<const XFillGradientItem&>(
+ rAttrs.Get(XATTR_FILLGRADIENT));
+ OUString const aString( pGradientItem->GetName() );
+ XGradient const aGradient( pGradientItem->GetGradientValue() );
m_pLbGradient->SelectEntryByList(pGradientList, aString, aGradient);
}
- if (!m_pLbGradient->GetSelectEntryCount())
+ if (!m_pLbGradient->GetSelectEntryCount()
+ && (SFX_ITEM_DEFAULT == eGradState
+ || (pGradientItem && pGradientItem->GetName().isEmpty())))
{ // avoid relying on pool default - cannot export that
m_pLbGradient->SelectEntryPos(0); // anything better than nothing
isMissingGradient = true;
}
- if (SFX_ITEM_DONTCARE != rAttrs.GetItemState(XATTR_FILLHATCH))
+ SfxItemState const eHatchState(rAttrs.GetItemState(XATTR_FILLHATCH));
+ XFillHatchItem const* pHatch(NULL);
+ if (SFX_ITEM_DONTCARE != eHatchState)
{
- m_pLbHatching->SelectEntry( static_cast<const XFillHatchItem&>(
- rAttrs.Get(XATTR_FILLHATCH)).GetName() );
+ pHatch = &static_cast<const XFillHatchItem&>(
+ rAttrs.Get(XATTR_FILLHATCH));
+ m_pLbHatching->SelectEntry(pHatch->GetName());
}
- if (!m_pLbHatching->GetSelectEntryCount())
+ if (!m_pLbHatching->GetSelectEntryCount()
+ && (SFX_ITEM_DEFAULT == eHatchState
+ || (pHatch && pHatch->GetName().isEmpty())))
{ // avoid relying on pool default - cannot export that
m_pLbHatching->SelectEntryPos(0); // anything better than nothing
isMissingHatching = true;
@@ -1455,14 +1462,17 @@ void SvxAreaTabPage::Reset( const SfxItemSet& rAttrs )
rAttrs.Get(XATTR_FILLBACKGROUND)).GetValue() );
}
- if (SFX_ITEM_DONTCARE != rAttrs.GetItemState(XATTR_FILLBITMAP))
+ SfxItemState const eBitmapState(rAttrs.GetItemState(XATTR_FILLBITMAP));
+ XFillBitmapItem const* pBitmapItem(NULL);
+ if (SFX_ITEM_DONTCARE != eBitmapState)
{
- XFillBitmapItem const& rBitmapItem(
- static_cast<const XFillBitmapItem&>(
- rAttrs.Get(XATTR_FILLBITMAP)));
- m_pLbBitmap->SelectEntry(rBitmapItem.GetName());
+ pBitmapItem = &static_cast<const XFillBitmapItem&>(
+ rAttrs.Get(XATTR_FILLBITMAP));
+ m_pLbBitmap->SelectEntry(pBitmapItem->GetName());
}
- if (!m_pLbBitmap->GetSelectEntryCount())
+ if (!m_pLbBitmap->GetSelectEntryCount()
+ && (SFX_ITEM_DEFAULT == eBitmapState
+ || (pBitmapItem && pBitmapItem->GetName().isEmpty())))
{ // avoid relying on pool default - cannot export that
m_pLbBitmap->SelectEntryPos(0); // anything better than nothing
isMissingBitmap = true;