svx: LOK: convert background child-dialogs to async
(cherry picked from commit 625a8c33bd95b4068838caef19af28c5404c59ce)
Reviewed-on: https://gerrit.libreoffice.org/83633
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
(cherry picked from commit 46a1c0a733f1e664823dcb483796dbcc8a743f4a)
Change-Id: I682ab039ce3732aa973e0fe371c191f1ca1b9ef7
Reviewed-on: https://gerrit.libreoffice.org/85677
Tested-by: Jenkins
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index c936e91..b92dc46 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -624,54 +624,59 @@ IMPL_LINK_NOARG(SvxHFPage, BackgroundHdl, weld::Button&, void)
*pBBSet,
mbEnableDrawingLayerFillStyles));
if(RET_OK == pDlg->Execute() && pDlg->GetOutputItemSet())
{
SfxItemIter aIter(*pDlg->GetOutputItemSet());
for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
pDlg->StartExecuteAsync([&](sal_Int32 nResult) {
if (nResult == RET_OK && pDlg->GetOutputItemSet())
{
if(!IsInvalidItem(pItem))
{
pBBSet->Put(*pItem);
}
}
SfxItemIter aIter(*pDlg->GetOutputItemSet());
{
drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes;
if(mbEnableDrawingLayerFillStyles)
for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
{
// create FillAttributes directly from DrawingLayer FillStyle entries
aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(*pBBSet));
}
else
{
const sal_uInt16 nWhich = GetWhich(SID_ATTR_BRUSH);
if(pBBSet->GetItemState(nWhich) == SfxItemState::SET)
if(!IsInvalidItem(pItem))
{
// create FillAttributes from SvxBrushItem
const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(pBBSet->Get(nWhich));
SfxItemSet aTempSet(*pBBSet->GetPool(), svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>{});
setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
pBBSet->Put(*pItem);
}
}
if(SID_ATTR_PAGE_HEADERSET == nId)
{
//m_aBspWin.SetHdColor(rItem.GetColor());
m_aBspWin.setHeaderFillAttributes(aFillAttributes);
}
else
{
//m_aBspWin.SetFtColor(rItem.GetColor());
m_aBspWin.setFooterFillAttributes(aFillAttributes);
drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes;
if (mbEnableDrawingLayerFillStyles)
{
// create FillAttributes directly from DrawingLayer FillStyle entries
aFillAttributes.reset(
new drawinglayer::attribute::SdrAllFillAttributesHelper(*pBBSet));
}
else
{
const sal_uInt16 nWhich = GetWhich(SID_ATTR_BRUSH);
if (pBBSet->GetItemState(nWhich) == SfxItemState::SET)
{
// create FillAttributes from SvxBrushItem
const SvxBrushItem& rItem
= static_cast<const SvxBrushItem&>(pBBSet->Get(nWhich));
SfxItemSet aTempSet(*pBBSet->GetPool(),
svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>{});
setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
aFillAttributes.reset(
new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
}
}
if (SID_ATTR_PAGE_HEADERSET == nId)
{
//m_aBspWin.SetHdColor(rItem.GetColor());
m_aBspWin.setHeaderFillAttributes(aFillAttributes);
}
else
{
//m_aBspWin.SetFtColor(rItem.GetColor());
m_aBspWin.setFooterFillAttributes(aFillAttributes);
}
}
}
}
});
UpdateExample();
}