diff options
author | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2015-06-14 20:24:27 +0200 |
---|---|---|
committer | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2015-06-14 21:49:49 +0200 |
commit | 62fb96e075e79676b45912a3a8ec2702b1e3aaf2 (patch) | |
tree | e4c26a3e3b91e752e3816f1fbd629808e43275ba /cui/source | |
parent | b47151f5d1e287425511b45c5474e10eb0ba3a9d (diff) |
Handle highlighting case inside SvxBackgroundPage class
... instead of converting attributes.
Change-Id: I3e45c0641389a7b6bdecb5141646aa13ee5c0aa5
Diffstat (limited to 'cui/source')
-rw-r--r-- | cui/source/inc/backgrnd.hxx | 3 | ||||
-rw-r--r-- | cui/source/tabpages/backgrnd.cxx | 36 |
2 files changed, 38 insertions, 1 deletions
diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx index c12a33b2253a..2aefa5d2e22f 100644 --- a/cui/source/inc/backgrnd.hxx +++ b/cui/source/inc/backgrnd.hxx @@ -25,6 +25,7 @@ #include <svx/SvxColorValueSet.hxx> #include <svx/dlgctrl.hxx> #include <editeng/brushitem.hxx> +#include <memory> class BackgroundPreviewImpl; class SvxOpenGraphicDialog; @@ -110,6 +111,7 @@ private: bool bAllowShowSelector : 1; bool bIsGraphicValid : 1; bool bLinkOnly : 1; + bool bHighlighting : 1; Graphic aBgdGraphic; OUString aBgdGraphicPath; OUString aBgdGraphicFilter; @@ -119,6 +121,7 @@ private: SvxBackgroundTable_Impl* pTableBck_Impl;///< Items for Sw-Table must be corrected SvxBackgroundPara_Impl* pParaBck_Impl;///< also for the paragraph style + std::unique_ptr<SvxBrushItem> pHighlighting; void FillColorValueSets_Impl(); void ShowColorUI_Impl(); diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx index bc4b6c6bbfec..2e066a35b7db 100644 --- a/cui/source/tabpages/backgrnd.cxx +++ b/cui/source/tabpages/backgrnd.cxx @@ -345,10 +345,12 @@ SvxBackgroundTabPage::SvxBackgroundTabPage(vcl::Window* pParent, const SfxItemSe , bAllowShowSelector(true) , bIsGraphicValid(false) , bLinkOnly(false) + , bHighlighting(false) , pPageImpl(new SvxBackgroundPage_Impl) , pImportDlg(NULL) , pTableBck_Impl(NULL) , pParaBck_Impl(NULL) + , pHighlighting(nullptr) { get(m_pAsGrid, "asgrid"); get(m_pSelectTxt, "asft"); @@ -532,6 +534,10 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet ) break; } } + else if( bHighlighting ) + { + nSlot = SID_ATTR_BRUSH_CHAR; + } //#111173# the destination item is missing when the parent style has been changed if(USHRT_MAX == nDestValue && (m_pParaLBox->IsVisible()||m_pTblLBox->IsVisible())) nDestValue = 0; @@ -602,7 +608,7 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet ) TblDestinationHdl_Impl(m_pTblLBox); m_pTblLBox->SaveValue(); } - else + else if (m_pParaLBox->GetData() == m_pParaLBox) { sal_Int32 nValue = m_pParaLBox->GetSelectEntryPos(); @@ -637,6 +643,15 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet ) ParaDestinationHdl_Impl(m_pParaLBox); m_pParaLBox->SaveValue(); } + else if( bHighlighting ) + { + nWhich = GetWhich( SID_ATTR_BRUSH_CHAR ); + if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT ) + { + pBgdAttr = static_cast<const SvxBrushItem*>(&( rSet->Get( nWhich ) )); + pHighlighting.reset(new SvxBrushItem(*pBgdAttr)); + } + } } } @@ -748,6 +763,10 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet ) break; } } + else if( bHighlighting ) + { + nSlot = SID_ATTR_BRUSH_CHAR; + } sal_uInt16 nWhich = GetWhich( nSlot ); const SfxPoolItem* pOld = GetOldItem( *rCoreSet, nSlot ); @@ -942,6 +961,20 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet ) bModified |= true; } } + else if( bHighlighting ) + { + if( nSlot != SID_ATTR_BRUSH_CHAR ) + { + const SfxPoolItem* pOldChar = + GetOldItem( *rCoreSet, SID_ATTR_BRUSH_CHAR ); + if ( pOldChar && pHighlighting && + (*pHighlighting != *pOldChar || *pHighlighting != SvxBrushItem(SID_ATTR_BRUSH_CHAR))) + { + rCoreSet->Put( *pHighlighting ); + bModified |= true; + } + } + } return bModified; } @@ -1714,6 +1747,7 @@ void SvxBackgroundTabPage::PageCreated(const SfxAllItemSet& aSet) if ( nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING ) { m_pBackGroundColorLabelFT->SetText("Highlighting Color"); + bHighlighting = true; } } } |