[Libreoffice-commits] core.git: sc/qa sc/source

Shiko (via logerrit) logerrit at kemper.freedesktop.org
Sun Jun 7 12:20:11 UTC 2020


 sc/qa/uitest/calc_tests/zoom.py  |   70 +++++++++++++++++++++++++++++++++++++++
 sc/source/ui/uitest/uiobject.cxx |   27 +++++++++++++++
 2 files changed, 97 insertions(+)

New commits:
commit d3ae37c935209621d90da6c3a059c0c013adb772
Author:     Shiko <aelshreif7 at gmail.com>
AuthorDate: Wed Jun 3 06:38:59 2020 +0200
Commit:     Ahmed ElShreif <aelshreif7 at gmail.com>
CommitDate: Sun Jun 7 14:19:31 2020 +0200

    uitest: Add support for Calc - Set Zoom
    
    Also add a test case for zoom in calc
    
    Change-Id: Ic59480a884ed61bfdecdc6b4d509706dde9a194c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95389
    Tested-by: Jenkins
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/qa/uitest/calc_tests/zoom.py b/sc/qa/uitest/calc_tests/zoom.py
new file mode 100644
index 000000000000..647507ef70c9
--- /dev/null
+++ b/sc/qa/uitest/calc_tests/zoom.py
@@ -0,0 +1,70 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import importlib
+#uitest sc / View-Zoom
+
+class calcZoom(UITestCase):
+    def test_zoom_calc(self):
+        MainDoc = self.ui_test.create_doc_in_start_center("calc")
+        MainWindow = self.xUITest.getTopFocusWindow()
+        gridwin = MainWindow.getChild("grid_window")
+        gridwin.executeAction("SELECT", mkPropertyValues({"TABLE": "0"}))
+        gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"}))
+
+        #Set the Zoom to be 100%
+        gridwin.executeAction("SET", mkPropertyValues({"ZOOM": "100"}))
+        self.assertEqual(get_state_as_dict(gridwin)["Zoom"], "100")
+
+        #dialog View-Zoom-Zoom
+        self.ui_test.execute_dialog_through_command(".uno:Zoom")
+        xDialog = self.xUITest.getTopFocusWindow()
+
+        #select fit weight & height - OK - open and verify
+        fitwandh = xDialog.getChild("fitwandh")
+        fitwandh.executeAction("CLICK",tuple())
+        xOKBtn = xDialog.getChild("ok")
+        self.ui_test.close_dialog_through_button(xOKBtn)
+
+        self.ui_test.execute_dialog_through_command(".uno:Zoom")
+        xDialog = self.xUITest.getTopFocusWindow()
+        #select fit weight - OK - open and verify
+        fitw = xDialog.getChild("fitw")
+        fitw.executeAction("CLICK",tuple())
+        xOKBtn = xDialog.getChild("ok")
+        self.ui_test.close_dialog_through_button(xOKBtn)
+
+        self.ui_test.execute_dialog_through_command(".uno:Zoom")
+        xDialog = self.xUITest.getTopFocusWindow()
+        #select 100% & Automatic - OK - open and verify
+        x100pc = xDialog.getChild("100pc")
+        x100pc.executeAction("CLICK", tuple())
+        xOKBtn = xDialog.getChild("ok")
+        self.ui_test.close_dialog_through_button(xOKBtn)
+        self.assertEqual(get_state_as_dict(gridwin)["Zoom"], "100")
+
+        #Set the Zoom to be 103%
+        gridwin.executeAction("SET", mkPropertyValues({"ZOOM": "103"}))
+        self.assertEqual(get_state_as_dict(gridwin)["Zoom"], "103")
+
+        self.ui_test.execute_dialog_through_command(".uno:Zoom")
+        xDialog = self.xUITest.getTopFocusWindow()
+        #select variable option and make zoom 100% again - OK - open and verify
+        zoomsb = xDialog.getChild("zoomsb")
+        self.assertEqual(get_state_as_dict(zoomsb)["Text"], "103%")
+        zoomsb.executeAction("DOWN",tuple())
+        zoomsb.executeAction("DOWN",tuple())
+        zoomsb.executeAction("DOWN",tuple())
+        xOKBtn = xDialog.getChild("ok")
+        self.ui_test.close_dialog_through_button(xOKBtn)
+        self.assertEqual(get_state_as_dict(gridwin)["Zoom"], "100")
+
+        self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
\ No newline at end of file
diff --git a/sc/source/ui/uitest/uiobject.cxx b/sc/source/ui/uitest/uiobject.cxx
index d52a8a75e6ab..0782ea500d28 100644
--- a/sc/source/ui/uitest/uiobject.cxx
+++ b/sc/source/ui/uitest/uiobject.cxx
@@ -20,6 +20,8 @@
 #include <navipi.hxx>
 #include <sfx2/sidebar/Sidebar.hxx>
 #include <sfx2/viewfrm.hxx>
+#include <appoptio.hxx>
+#include <scmod.hxx>
 
 #include <svx/svditer.hxx>
 #include <svx/svdobj.hxx>
@@ -72,6 +74,9 @@ StringMap ScGridWinUIObject::get_state()
     ScRangeStringConverter::GetStringFromRangeList(aMarkedAreaString, &aMarkedArea, mxGridWindow->getViewData()->GetDocument(), formula::FormulaGrammar::CONV_OOO);
 
     aMap["MarkedArea"] = aMarkedAreaString;
+
+    ScAppOptions aOpt = SC_MOD()->GetAppOptions();
+    aMap["Zoom"] = OUString::number( aOpt.GetZoom() );
     return aMap;
 }
 
@@ -221,6 +226,28 @@ void ScGridWinUIObject::execute(const OUString& rAction,
             ::sfx2::sidebar::Sidebar::ShowPanel(aVal, pViewFrm->GetFrame().GetFrameInterface());
         }
     }
+    else if (rAction == "SET")
+    {
+        if (rParameters.find("ZOOM") != rParameters.end())
+        {
+            auto itr = rParameters.find("ZOOM");
+            OUString aVal = itr->second;
+            sal_Int32 nVal = aVal.toInt32();
+            ScTabViewShell* pViewShell = getViewShell();
+            ScModule*  pScMod = SC_MOD();
+            if( nVal )
+            {
+                ScAppOptions aNewOpt = pScMod->GetAppOptions();
+                aNewOpt.SetZoom( nVal );
+                pScMod->SetAppOptions( aNewOpt );
+                Fraction aFract( nVal, 100 );
+                pViewShell->SetZoom( aFract, aFract, true );
+                pViewShell->PaintGrid();
+                pViewShell->PaintTop();
+                pViewShell->PaintLeft();
+            }
+        }
+    }
     else
     {
         WindowUIObject::execute(rAction, rParameters);


More information about the Libreoffice-commits mailing list