summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2020-09-01 12:51:09 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2020-09-03 14:53:56 +0200
commitc87f331d2900eab70ac3021cbe530926efa6499f (patch)
treee74c63a2253a26ea8e057e5ba13f8079be272679
parentb462a02283a92258ffd01d938d7d718658e35657 (diff)
tdf#136423 make SwXDrawPage::group work with a single shapedistro/cib/libreoffice-6-3
No reason this should not work (and the implementation in Draw/Impress/Calc also works this way) Change-Id: Ic5bc7420e9025b45ed848dccf68b112c0c6c2cd5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101842 Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 3eb5318ed9ae8cf02804fbdc584a5f4b046db0ae) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101958 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--sw/PythonTest_sw_python.mk1
-rw-r--r--sw/qa/python/check_drawpage.py44
-rw-r--r--sw/source/core/unocore/unodraw.cxx2
3 files changed, 46 insertions, 1 deletions
diff --git a/sw/PythonTest_sw_python.mk b/sw/PythonTest_sw_python.mk
index 8250da21dc6d..a5b36127b793 100644
--- a/sw/PythonTest_sw_python.mk
+++ b/sw/PythonTest_sw_python.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_PythonTest_set_defs,sw_python,\
$(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\
check_bookmarks \
check_change_color \
+ check_drawpage \
check_index \
check_flies \
check_fields \
diff --git a/sw/qa/python/check_drawpage.py b/sw/qa/python/check_drawpage.py
new file mode 100644
index 000000000000..ef28490ce224
--- /dev/null
+++ b/sw/qa/python/check_drawpage.py
@@ -0,0 +1,44 @@
+#! /usr/bin/env python
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This file is part of the LibreOffice project.
+#
+# 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/.
+#
+import unittest
+from org.libreoffice.unotest import UnoInProcess
+
+from com.sun.star.text.TextContentAnchorType import AT_PARAGRAPH
+
+class CheckDrawPage(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ cls._uno = UnoInProcess()
+ cls._uno.setUp()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls._uno.tearDown()
+
+ """
+ Test that grouping shapes also works with a single shape.
+ """
+ def test_group_single_shape(self):
+ xDoc = self.__class__._uno.openEmptyWriterDoc()
+ page = xDoc.DrawPage
+ collection = self.__class__._uno.xContext.ServiceManager.createInstance( 'com.sun.star.drawing.ShapeCollection' )
+ shape = xDoc.createInstance('com.sun.star.drawing.TextShape')
+ shape.AnchorType = AT_PARAGRAPH
+ page.add(shape)
+ collection.add(shape)
+ shapegroup = page.group(collection)
+
+ self.assertEqual(shapegroup.Count, 1)
+
+ xDoc.close(True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index 77c89b485d95..05f2f55acf84 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -753,7 +753,7 @@ uno::Reference< drawing::XShapeGroup > SwXDrawPage::group(const uno::Reference<
{
// mark and return MarkList
const SdrMarkList& rMarkList = pPage->PreGroup(xShapes);
- if ( rMarkList.GetMarkCount() > 1 )
+ if ( rMarkList.GetMarkCount() > 0 )
{
for (size_t i = 0; i < rMarkList.GetMarkCount(); ++i)
{