summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorVojtěch Doležal <dolezvo1@cvut.cz>2023-02-27 08:52:35 +0100
committerMiklos Vajna <vmiklos@collabora.com>2023-03-07 07:12:31 +0000
commit7b99871635cd48c2a8a1d0afbd7afc60a45cc2ff (patch)
treed2238324dac2096656a5b682bcedd288be5a5787 /xmloff
parentcc45d748e241ea96fd0c81154e3dd49f9fc58357 (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.cxx2
-rw-r--r--xmloff/source/text/txtflde.cxx10
-rw-r--r--xmloff/source/text/txtfldi.cxx8
-rw-r--r--xmloff/source/token/tokens.txt2
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