sd/source/ui/dlg/diactrl.cxx | 3 +- sd/source/ui/inc/SlideSorter.hxx | 2 + sd/source/ui/slidesorter/controller/SlideSorterController.cxx | 15 ++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-)
New commits: commit b037e6b504d2fe52d07f0224ddd711a0ec778da9 Author: Oliver Specht <oliver.spe...@cib.de> AuthorDate: Thu Jan 9 14:55:09 2025 +0100 Commit: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> CommitDate: Thu Jan 23 10:23:43 2025 +0100 tdf#117946 Mouse zoom support added to slide sorter Change-Id: I3d532f14f25d31a90971ace262ddf88df3c33eac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180190 Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Tested-by: allotropia jenkins <jenk...@allotropia.de> diff --git a/sd/source/ui/dlg/diactrl.cxx b/sd/source/ui/dlg/diactrl.cxx index d0e0a408a1f8..5e1351657eb1 100644 --- a/sd/source/ui/dlg/diactrl.cxx +++ b/sd/source/ui/dlg/diactrl.cxx @@ -30,6 +30,7 @@ #include <strings.hrc> #include <diactrl.hxx> +#include <SlideSorter.hxx> #include <sdresid.hxx> #include <app.hrc> @@ -61,7 +62,7 @@ SdPagesField::SdPagesField( vcl::Window* pParent, // set parameter of MetricFields m_xWidget->set_digits(0); - m_xWidget->set_range(1, 15); + m_xWidget->set_range(1, MAX_PAGES_PER_ROW); m_xWidget->set_increments(1, 5); m_xWidget->connect_value_changed(LINK(this, SdPagesField, ModifyHdl)); m_xWidget->connect_output(LINK(this, SdPagesField, OutputHdl)); diff --git a/sd/source/ui/inc/SlideSorter.hxx b/sd/source/ui/inc/SlideSorter.hxx index cbd15bd6ac11..8049be043899 100644 --- a/sd/source/ui/inc/SlideSorter.hxx +++ b/sd/source/ui/inc/SlideSorter.hxx @@ -28,6 +28,8 @@ namespace vcl { class Window; } namespace com::sun::star::frame { class XController; } namespace rtl { template <class reference_type> class Reference; } +#define MAX_PAGES_PER_ROW 15 + namespace sd { class ViewShell; class ViewShellBase; diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx index a8d467485b1a..73b26b72061e 100644 --- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx +++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx @@ -379,8 +379,19 @@ bool SlideSorterController::Command ( return false; if (pData->IsMod1()) { - // We do not support zooming with control+mouse wheel. - return false; + sal_Int32 nColumnCount = mrSlideSorter.GetView().GetLayouter().GetColumnCount(); + if (0L > pData->GetDelta()) + { + if (nColumnCount < MAX_PAGES_PER_ROW) + ++nColumnCount; + } + else if (nColumnCount > 1) + --nColumnCount; + mrSlideSorter.GetView().GetLayouter().SetColumnCount ( + nColumnCount, nColumnCount); + Rearrange(true); + mrSlideSorter.GetViewShell()->GetViewFrame()->GetBindings().Invalidate(SID_PAGES_PER_ROW); + bEventHasBeenHandled = true; } // tdf#119745: ScrollLines gives accurate distance scrolled on touchpad. NotchDelta sign // gives direction. Default is 3 lines at a time, so factor that out.