diff options
author | Vojtěch Doležal <dolezvo1@cvut.cz> | 2023-02-27 08:52:35 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-03-07 07:12:31 +0000 |
commit | 7b99871635cd48c2a8a1d0afbd7afc60a45cc2ff (patch) | |
tree | d2238324dac2096656a5b682bcedd288be5a5787 /xmloff | |
parent | cc45d748e241ea96fd0c81154e3dd49f9fc58357 (diff) |
tdf#153396 - Bibliography marks improvements
Adds option to separate function of "URL" into (listed) "URL" and "Target URL" to allow for more flexibility (in that case if target URL is empty, bibliography mark hyperlink leads to bibliography table row if possible)
When writing tests also found and fixed bug where exporting new file with anchor link bibliography mark crashes LO.
Change-Id: Ic1b5c8c9590c0338dcfc4fa3a981142bddae0113
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147868
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/core/xmltoken.cxx | 2 | ||||
-rw-r--r-- | xmloff/source/text/txtflde.cxx | 10 | ||||
-rw-r--r-- | xmloff/source/text/txtfldi.cxx | 8 | ||||
-rw-r--r-- | xmloff/source/token/tokens.txt | 2 |
4 files changed, 20 insertions, 2 deletions
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx index 7eb6f14eee54..daa658011ae3 100644 --- a/xmloff/source/core/xmltoken.cxx +++ b/xmloff/source/core/xmltoken.cxx @@ -3469,6 +3469,8 @@ namespace xmloff::token { TOKEN("margin-gutter", XML_MARGIN_GUTTER), TOKEN("local-url", XML_LOCAL_URL), + TOKEN("target-url", XML_TARGET_URL), + TOKEN("use-target-url", XML_USE_TARGET_URL), TOKEN("dir", XML_DIR ), TOKEN("displaystyle", XML_DISPLAYSTYLE ), diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx index 58ad8604f0a1..71093e61420a 100644 --- a/xmloff/source/text/txtflde.cxx +++ b/xmloff/source/text/txtflde.cxx @@ -2708,7 +2708,7 @@ void XMLTextFieldExport::ProcessBibliographyData( if (!sStr.isEmpty()) { XMLTokenEnum eElement = MapBibliographyFieldName(rProp.Name); - if (eElement == XML_URL || eElement == XML_LOCAL_URL) + if (eElement == XML_URL || eElement == XML_LOCAL_URL || eElement == XML_TARGET_URL) { sStr = GetExport().GetRelativeReference(sStr); } @@ -3414,6 +3414,14 @@ enum XMLTokenEnum XMLTextFieldExport::MapBibliographyFieldName(std::u16string_vi { eName = XML_LOCAL_URL; } + else if (sName == u"TargetURL") + { + eName = XML_TARGET_URL; + } + else if (sName == u"UseTargetURL") + { + eName = XML_USE_TARGET_URL; + } else { SAL_WARN("xmloff.text", "Unknown bibliography info data"); diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx index af2bd8aa2ac1..e2fad89cac9d 100644 --- a/xmloff/source/text/txtfldi.cxx +++ b/xmloff/source/text/txtfldi.cxx @@ -2969,7 +2969,7 @@ void XMLBibliographyFieldImportContext::startFastElement( else { OUString aStringValue = aIter.toString(); - if (nToken == XML_URL || nToken == XML_LOCAL_URL) + if (nToken == XML_URL || nToken == XML_LOCAL_URL || nToken == XML_TARGET_URL) { aStringValue = GetImport().GetAbsoluteReference(aStringValue); } @@ -3113,6 +3113,12 @@ const char* XMLBibliographyFieldImportContext::MapBibliographyFieldName( case XML_LOCAL_URL: pName = "LocalURL"; break; + case XML_TARGET_URL: + pName = "TargetURL"; + break; + case XML_USE_TARGET_URL: + pName = "UseTargetURL"; + break; default: assert(false && "Unknown bibliography info data"); pName = nullptr; diff --git a/xmloff/source/token/tokens.txt b/xmloff/source/token/tokens.txt index 576efe9b8bd5..098d8dd4c501 100644 --- a/xmloff/source/token/tokens.txt +++ b/xmloff/source/token/tokens.txt @@ -3216,6 +3216,8 @@ page-content-top page-content-bottom margin-gutter local-url +target-url +use-target-url dir displaystyle infinity |