sc/source/ui/drawfunc/drawsh.cxx | 26 +++++++++------- sw/source/uibase/shells/drawdlg.cxx | 58 +++++++++++++++++++++--------------- 2 files changed, 50 insertions(+), 34 deletions(-)
New commits: commit d306d22d570817adb3986fc7054ae1e36768b8be Author: Muhammet Kara <muhammet.k...@collabora.com> AuthorDate: Thu Jun 27 21:12:42 2019 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Thu Jun 27 23:38:26 2019 +0200 lokdialog: Convert the Format -> Line... to async exec for sw and sc Change-Id: If89bff982d16ba8d4e4524445e56ee2fe23d7876 Reviewed-on: https://gerrit.libreoffice.org/74818 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx index 1f31a09cf439..2b3414368a96 100644 --- a/sc/source/ui/drawfunc/drawsh.cxx +++ b/sc/source/ui/drawfunc/drawsh.cxx @@ -373,6 +373,9 @@ void ScDrawShell::ExecuteLineDlg( SfxRequest& rReq ) const SdrObject* pObj = nullptr; const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + std::shared_ptr<SfxRequest> pRequest; + pRequest.reset(new SfxRequest(rReq)); + if( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -381,22 +384,25 @@ void ScDrawShell::ExecuteLineDlg( SfxRequest& rReq ) pView->MergeAttrFromMarked( aNewAttr, false ); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxLineTabDialog( pViewData->GetDialogParent(), + VclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxLineTabDialog( pViewData->GetDialogParent(), &aNewAttr, pViewData->GetDocument()->GetDrawLayer(), pObj, bHasMarked)); - if ( pDlg->Execute() == RET_OK ) - { - if( bHasMarked ) - pView->SetAttrToMarked( *pDlg->GetOutputItemSet(), false ); - else - pView->SetDefaultAttr( *pDlg->GetOutputItemSet(), false ); + pDlg->StartExecuteAsync([=](sal_Int32 nResult){ + if ( nResult == RET_OK ) + { + if( bHasMarked ) + pView->SetAttrToMarked( *pDlg->GetOutputItemSet(), false ); + else + pView->SetDefaultAttr( *pDlg->GetOutputItemSet(), false ); - pView->InvalidateAttribs(); - rReq.Done(); - } + pView->InvalidateAttribs(); + pRequest->Done(); + } + pDlg->disposeOnce(); + }); } void ScDrawShell::ExecuteAreaDlg( SfxRequest& rReq ) diff --git a/sw/source/uibase/shells/drawdlg.cxx b/sw/source/uibase/shells/drawdlg.cxx index c2232bfa413b..b7e6fbd5ee11 100644 --- a/sw/source/uibase/shells/drawdlg.cxx +++ b/sw/source/uibase/shells/drawdlg.cxx @@ -144,36 +144,46 @@ void SwDrawShell::ExecDrawDlg(SfxRequest& rReq) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxLineTabDialog(rReq.GetFrameWeld(), + VclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxLineTabDialog(rReq.GetFrameWeld(), &aNewAttr, pDoc, pObj, bHasMarked)); - if (pDlg->Execute() == RET_OK) - { - pSh->StartAction(); - if(bHasMarked) - pView->SetAttrToMarked(*pDlg->GetOutputItemSet(), false); - else - pView->SetDefaultAttr(*pDlg->GetOutputItemSet(), false); - pSh->EndAction(); - static sal_uInt16 aInval[] = + pDlg->StartExecuteAsync([=](sal_Int32 nResult){ + if (nResult == RET_OK) { - SID_ATTR_LINE_STYLE, // ( SID_SVX_START + 169 ) - SID_ATTR_LINE_DASH, // ( SID_SVX_START + 170 ) - SID_ATTR_LINE_WIDTH, // ( SID_SVX_START + 171 ) - SID_ATTR_LINE_COLOR, // ( SID_SVX_START + 172 ) - SID_ATTR_LINE_START, // ( SID_SVX_START + 173 ) - SID_ATTR_LINE_END, // ( SID_SVX_START + 174 ) - SID_ATTR_LINE_TRANSPARENCE, // (SID_SVX_START+1107) - SID_ATTR_LINE_JOINT, // (SID_SVX_START+1110) - SID_ATTR_LINE_CAP, // (SID_SVX_START+1111) - 0 - }; - - GetView().GetViewFrame()->GetBindings().Invalidate(aInval); - } + pSh->StartAction(); + if(bHasMarked) + pView->SetAttrToMarked(*pDlg->GetOutputItemSet(), false); + else + pView->SetDefaultAttr(*pDlg->GetOutputItemSet(), false); + pSh->EndAction(); + + static sal_uInt16 aInval[] = + { + SID_ATTR_LINE_STYLE, // ( SID_SVX_START + 169 ) + SID_ATTR_LINE_DASH, // ( SID_SVX_START + 170 ) + SID_ATTR_LINE_WIDTH, // ( SID_SVX_START + 171 ) + SID_ATTR_LINE_COLOR, // ( SID_SVX_START + 172 ) + SID_ATTR_LINE_START, // ( SID_SVX_START + 173 ) + SID_ATTR_LINE_END, // ( SID_SVX_START + 174 ) + SID_ATTR_LINE_TRANSPARENCE, // (SID_SVX_START+1107) + SID_ATTR_LINE_JOINT, // (SID_SVX_START+1110) + SID_ATTR_LINE_CAP, // (SID_SVX_START+1111) + 0 + }; + + GetView().GetViewFrame()->GetBindings().Invalidate(aInval); + } + + if (pDoc->IsChanged()) + GetShell().SetModified(); + else if (bChanged) + pDoc->SetChanged(); + + pDlg->disposeOnce(); + }); } break; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits