diff options
author | Vasily Melenchuk <vasily.melenchuk@cib.de> | 2022-03-25 11:14:10 +0300 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2022-06-21 01:18:27 +0200 |
commit | 873b52f4c46c47ebe7d70374586a00488f3a4037 (patch) | |
tree | dd90a395d40d16ff0cee7f6519361bb32187274f /writerfilter | |
parent | 75bc2f75852b800c6f86d743a5de9e24f21cf279 (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.cxx | 3 |
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(); } |