diff options
author | Jim Raykowski <raykowj@gmail.com> | 2022-07-25 19:12:13 -0800 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2022-07-27 05:53:16 +0200 |
commit | b8ac21a3981b9d6fd94aa74c4da9026e580f44eb (patch) | |
tree | cc9e0ded556fb302d244cd50fc869e71d2a49283 | |
parent | 550392aeb849b326aa0d5d84a0ec1d28d3d42503 (diff) |
tdf#149916 revert to showing text of referenced text node
reverts cross-ref field listings in the Navigator to pre commit
21b5d6e0dce7c2034aded96d1499da27094e2781
A static_cast is used in place of a dynamic_cast which should provide
for reduced time to fill the fields members list for documents with
cross reference fields which was the main purpose for commit
21b5d6e0dce7c2034aded96d1499da27094e2781
Change-Id: If2734386de463a1280d835cab54f95e8bd7fab5c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137444
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
-rw-r--r-- | sw/source/uibase/utlui/content.cxx | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 1a459205742b..a20e792a9fbd 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -683,16 +683,33 @@ void SwContentType::FillMemberList(bool* pbContentChanged) } else if (pField->GetTypeId() == SwFieldTypesEnum::GetRef) { - OUString sFieldSubTypeOrName; - auto nSubType = pField->GetSubType(); - if (nSubType == REF_FOOTNOTE) - sFieldSubTypeOrName = SwResId(STR_FLDREF_FOOTNOTE); - else if (nSubType == REF_ENDNOTE) - sFieldSubTypeOrName = SwResId(STR_FLDREF_ENDNOTE); + const SwGetRefField* pRefField(static_cast<const SwGetRefField*>(pField)); + if (pRefField->IsRefToHeadingCrossRefBookmark() || + pRefField->IsRefToNumItemCrossRefBookmark()) + { + OUString sExpandedTextOfReferencedTextNode = + pRefField->GetExpandedTextOfReferencedTextNode( + *m_pWrtShell->GetLayout()); + if (sExpandedTextOfReferencedTextNode.getLength() > 80) + { + sExpandedTextOfReferencedTextNode = OUString::Concat( + sExpandedTextOfReferencedTextNode.subView(0, 80)) + u"..."; + } + sText = pField->GetDescription() + u" - " + sExpandedTextOfReferencedTextNode; + } else - sFieldSubTypeOrName = pField->GetFieldName(); - sText = pField->GetDescription() + u" - " + sFieldSubTypeOrName - + sExpandField; + { + OUString sFieldSubTypeOrName; + auto nSubType = pField->GetSubType(); + if (nSubType == REF_FOOTNOTE) + sFieldSubTypeOrName = SwResId(STR_FLDREF_FOOTNOTE); + else if (nSubType == REF_ENDNOTE) + sFieldSubTypeOrName = SwResId(STR_FLDREF_ENDNOTE); + else + sFieldSubTypeOrName = pField->GetFieldName(); + sText = pField->GetDescription() + u" - " + sFieldSubTypeOrName + + sExpandField; + } } else sText = pField->GetDescription() + u" - " + pField->GetFieldName() |