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.

Reply via email to