sd/source/ui/view/drviews4.cxx | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-)
New commits: commit 6f43db55ab72a3a538bf9ca0aeecb31fc1abbee1 Author: Pranam Lashkari <[email protected]> AuthorDate: Tue May 26 10:20:07 2020 +0530 Commit: Andras Timar <[email protected]> CommitDate: Wed Jun 10 12:31:13 2020 +0200 LOK: Allow deleting multiple slides from slidesorter Change-Id: Ie371e7eb5a96655fd281b4137243aa8628b6283b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94714 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx index 70d49670ea7d..20ec54212c5a 100644 --- a/sd/source/ui/view/drviews4.cxx +++ b/sd/source/ui/view/drviews4.cxx @@ -73,16 +73,33 @@ using namespace ::com::sun::star::drawing; void DrawViewShell::DeleteActualPage() { - sal_uInt16 nPage = maTabControl->GetCurPagePos(); - mpDrawView->SdrEndTextEdit(); try { Reference<XDrawPagesSupplier> xDrawPagesSupplier( GetDoc()->getUnoModel(), UNO_QUERY_THROW ); - Reference<XDrawPages> xPages( xDrawPagesSupplier->getDrawPages(), UNO_QUERY_THROW ); - Reference< XDrawPage > xPage( xPages->getByIndex( nPage ), UNO_QUERY_THROW ); - xPages->remove( xPage ); + Reference<XDrawPages> xPages( xDrawPagesSupplier->getDrawPages(), UNO_SET_THROW ); + sal_uInt16 nPageCount = GetDoc()->GetSdPageCount(mePageKind); + SdPage* pPage = nullptr; + std::vector<Reference<XDrawPage>> pagesToDelete; + + GetView()->BegUndo(SdResId(STR_UNDO_DELETEPAGES)); + + for (sal_uInt16 i = 0; i < nPageCount; i++) + { + pPage = GetDoc()->GetSdPage(i, mePageKind); + if(pPage->IsSelected()) + { + Reference< XDrawPage > xPage( xPages->getByIndex( maTabControl->GetPagePos(pPage->getPageId()) ), UNO_QUERY_THROW ); + pagesToDelete.push_back(xPage); + } + } + for (auto &xPage: pagesToDelete) + { + xPages->remove(xPage); + } + + GetView()->EndUndo(); } catch( Exception& ) { _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
