[PATCH 5/6] CSV import: import time field if available

Miika Turkia miika.turkia at gmail.com
Mon May 2 10:11:36 PDT 2016


Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
 desktop-widgets/divelogimportdialog.cpp |  6 ++++--
 xslt/csv2xml.xslt                       | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/desktop-widgets/divelogimportdialog.cpp b/desktop-widgets/divelogimportdialog.cpp
index 854a522..90a466c 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 b146616..977b6cc 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"/>
@@ -86,7 +87,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 -->
-- 
2.5.0



More information about the subsurface mailing list