From 01d140e2205306159da57b9ec703e1a54802115c Mon Sep 17 00:00:00 2001 From: Aditya Date: Sun, 24 Feb 2019 21:17:14 +0530 Subject: tdf#116382 Replace old dialog in header and footer drop-down menu Remove the Background tabpage in "Border/Background" dialog accessed from Border and Background menu item in Header/Footer drop-down list and replace it with the tabpages "Area" and "Transparency" of the dialog accessed from Page Style > Header > "More.." button. The old dialog does not have the tabpages "Area" and "Transparency". In simpler words, the patch is to match both the dialogs when accessed in two different ways. Change-Id: Ib84435854389360eba41aecb8578a9a67a92ca1e Reviewed-on: https://gerrit.libreoffice.org/67483 Tested-by: Jenkins Reviewed-by: Jim Raykowski (cherry picked from commit 55042cb54fea5f7ad777c03af9bf8197127b6736) Reviewed-on: https://gerrit.libreoffice.org/68546 Reviewed-by: Michael Stahl --- sw/source/uibase/docvw/HeaderFooterWin.cxx | 52 ++++++++---------------------- 1 file changed, 13 insertions(+), 39 deletions(-) (limited to 'sw/source/uibase/docvw/HeaderFooterWin.cxx') diff --git a/sw/source/uibase/docvw/HeaderFooterWin.cxx b/sw/source/uibase/docvw/HeaderFooterWin.cxx index e1c157ee3afe..824abf938b79 100644 --- a/sw/source/uibase/docvw/HeaderFooterWin.cxx +++ b/sw/source/uibase/docvw/HeaderFooterWin.cxx @@ -11,6 +11,8 @@ #include #include +#include +#include #include #include #include @@ -414,47 +416,19 @@ void SwHeaderFooterWin::ExecuteCommand(const OString& rIdent) SwFrameFormat* pHFFormat = const_cast< SwFrameFormat* >( rMaster.GetFooter().GetFooterFormat() ); if ( m_bIsHeader ) pHFFormat = const_cast< SwFrameFormat* >( rMaster.GetHeader().GetHeaderFormat() ); + SfxItemSet aSet( pHFFormat->GetAttrSet() ); - SfxItemPool* pPool = pHFFormat->GetAttrSet().GetPool(); - SfxItemSet aSet( - *pPool, - svl::Items< - RES_BACKGROUND, RES_SHADOW, - SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER>{}); - - aSet.Put( pHFFormat->GetAttrSet() ); - - // Create a box info item... needed by the dialog - SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER ); - const SfxPoolItem *pBoxInfo; - if ( SfxItemState::SET == pHFFormat->GetAttrSet().GetItemState( SID_ATTR_BORDER_INNER, - true, &pBoxInfo) ) - aBoxInfo = *static_cast(pBoxInfo); - - aBoxInfo.SetTable( false ); - aBoxInfo.SetDist( true); - aBoxInfo.SetMinDist( false ); - aBoxInfo.SetDefDist( MIN_BORDER_DIST ); - aBoxInfo.SetValid( SvxBoxInfoItemValidFlags::DISABLE ); - aSet.Put( aBoxInfo ); - - if ( svx::ShowBorderBackgroundDlg( this, &aSet ) ) + // Items to hand over XPropertyList things like XColorList, + // XHatchList, XGradientList, and XBitmapList to the Area TabPage: + aSet.MergeRange( SID_COLOR_TABLE, SID_PATTERN_LIST ); + // create needed items for XPropertyList entries from the DrawModel so that + // the Area TabPage can access them + rSh.GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->PutAreaListItems( aSet ); + + if (svx::ShowBorderBackgroundDlg( this, &aSet )) { - const SfxPoolItem* pItem; - if ( SfxItemState::SET == aSet.GetItemState( RES_BACKGROUND, false, &pItem ) ) { - pHFFormat->SetFormatAttr( *pItem ); - rView.GetDocShell()->SetModified(); - } - - if ( SfxItemState::SET == aSet.GetItemState( RES_BOX, false, &pItem ) ) { - pHFFormat->SetFormatAttr( *pItem ); - rView.GetDocShell()->SetModified(); - } - - if ( SfxItemState::SET == aSet.GetItemState( RES_SHADOW, false, &pItem ) ) { - pHFFormat->SetFormatAttr( *pItem ); - rView.GetDocShell()->SetModified(); - } + pHFFormat->SetFormatAttr( aSet ); + rView.GetDocShell()->SetModified(); } } else if (rIdent == "delete") -- cgit