diff options
Diffstat (limited to 'cui/source/tabpages/tparea.cxx')
-rw-r--r-- | cui/source/tabpages/tparea.cxx | 46 |
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; |