sw/sdi/_viewsh.sdi                   |   10 ++++++++++
 sw/source/uibase/uiview/view2.cxx    |   13 +++++++++++++
 sw/source/uibase/uiview/viewmdi.cxx  |    3 +++
 sw/source/uibase/uiview/viewstat.cxx |   11 +++++++++++
 4 files changed, 37 insertions(+)

New commits:
commit 2cddaa6e199ed8bb6185b7825791199f9da4a670
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Tue Sep 15 21:41:25 2020 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Sun Sep 27 06:34:51 2020 +0200

    tdf#45705 Integrate zoom UI commands into Writer text edit view
    
    Change-Id: I71481e018175086a1a1711db22cea03b13eda490
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102830
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <rayk...@gmail.com>

diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi
index e087a07a6126..8231265d4e21 100644
--- a/sw/sdi/_viewsh.sdi
+++ b/sw/sdi/_viewsh.sdi
@@ -18,6 +18,16 @@
 
 interface BaseTextEditView
 {
+    SID_ZOOM_IN
+    [
+        ExecMethod = Execute ;
+        StateMethod = GetState ;
+    ]
+    SID_ZOOM_OUT
+    [
+        ExecMethod = Execute ;
+        StateMethod = GetState ;
+    ]
     FN_TOGGLE_OUTLINE_CONTENT_VISIBILITY
     [
         ExecMethod = Execute ;
diff --git a/sw/source/uibase/uiview/view2.cxx 
b/sw/source/uibase/uiview/view2.cxx
index b4ae522a2cf9..6866c8b4788a 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -141,6 +141,8 @@
 #include <memory>
 #include <string_view>
 
+#include <basegfx/utils/zoomtools.hxx>
+
 const char sStatusDelim[] = " : ";
 
 using namespace sfx2;
@@ -581,6 +583,17 @@ void SwView::Execute(SfxRequest &rReq)
             rTmpWin.SetUseInputLanguage( false );
         }
         break;
+        case SID_ZOOM_IN:
+        case SID_ZOOM_OUT:
+        {
+            long nFact = m_pWrtShell->GetViewOptions()->GetZoom();
+            if (SID_ZOOM_OUT == nSlot)
+                nFact = basegfx::zoomtools::zoomIn(nFact);
+            else
+                nFact = basegfx::zoomtools::zoomOut(nFact);
+            SetZoom(SvxZoomType::PERCENT, nFact);
+        }
+        break;
         case FN_TO_PREV_PAGE:
         case FN_TO_NEXT_PAGE:
         {
diff --git a/sw/source/uibase/uiview/viewmdi.cxx 
b/sw/source/uibase/uiview/viewmdi.cxx
index 12606618f8e2..3b18942f150d 100644
--- a/sw/source/uibase/uiview/viewmdi.cxx
+++ b/sw/source/uibase/uiview/viewmdi.cxx
@@ -77,6 +77,9 @@ void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, 
bool bViewOnly )
     if (bCursorIsVisible)
         m_pWrtShell->ShowCursor();
 
+    Invalidate(SID_ZOOM_IN);
+    Invalidate(SID_ZOOM_OUT);
+
     collectUIInformation(OUString::number(nFactor));
 }
 
diff --git a/sw/source/uibase/uiview/viewstat.cxx 
b/sw/source/uibase/uiview/viewstat.cxx
index c9ace0d854a0..8c267d180350 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -69,6 +69,17 @@ void SwView::GetState(SfxItemSet &rSet)
     {
         switch(nWhich)
         {
+            case SID_ZOOM_IN:
+            case SID_ZOOM_OUT:
+            {
+                long nFact = m_pWrtShell->GetViewOptions()->GetZoom();
+                if ((SID_ZOOM_OUT == nWhich && nFact >= long(600)) ||
+                        (SID_ZOOM_IN == nWhich && nFact <= long(20)))
+                {
+                    rSet.DisableItem(nWhich);
+                }
+            }
+            break;
             case FN_TOGGLE_OUTLINE_CONTENT_VISIBILITY:
             {
                 bool bDisable(true);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to