diff options
author | Pranam Lashkari <lpranam@collabora.com> | 2020-05-26 10:17:40 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-06-10 12:30:55 +0200 |
commit | 95eb7561d7dbbfcb36460115712992172b93c13b (patch) | |
tree | e9368e50e84b5373bb57766d343a3471ac24155a | |
parent | 8fba80db6996fef9e4bf17e0c5d1ec69214ca8bf (diff) |
LOK: slide sorter: update the model on selecting multiple slides
Change-Id: I17bdd8e39c960a81d4bef2a8cffd42103adb5341
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94713
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r-- | sd/source/ui/view/drviews1.cxx | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx index cf8f73d21819..d853f8edb4ac 100644 --- a/sd/source/ui/view/drviews1.cxx +++ b/sd/source/ui/view/drviews1.cxx @@ -776,15 +776,36 @@ bool DrawViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb) bool DrawViewShell::SelectPage(sal_uInt16 nPage, sal_uInt16 nSelect) { SdPage* pPage = GetDoc()->GetSdPage(nPage, PageKind::Standard); + + //page selector marks pages to selected in view + auto &pageSelector = sd::slidesorter::SlideSorterViewShell::GetSlideSorter(GetViewShellBase())->GetSlideSorter().GetController().GetPageSelector(); + if (pPage) { if (nSelect == 0) - pPage->SetSelected(false); // Deselect. + { + GetDoc()->SetSelected(pPage, false); // Deselect. + pageSelector.DeselectPage(nPage); + } else if (nSelect == 1) - pPage->SetSelected(true); // Select. + { + GetDoc()->SetSelected(pPage, true); // Select. + pageSelector.SelectPage(nPage); + } else - pPage->SetSelected(!pPage->IsSelected()); // Toggle. - + { + // Toggle. + if (pPage->IsSelected()) + { + GetDoc()->SetSelected(pPage, false); + pageSelector.DeselectPage(nPage); + } + else + { + GetDoc()->SetSelected(pPage, true); + pageSelector.SelectPage(nPage); + } + } return true; } |