summaryrefslogtreecommitdiff
path: root/cui/source
diff options
context:
space:
mode:
authorZolnai Tamás <zolnaitamas2000@gmail.com>2015-06-14 20:24:27 +0200
committerZolnai Tamás <zolnaitamas2000@gmail.com>2015-06-14 21:49:49 +0200
commit62fb96e075e79676b45912a3a8ec2702b1e3aaf2 (patch)
treee4c26a3e3b91e752e3816f1fbd629808e43275ba /cui/source
parentb47151f5d1e287425511b45c5474e10eb0ba3a9d (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.hxx3
-rw-r--r--cui/source/tabpages/backgrnd.cxx36
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;
}
}
}