summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2016-05-02 20:11:36 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-05-02 10:25:07 -0700
commit7ec83ef02a7216bd2de19798d250df8540b90b38 (patch)
tree7be28957bafaabb2eeb0e4b344f438a189d65d8c
parenta83c674139562010e9b9ee281b121ed4434c8a5a (diff)
downloadsubsurface-7ec83ef02a7216bd2de19798d250df8540b90b38.tar.gz
CSV import: import time field if available
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--desktop-widgets/divelogimportdialog.cpp6
-rw-r--r--xslt/csv2xml.xslt13
2 files changed, 16 insertions, 3 deletions
diff --git a/desktop-widgets/divelogimportdialog.cpp b/desktop-widgets/divelogimportdialog.cpp
index 854a522f2..90a466c9a 100644
--- a/desktop-widgets/divelogimportdialog.cpp
+++ b/desktop-widgets/divelogimportdialog.cpp
@@ -722,6 +722,8 @@ int DiveLogImportDialog::setup_csv_params(QStringList r, char **params, int pnr)
params[pnr++] = intdup(r.indexOf(tr("Date")));
params[pnr++] = strdup("datefmt");
params[pnr++] = intdup(ui->DateFormat->currentIndex());
+ params[pnr++] = strdup("starttimeField");
+ params[pnr++] = intdup(r.indexOf(tr("Time")));
params[pnr++] = strdup("timeField");
params[pnr++] = intdup(r.indexOf(tr("Sample time")));
params[pnr++] = strdup("depthField");
@@ -823,7 +825,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
sample->tts.seconds *= 60;
}
} else {
- char *params[43];
+ char *params[45];
int pnr = 0;
pnr = setup_csv_params(r, params, pnr);
@@ -890,7 +892,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
parse_manual_file(fileNames[i].toUtf8().data(), params, pnr - 1);
} else {
- char *params[43];
+ char *params[45];
int pnr = 0;
pnr = setup_csv_params(r, params, pnr);
diff --git a/xslt/csv2xml.xslt b/xslt/csv2xml.xslt
index 5c97b7aee..b196ae054 100644
--- a/xslt/csv2xml.xslt
+++ b/xslt/csv2xml.xslt
@@ -4,6 +4,7 @@
<xsl:strip-space elements="*"/>
<xsl:param name="dateField" select="dateField"/>
<xsl:param name="datefmt" select="datefmt"/>
+ <xsl:param name="starttimeField" select="starttimeField"/>
<xsl:param name="timeField" select="timeField"/>
<xsl:param name="depthField" select="depthField"/>
<xsl:param name="tempField" select="tempField"/>
@@ -87,7 +88,17 @@
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="time">
- <xsl:value-of select="concat(substring($time, 2, 2), ':', substring($time, 4, 2))"/>
+ <xsl:choose>
+ <xsl:when test="$starttimeField >= 0">
+ <xsl:call-template name="getFieldByIndex">
+ <xsl:with-param name="index" select="$starttimeField"/>
+ <xsl:with-param name="line" select="substring-after(substring-after(., $lf), $lf)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat(substring($time, 2, 2), ':', substring($time, 4, 2))"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:attribute>
<!-- If the dive is CCR, create oxygen and diluent cylinders -->