diff --git a/dive.h b/dive.h
index fc9e676b7..60693f2a1 100644
--- a/dive.h
+++ b/dive.h
@@ -553,7 +553,7 @@ extern int parse_dm4_buffer(sqlite3 *handle, const char *url, const char *buf, i
extern int parse_shearwater_buffer(sqlite3 *handle, const char *url, const char *buf, int size, struct dive_table *table);
extern int parse_file(const char *filename);
-extern int parse_csv_file(const char *filename, int time, int depth, int temp, int po2f, int cnsf, int ndlf, int stopdepthf, int sepidx, const char *csvtemplate, int units);
+extern int parse_csv_file(const char *filename, int time, int depth, int temp, int po2f, int cnsf, int ndlf, int ttsf, int stopdepthf, int sepidx, const char *csvtemplate, int units);
extern int parse_manual_file(const char *filename, int separator_index, int units, int number, int date, int time, int duration, int location, int gps, int maxdepth, int meandepth, int buddy, int notes, int weight, int tags);
extern int save_dives(const char *filename);
diff --git a/file.c b/file.c
index cb2c4f22a..9d8dafebd 100644
--- a/file.c
+++ b/file.c
@@ -384,17 +384,18 @@ int parse_file(const char *filename)
#define MAXCOLDIGITS 3
#define MAXCOLS 100
-int parse_csv_file(const char *filename, int timef, int depthf, int tempf, int po2f, int cnsf, int ndlf, int stopdepthf, int sepidx, const char *csvtemplate, int unitidx)
+int parse_csv_file(const char *filename, int timef, int depthf, int tempf, int po2f, int cnsf, int ndlf, int ttsf, int stopdepthf, int sepidx, const char *csvtemplate, int unitidx)
{
struct memblock mem;
int pnr = 0;
- char *params[23];
+ char *params[25];
char timebuf[MAXCOLDIGITS];
char depthbuf[MAXCOLDIGITS];
char tempbuf[MAXCOLDIGITS];
char po2buf[MAXCOLDIGITS];
char cnsbuf[MAXCOLDIGITS];
char ndlbuf[MAXCOLDIGITS];
+ char ttsbuf[MAXCOLDIGITS];
char stopdepthbuf[MAXCOLDIGITS];
char unitbuf[MAXCOLDIGITS];
char separator_index[MAXCOLDIGITS];
@@ -412,6 +413,7 @@ int parse_csv_file(const char *filename, int timef, int depthf, int tempf, int p
snprintf(po2buf, MAXCOLDIGITS, "%d", po2f);
snprintf(cnsbuf, MAXCOLDIGITS, "%d", cnsf);
snprintf(ndlbuf, MAXCOLDIGITS, "%d", ndlf);
+ snprintf(ttsbuf, MAXCOLDIGITS, "%d", ttsf);
snprintf(stopdepthbuf, MAXCOLDIGITS, "%d", stopdepthf);
snprintf(separator_index, MAXCOLDIGITS, "%d", sepidx);
snprintf(unitbuf, MAXCOLDIGITS, "%d", unitidx);
@@ -435,6 +437,8 @@ int parse_csv_file(const char *filename, int timef, int depthf, int tempf, int p
params[pnr++] = cnsbuf;
params[pnr++] = "ndlField";
params[pnr++] = ndlbuf;
+ params[pnr++] = "ttsField";
+ params[pnr++] = ttsbuf;
params[pnr++] = "stopdepthField";
params[pnr++] = stopdepthbuf;
params[pnr++] = "date";
diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp
index 8e53a998c..98dbefd55 100644
--- a/qt-ui/divelogimportdialog.cpp
+++ b/qt-ui/divelogimportdialog.cpp
@@ -6,12 +6,12 @@
#include "ui_divelogimportdialog.h"
const DiveLogImportDialog::CSVAppConfig DiveLogImportDialog::CSVApps[CSVAPPS] = {
- // time, depth, temperature, po2, cns, ndl, stopdepth
+ // time, depth, temperature, po2, cns, ndl, tts, stopdepth
{ "", },
- { "APD Log Viewer", 1, 2, 16, 7, 18, -1, 19, "Tab" },
- { "XP5", 1, 2, 10, -1, -1, -1, -1, "Tab" },
- { "SensusCSV", 10, 11, -1, -1, -1, -1, -1, "," },
- { "Seabear CSV", 1, 2, 6, -1, -1, -1, 5, ";" },
+ { "APD Log Viewer", 1, 2, 16, 7, 18, -1, -1, 19, "Tab" },
+ { "XP5", 1, 2, 10, -1, -1, -1, -1, -1, "Tab" },
+ { "SensusCSV", 10, 11, -1, -1, -1, -1, -1, -1, "," },
+ { "Seabear CSV", 1, 2, 6, -1, -1, -1, -1, 5, ";" },
{ NULL, }
};
@@ -47,6 +47,8 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, QWidget *parent) : QDi
connect(ui->cnsCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
connect(ui->CSVndl, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
connect(ui->ndlCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
+ connect(ui->CSVtts, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
+ connect(ui->ttsCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
connect(ui->CSVstopdepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
connect(ui->stopdepthCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
@@ -70,6 +72,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
VALUE_IF_CHECKED(CSVpo2),
VALUE_IF_CHECKED(CSVcns),
VALUE_IF_CHECKED(CSVndl),
+ VALUE_IF_CHECKED(CSVtts),
VALUE_IF_CHECKED(CSVstopdepth),
ui->CSVSeparator->currentIndex(),
specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
@@ -120,6 +123,7 @@ void DiveLogImportDialog::on_knownImports_currentIndexChanged(int index)
SET_VALUE_AND_CHECKBOX(CSVpo2, po2CheckBox, CSVApps[index].po2);
SET_VALUE_AND_CHECKBOX(CSVcns, cnsCheckBox, CSVApps[index].cns);
SET_VALUE_AND_CHECKBOX(CSVndl, ndlCheckBox, CSVApps[index].ndl);
+ SET_VALUE_AND_CHECKBOX(CSVtts, ttsCheckBox, CSVApps[index].tts);
SET_VALUE_AND_CHECKBOX(CSVstopdepth, stopdepthCheckBox, CSVApps[index].stopdepth);
ui->CSVSeparator->blockSignals(true);
int separator_index = ui->CSVSeparator->findText(CSVApps[index].separator);
diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h
index ff81fe6da..637d85a37 100644
--- a/qt-ui/divelogimportdialog.h
+++ b/qt-ui/divelogimportdialog.h
@@ -37,6 +37,7 @@ private:
int po2;
int cns;
int ndl;
+ int tts;
int stopdepth;
QString separator;
};
diff --git a/qt-ui/divelogimportdialog.ui b/qt-ui/divelogimportdialog.ui
index 0fbb96b99..987768da8 100644
--- a/qt-ui/divelogimportdialog.ui
+++ b/qt-ui/divelogimportdialog.ui
@@ -159,6 +159,26 @@
+ -
+
+
+ TTS
+
+
+
+ -
+
+
+ false
+
+
+ 1
+
+
+ 1
+
+
+
-
@@ -169,6 +189,8 @@
ndlCheckBox
CSVndl
+ ttsCheckBox
+ CSVtts
label
label_2
CSVTime
diff --git a/xslt/csv2xml.xslt b/xslt/csv2xml.xslt
index 034eb9319..74770f4ad 100644
--- a/xslt/csv2xml.xslt
+++ b/xslt/csv2xml.xslt
@@ -9,6 +9,7 @@
+
@@ -187,6 +188,15 @@
+
+
+
+
+
+
+
+
+