summaryrefslogtreecommitdiff
path: root/xmloff/source
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga.extern@allotropia.de>2025-02-07 12:53:22 +0100
committerBalazs Varga <balazs.varga.extern@allotropia.de>2025-02-07 21:40:57 +0100
commit4328d1cca66ed9d1e34a8d788d16a2205fe77c1c (patch)
tree497a74f99d28a2629f65e15a3884b1e7b6cc858f /xmloff/source
parent0ccd8cd083a820e8c7ee983d88c9ca3c55221506 (diff)
tdf#120397 - odf export fix missing texts in text box control
(Ab)use a call to XTextRange::getText to flush edits and restore the selection of the textcontent in the textfields. TODO: unit/UItest Change-Id: If8e1c85f3565ae1b80fd0645c0905aae16404379 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181245 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'xmloff/source')
-rw-r--r--xmloff/source/draw/shapeexport.cxx4
-rw-r--r--xmloff/source/forms/layerexport.cxx14
2 files changed, 16 insertions, 2 deletions
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 92a8e0ed6d98..5eb127ac8a89 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -312,10 +312,10 @@ void XMLShapeExport::collectShapeAutoStyles(const uno::Reference< drawing::XShap
{
try
{
- // tdf#153161: it seems that the call to XTextRange::getString flushes the changes
+ // tdf#153161: it seems that the call to xText->getText flushes the changes
// for some objects, that otherwise fail to get exported correctly. Maybe at some
// point it would make sense to find a better place for more targeted flush.
- xText->getString();
+ xText = xText->getText();
}
catch (uno::RuntimeException const&)
{
diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx
index a5c604ca65f0..136a10368d85 100644
--- a/xmloff/source/forms/layerexport.cxx
+++ b/xmloff/source/forms/layerexport.cxx
@@ -523,6 +523,20 @@ namespace xmloff
Reference< XText > xControlText( _rxObject, UNO_QUERY );
if ( xControlText.is() )
{
+ try
+ {
+ // tdf#120397: similar to the fix of tdf#153161 where
+ // XTextRange::getText() --> ::GetSelection() flushes the changes
+ // for some Shape objects we also need to set the end cursor pos
+ // to the end of the form text objects, otherwise fail to get
+ // exported correctly. Maybe at some point it would make sense
+ // to find a better place for more targeted flush.
+ xControlText = xControlText->getText();
+ }
+ catch (css::uno::RuntimeException const&)
+ {
+ // just in case if we would hit something here
+ }
m_rContext.GetTextParagraphExport()->collectTextAutoStyles( xControlText );
}