Hi, Am 24.11.21 um 11:51 schrieb Attila Bakos (NISZ) (via logerrit): [...] > tdf#129183 sw: textboxes in group shapes - part 3 > > Grouping/ungrouping nested groups works now. > > Manual test: > > 1. Insert Shape. > 2. Right-click on selected shape, Add Text Box (and some text). > 3. Insert a new shape. > 4. Select and group the two shapes. > 3. Insert a third shape. > 4. Select and group the shape and the previously grouped shapes. > > The text box remains in the nested shape group. > > Details: > > 1) tdf#144271 memory leak of SwTextBoxHelper, by replacing the > textbox structure vector with std::unordered map, and rethinking > of the ownership of the objects. If a SwFrameFormat dies, and that > is a FLYFRMFMT, it will be deleted from the textbox node and the > FrameFormat table in the doc too, and the drawing will be stay as > it was before. If the dying format is a drawing, all the textboxes, > and the node will be deleted. > > 2) Introducing the new UNO property TextBoxContent, which is needed > for writerfilter/xmloff later to set a new textbox for the shape > via UNO. > > 3) Missing parameters are present now for syncing the textbox > parameters. > > 4) Introducing a new function namely the handleGroupTextBox() to > do the tasks simply with all textboxes in a group shape. > This can handle nested groups as well (group in a group). > > Known issues: now copy of nested group objects is implemented > but not enabled, because it causes an assert. > > Change-Id: I931886eda01c7a3db93098de10f5e5f48f2f217b > Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124657 > Tested-by: László Németh <nemeth@xxxxxxxxxxxxxx> > Reviewed-by: László Németh <nemeth@xxxxxxxxxxxxxx> [...] This newly added test fails here in my beta1 upload (on https://buildd.debian.org/status/package.php?p=libreoffice&suite=experimental - see the amd64 one: https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=amd64&ver=1%3A7.3.0%7Ebeta1-1&stamp=1637916025&raw=1 and reproducable on my local build[1]): ====================================================================== ERROR: test_ComplexGroupShape (ComplexGroupShapeTest.ComplexGroupShapeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-7.3.0.0.beta1/sw/qa/uitest/writer_tests4/ComplexGroupShapeTest.py", line 93, in test_ComplexGroupShape self.assertEqual(True,document.getCurrentSelection().getByIndex(0).TextBox) AttributeError: TextBox [...] > diff --git a/sw/qa/uitest/writer_tests4/ComplexGroupShapeTest.py b/sw/qa/uitest/writer_tests4/ComplexGroupShapeTest.py > new file mode 100644 > index 000000000000..cdac088a32d7 > --- /dev/null > +++ b/sw/qa/uitest/writer_tests4/ComplexGroupShapeTest.py > [...] > + # select the first ex-group member shape > + self.xUITest.executeCommand(".uno:JumpToNextFrame") > + self.ui_test.wait_until_child_is_available('metricfield') > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + > + # check if it is a textbox > + self.assertEqual(True,document.getCurrentSelection().getByIndex(0).TextBox) > + here... Note that that one is line 93. On the arm64 aka aarch64 buildds on Debian I get (see https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=arm64&ver=1%3A7.3.0%7Ebeta1-1&stamp=1637946364&raw=1) ERROR: test_ComplexGroupShape (ComplexGroupShapeTest.ComplexGroupShapeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/<<PKGBUILDDIR>>/sw/qa/uitest/writer_tests4/ComplexGroupShapeTest.py", line 117, in test_ComplexGroupShape self.assertEqual(True,document.getCurrentSelection().getByIndex(0).TextBox) AttributeError: TextBox which is > + # go to the other one > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + > + # this is still a group, so it cannot be a textbox > + self.assertEqual(False,document.getCurrentSelection().getByIndex(0).TextBox) > + > + # do ungroup > + self.xUITest.executeCommand(".uno:FormatUngroup") > + > + # deselect > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"ESC"})) > + time.sleep(0.1) > + > + # select one shape of the last group > + self.xUITest.executeCommand(".uno:JumpToNextFrame") > + self.ui_test.wait_until_child_is_available('metricfield') > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"})) > + > + # check if it is a textbox > + self.assertEqual(True,document.getCurrentSelection().getByIndex(0).TextBox) this (the second one) - line 117. Some flakiness/timing issues in the test? Please tell me if I can test something :-) Regards, Rene [1] did various test builds but didn't do one until the end shortly before the tag and "of course" this now happens... :/