diff options
author | Muhammet Kara <muhammet.kara@collabora.com> | 2019-06-27 18:06:06 +0300 |
---|---|---|
committer | Muhammet Kara <muhammet.kara@collabora.com> | 2019-06-27 23:38:01 +0200 |
commit | b82fdec369449e87df24acc8fa0daa54f2aeb4da (patch) | |
tree | 79bdeec7363d23ffc5f35bfdcf2362b7ce507372 /sw/source/uibase/shells/drawdlg.cxx | |
parent | 49538c5bcd3cfa933b73d471ef4825ca793ad910 (diff) |
lokdialog: Convert the Format -> ... -> Area... to async exec.
For sw and sc
Change-Id: I83ad76658545d8df135e1a08abff4d0b5a81b46a
Reviewed-on: https://gerrit.libreoffice.org/74808
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com>
Diffstat (limited to 'sw/source/uibase/shells/drawdlg.cxx')
-rw-r--r-- | sw/source/uibase/shells/drawdlg.cxx | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/sw/source/uibase/shells/drawdlg.cxx b/sw/source/uibase/shells/drawdlg.cxx index ca2035850536..c2232bfa413b 100644 --- a/sw/source/uibase/shells/drawdlg.cxx +++ b/sw/source/uibase/shells/drawdlg.cxx @@ -93,34 +93,44 @@ void SwDrawShell::ExecDrawDlg(SfxRequest& rReq) bool bHasMarked = pView->AreObjectsMarked(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractSvxAreaTabDialog> pDlg(pFact->CreateSvxAreaTabDialog(rReq.GetFrameWeld(), + VclPtr<AbstractSvxAreaTabDialog> pDlg(pFact->CreateSvxAreaTabDialog(rReq.GetFrameWeld(), &aNewAttr, pDoc, true)); - if (pDlg->Execute() == RET_OK) - { - pSh->StartAction(); - if (bHasMarked) - pView->SetAttributes(*pDlg->GetOutputItemSet()); - else - pView->SetDefaultAttr(*pDlg->GetOutputItemSet(), false); - pSh->EndAction(); - static sal_uInt16 aInval[] = + pDlg->StartExecuteAsync([=](sal_Int32 nResult){ + if (nResult == RET_OK) { - SID_ATTR_FILL_STYLE, - SID_ATTR_FILL_COLOR, - SID_ATTR_FILL_TRANSPARENCE, - SID_ATTR_FILL_FLOATTRANSPARENCE, - 0 - }; - SfxBindings &rBnd = GetView().GetViewFrame()->GetBindings(); - rBnd.Invalidate(aInval); - rBnd.Update(SID_ATTR_FILL_STYLE); - rBnd.Update(SID_ATTR_FILL_COLOR); - rBnd.Update(SID_ATTR_FILL_TRANSPARENCE); - rBnd.Update(SID_ATTR_FILL_FLOATTRANSPARENCE); - } + pSh->StartAction(); + if (bHasMarked) + pView->SetAttributes(*pDlg->GetOutputItemSet()); + else + pView->SetDefaultAttr(*pDlg->GetOutputItemSet(), false); + pSh->EndAction(); + + static sal_uInt16 aInval[] = + { + SID_ATTR_FILL_STYLE, + SID_ATTR_FILL_COLOR, + SID_ATTR_FILL_TRANSPARENCE, + SID_ATTR_FILL_FLOATTRANSPARENCE, + 0 + }; + SfxBindings &rBnd = GetView().GetViewFrame()->GetBindings(); + rBnd.Invalidate(aInval); + rBnd.Update(SID_ATTR_FILL_STYLE); + rBnd.Update(SID_ATTR_FILL_COLOR); + rBnd.Update(SID_ATTR_FILL_TRANSPARENCE); + rBnd.Update(SID_ATTR_FILL_FLOATTRANSPARENCE); + } + + if (pDoc->IsChanged()) + GetShell().SetModified(); + else if (bChanged) + pDoc->SetChanged(); + + pDlg->disposeOnce(); + }); } break; |