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>
This commit is contained in:
Miika Turkia 2021-07-17 10:21:26 +03:00 committed by mturkia
parent 235ee4803f
commit 63795a84f4
2 changed files with 7 additions and 2 deletions

View file

@ -11,6 +11,7 @@
#include "core/membuffer.h" #include "core/membuffer.h"
#include "core/divesite.h" #include "core/divesite.h"
#include "core/cloudstorage.h" #include "core/cloudstorage.h"
#include "core/xmlparams.h"
#ifndef SUBSURFACE_MOBILE #ifndef SUBSURFACE_MOBILE
#include "core/selection.h" #include "core/selection.h"
#endif // SUBSURFACE_MOBILE #endif // SUBSURFACE_MOBILE
@ -97,6 +98,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
xmlDoc *transformed; xmlDoc *transformed;
struct zip_source *s; struct zip_source *s;
struct membuffer mb = {}; struct membuffer mb = {};
struct xml_params *params = alloc_xml_params();
/* /*
* Get the i'th dive in XML format so we can process it. * 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); 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) { if (!transformed) {
qWarning() << errPrefix << "XSLT transform failed for dive: " << i; qWarning() << errPrefix << "XSLT transform failed for dive: " << i;
report_error(tr("Conversion of dive %1 to divelogs.de format failed").arg(i).toUtf8()); report_error(tr("Conversion of dive %1 to divelogs.de format failed").arg(i).toUtf8());

View file

@ -3,6 +3,7 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="commonTemplates.xsl"/> <xsl:include href="commonTemplates.xsl"/>
<xsl:strip-space elements="*"/> <xsl:strip-space elements="*"/>
<xsl:param name="allcylinders" select="allcylinders"/>
<xsl:output method="xml" encoding="UTF-8" indent="yes" <xsl:output method="xml" encoding="UTF-8" indent="yes"
cdata-section-elements="LOCATION SITE WEATHER WATERVIZIBILITY PARTNER BOATNAME CYLINDERDESCRIPTION LOGNOTES" cdata-section-elements="LOCATION SITE WEATHER WATERVIZIBILITY PARTNER BOATNAME CYLINDERDESCRIPTION LOGNOTES"
/> />
@ -170,7 +171,7 @@
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </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:variable name="cur_cyl">
<xsl:value-of select="position()"/> <xsl:value-of select="position()"/>
</xsl:variable> </xsl:variable>