summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail.com>2022-07-25 19:12:13 -0800
committerJim Raykowski <raykowj@gmail.com>2022-07-27 05:53:16 +0200
commitb8ac21a3981b9d6fd94aa74c4da9026e580f44eb (patch)
treecc9e0ded556fb302d244cd50fc869e71d2a49283
parent550392aeb849b326aa0d5d84a0ec1d28d3d42503 (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.cxx35
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()