mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 20:36:15 +00:00
C++ code to call parsing functions for manual CSV
This code sets up the C++ part for importing manually kept CSV log. That includes setting up the field separator selection and calling C-code for parsing the log file. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d010b6a216
commit
47ad50d6de
1 changed files with 39 additions and 14 deletions
|
@ -30,6 +30,10 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, QWidget *parent) :
|
||||||
ui->CSVSeparator->addItem(",");
|
ui->CSVSeparator->addItem(",");
|
||||||
ui->CSVSeparator->addItem(";");
|
ui->CSVSeparator->addItem(";");
|
||||||
ui->knownImports->setCurrentIndex(1);
|
ui->knownImports->setCurrentIndex(1);
|
||||||
|
ui->ManualSeparator->addItem("Tab");
|
||||||
|
ui->ManualSeparator->addItem(",");
|
||||||
|
ui->ManualSeparator->addItem(";");
|
||||||
|
ui->knownImports->setCurrentIndex(1);
|
||||||
|
|
||||||
connect(ui->CSVDepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
connect(ui->CSVDepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
||||||
connect(ui->CSVTime, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
connect(ui->CSVTime, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
||||||
|
@ -41,7 +45,6 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, QWidget *parent) :
|
||||||
connect(ui->cnsCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
|
connect(ui->cnsCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
|
||||||
connect(ui->CSVstopdepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
connect(ui->CSVstopdepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports()));
|
||||||
connect(ui->stopdepthCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
|
connect(ui->stopdepthCheckBox, SIGNAL(clicked(bool)), this, SLOT(unknownImports()));
|
||||||
connect(ui->CSVSeparator, SIGNAL(currentIndexChanged(int)), this, SLOT(unknownImports()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DiveLogImportDialog::~DiveLogImportDialog()
|
DiveLogImportDialog::~DiveLogImportDialog()
|
||||||
|
@ -53,19 +56,41 @@ DiveLogImportDialog::~DiveLogImportDialog()
|
||||||
void DiveLogImportDialog::on_buttonBox_accepted()
|
void DiveLogImportDialog::on_buttonBox_accepted()
|
||||||
{
|
{
|
||||||
char *error = NULL;
|
char *error = NULL;
|
||||||
for (int i = 0; i < fileNames.size(); ++i) {
|
|
||||||
parse_csv_file(fileNames[i].toUtf8().data(), ui->CSVTime->value() - 1,
|
if (ui->tabWidget->currentIndex() == 0) {
|
||||||
ui->CSVDepth->value() - 1, VALUE_IF_CHECKED(CSVTemperature),
|
for (int i = 0; i < fileNames.size(); ++i) {
|
||||||
VALUE_IF_CHECKED(CSVpo2),
|
parse_csv_file(fileNames[i].toUtf8().data(), ui->CSVTime->value() - 1,
|
||||||
VALUE_IF_CHECKED(CSVcns),
|
ui->CSVDepth->value() - 1, VALUE_IF_CHECKED(CSVTemperature),
|
||||||
VALUE_IF_CHECKED(CSVstopdepth),
|
VALUE_IF_CHECKED(CSVpo2),
|
||||||
ui->CSVSeparator->currentIndex(),
|
VALUE_IF_CHECKED(CSVcns),
|
||||||
specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
|
VALUE_IF_CHECKED(CSVstopdepth),
|
||||||
&error);
|
ui->CSVSeparator->currentIndex(),
|
||||||
if (error != NULL) {
|
specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
|
||||||
mainWindow()->showError(error);
|
&error);
|
||||||
free(error);
|
if (error != NULL) {
|
||||||
error = NULL;
|
mainWindow()->showError(error);
|
||||||
|
free(error);
|
||||||
|
error = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < fileNames.size(); ++i) {
|
||||||
|
parse_manual_file(fileNames[i].toUtf8().data(),
|
||||||
|
ui->ManualSeparator->currentIndex(),
|
||||||
|
ui->Units->currentIndex(),
|
||||||
|
VALUE_IF_CHECKED(DiveNumber),
|
||||||
|
VALUE_IF_CHECKED(Date), VALUE_IF_CHECKED(Time),
|
||||||
|
VALUE_IF_CHECKED(Duration), VALUE_IF_CHECKED(Location),
|
||||||
|
VALUE_IF_CHECKED(Gps), VALUE_IF_CHECKED(MaxDepth),
|
||||||
|
VALUE_IF_CHECKED(MeanDepth), VALUE_IF_CHECKED(Buddy),
|
||||||
|
VALUE_IF_CHECKED(Notes), VALUE_IF_CHECKED(Weight),
|
||||||
|
VALUE_IF_CHECKED(Tags),
|
||||||
|
&error);
|
||||||
|
if (error != NULL) {
|
||||||
|
mainWindow()->showError(error);
|
||||||
|
free(error);
|
||||||
|
error = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
process_dives(true, false);
|
process_dives(true, false);
|
||||||
|
|
Loading…
Add table
Reference in a new issue