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 <raykowj@gmail.com>
diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi
index e087a07..8231265 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 b4ae522..6866c8b 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 1260661..3b18942 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 c9ace0d..8c267d1 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);