summaryrefslogtreecommitdiff
path: root/sw/source/uibase/shells/drawdlg.cxx
diff options
context:
space:
mode:
authorMuhammet Kara <muhammet.kara@collabora.com>2019-06-27 18:06:06 +0300
committerMuhammet Kara <muhammet.kara@collabora.com>2019-06-27 23:38:01 +0200
commitb82fdec369449e87df24acc8fa0daa54f2aeb4da (patch)
tree79bdeec7363d23ffc5f35bfdcf2362b7ce507372 /sw/source/uibase/shells/drawdlg.cxx
parent49538c5bcd3cfa933b73d471ef4825ca793ad910 (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.cxx56
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;