aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2021-07-17 10:21:26 +0300
committerGravatar mturkia <miika.turkia@gmail.com>2021-07-18 13:43:54 +0300
commit63795a84f4e54dc5cf1bfa1d685dea685f85d424 (patch)
treee91b730217c225fc59ac72e63abeac1078dfc5d1
parent235ee4803f9ffc3108e1e00b51afeeb86e8d95a6 (diff)
downloadsubsurface-63795a84f4e54dc5cf1bfa1d685dea685f85d424.tar.gz
Export unused cylinders to divelogs.de
When user has selected to show unused cylinders in equipment tab, respect this setting when exporting to divelogs.de. Fixes #3277 Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
-rw-r--r--core/uploadDiveLogsDE.cpp6
-rw-r--r--xslt/divelogs-export.xslt3
2 files changed, 7 insertions, 2 deletions
diff --git a/core/uploadDiveLogsDE.cpp b/core/uploadDiveLogsDE.cpp
index 5b5bd8e91..a2914c406 100644
--- a/core/uploadDiveLogsDE.cpp
+++ b/core/uploadDiveLogsDE.cpp
@@ -11,6 +11,7 @@
#include "core/membuffer.h"
#include "core/divesite.h"
#include "core/cloudstorage.h"
+#include "core/xmlparams.h"
#ifndef SUBSURFACE_MOBILE
#include "core/selection.h"
#endif // SUBSURFACE_MOBILE
@@ -97,6 +98,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
xmlDoc *transformed;
struct zip_source *s;
struct membuffer mb = {};
+ struct xml_params *params = alloc_xml_params();
/*
* Get the i'th dive in XML format so we can process it.
@@ -153,7 +155,9 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
}
free_buffer(&mb);
- transformed = xsltApplyStylesheet(xslt, doc, NULL);
+ xml_params_add_int(params, "allcylinders", prefs.display_unused_tanks);
+ transformed = xsltApplyStylesheet(xslt, doc, xml_params_get(params));
+ free_xml_params(params);
if (!transformed) {
qWarning() << errPrefix << "XSLT transform failed for dive: " << i;
report_error(tr("Conversion of dive %1 to divelogs.de format failed").arg(i).toUtf8());
diff --git a/xslt/divelogs-export.xslt b/xslt/divelogs-export.xslt
index 1ef49c325..80abadb37 100644
--- a/xslt/divelogs-export.xslt
+++ b/xslt/divelogs-export.xslt
@@ -3,6 +3,7 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="commonTemplates.xsl"/>
<xsl:strip-space elements="*"/>
+ <xsl:param name="allcylinders" select="allcylinders"/>
<xsl:output method="xml" encoding="UTF-8" indent="yes"
cdata-section-elements="LOCATION SITE WEATHER WATERVIZIBILITY PARTNER BOATNAME CYLINDERDESCRIPTION LOGNOTES"
/>
@@ -170,7 +171,7 @@
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <xsl:if test="following-sibling::divecomputer/event[@name='gaschange' and @value=$gas] or substring-before(@start, ' ') - 5 &gt; substring-before(@end, ' ')">
+ <xsl:if test="following-sibling::divecomputer/event[@name='gaschange' and @value=$gas] or substring-before(@start, ' ') - 5 &gt; substring-before(@end, ' ') or $allcylinders &gt; 0">
<xsl:variable name="cur_cyl">
<xsl:value-of select="position()"/>
</xsl:variable>