summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2017-05-07 14:19:58 +0300
committerGravatar Miika Turkia <miika.turkia@gmail.com>2017-05-07 14:19:58 +0300
commitcef56c6290c82b882181bf7477ee96ad4fa65dcd (patch)
tree426d378c10acbd8c491ac59af994f79393eafc7f
parent0dfa448d8c7132bd0058a6fb3bc820fdde2a4759 (diff)
downloadsubsurface-cef56c6290c82b882181bf7477ee96ad4fa65dcd.tar.gz
Import dive number from Seabear CSV file
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
-rw-r--r--core/qthelper.cpp13
-rw-r--r--xslt/csv2xml.xslt7
2 files changed, 20 insertions, 0 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 0673a78ce..cbfbd2f72 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -1518,6 +1518,19 @@ int parse_seabear_header(const char *filename, char **params, int pnr)
QString parseLine = f.readLine();
/*
+ * Parse dive number from Seabear CSV header
+ */
+
+ while ((parseLine = f.readLine().trimmed()).length() > 0 && !f.atEnd()) {
+ if (parseLine.contains("//DIVE NR: ")) {
+ qDebug() << "DEBGU: " << parseLine;
+ params[pnr++] = strdup("diveNro");
+ params[pnr++] = strdup(parseLine.replace(QString::fromLatin1("//DIVE NR: "), QString::fromLatin1("")).toUtf8().data());
+ break;
+ }
+ }
+
+ /*
* Parse header - currently only interested in sample
* interval and hardware version. If we have old format
* the interval value is missing from the header.
diff --git a/xslt/csv2xml.xslt b/xslt/csv2xml.xslt
index 960f48395..fadb5f443 100644
--- a/xslt/csv2xml.xslt
+++ b/xslt/csv2xml.xslt
@@ -26,6 +26,7 @@
<xsl:param name="separatorIndex" select="separatorIndex"/>
<xsl:param name="delta" select="delta"/>
<xsl:param name="hw" select="hw"/>
+ <xsl:param name="diveNro" select="diveNro"/>
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="lf"><xsl:text>
@@ -111,6 +112,12 @@
</xsl:attribute>
</xsl:if>
+ <xsl:if test="string-length($diveNro) > 0">
+ <xsl:attribute name="number">
+ <xsl:value-of select="$diveNro"/>
+ </xsl:attribute>
+ </xsl:if>
+
<!-- If the dive is CCR, create oxygen and diluent cylinders -->
<xsl:if test="$po2Field >= 0 or $setpointField >= 0 or $o2sensor1Field >= 0 or $o2sensor2Field >= 0 or $o2sensor3Field >= 0">