summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorVasily Melenchuk <vasily.melenchuk@cib.de>2022-03-25 11:14:10 +0300
committerThorsten Behrens <thorsten.behrens@allotropia.de>2022-03-26 23:02:01 +0100
commit9d033508af5257aeebbd8c22a053db5e74a814d3 (patch)
treecb2faf367f670c5a23a77a44851e46fdce82cc2f /writerfilter
parentb07e36ee14c8dae4331fa6c9044fa18760728275 (diff)
tdf#148111: docx std fields: use placeholder text for empty data
It is quite unexpected Word behavior: if data source for sdt field exists but contains empty string it is not used. Placeholder is inserted instead. In general behavior is more complex: logic of replacement is defined by <w:showingPlcHdr> property and results can vary (see testcase). But LO does not support this property correctly yet. Change-Id: I2ec8efe05f79a01af5d74d21bfcd05f3b19e3970 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132096 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/dmapper/SdtHelper.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/SdtHelper.cxx b/writerfilter/source/dmapper/SdtHelper.cxx
index f4fa3ef69405..f05d1c68b049 100644
--- a/writerfilter/source/dmapper/SdtHelper.cxx
+++ b/writerfilter/source/dmapper/SdtHelper.cxx
@@ -195,7 +195,8 @@ std::optional<OUString> SdtHelper::getValueFromDataBinding()
{
uno::Reference<XXPathObject> xResult = xXpathAPI->eval(xDocument, m_sDataBindingXPath);
- if (xResult.is() && xResult->getNodeList() && xResult->getNodeList()->getLength())
+ if (xResult.is() && xResult->getNodeList() && xResult->getNodeList()->getLength()
+ && xResult->getString().getLength())
{
return xResult->getString();
}