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-06-21 01:18:27 +0200
commit873b52f4c46c47ebe7d70374586a00488f3a4037 (patch)
treedd90a395d40d16ff0cee7f6519361bb32187274f /writerfilter
parent75bc2f75852b800c6f86d743a5de9e24f21cf279 (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> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132574 Tested-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 8a2356051a21..71d1ffd7fc9f 100644
--- a/writerfilter/source/dmapper/SdtHelper.cxx
+++ b/writerfilter/source/dmapper/SdtHelper.cxx
@@ -201,7 +201,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();
}