diff options
author | Pranam Lashkari <lpranam@collabora.com> | 2020-05-26 10:17:40 +0530 |
---|---|---|
committer | Pranam Lashkari <lpranam@collabora.com> | 2020-06-25 08:10:07 +0200 |
commit | ebdb73c17d884c463c3c1279678a36c2668fd8c2 (patch) | |
tree | 99ac32b9ac8cbd25dbb1aaab3f5c817b4f2260ee /sd | |
parent | 3ba009e0c2b7800305103f8ec86df58625fed955 (diff) |
LOK: slide sorter: update the model on selecting multiple slides
Change-Id: I17bdd8e39c960a81d4bef2a8cffd42103adb5341
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94715
Tested-by: Jenkins
Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
Diffstat (limited to 'sd')
-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 c99163f62817..ab2339220574 100644 --- a/sd/source/ui/view/drviews1.cxx +++ b/sd/source/ui/view/drviews1.cxx @@ -758,15 +758,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; } |