[PATCH 5/5] Treat Sensus CSV import specially on GUI

Miika Turkia miika.turkia at gmail.com
Thu Jan 16 12:50:16 UTC 2014


As Sensus import needs a specific XSLT and user specified parameters are
not used nor needed, tune the GUI accordingly (disable options and add
Sensus in the list of known imports).

Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
 qt-ui/divelogimportdialog.cpp | 14 ++++++++++++--
 qt-ui/divelogimportdialog.h   |  3 ++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp
index e37b9a8..52f95a7 100644
--- a/qt-ui/divelogimportdialog.cpp
+++ b/qt-ui/divelogimportdialog.cpp
@@ -8,6 +8,7 @@ const DiveLogImportDialog::CSVAppConfig DiveLogImportDialog::CSVApps[CSVAPPS] =
 		{"", },
 		{"APD Log Viewer", 1, 2, 16, 7, 18, 19, "Tab"},
 		{"XP5", 1, 2, 10, -1, -1, -1, "Tab"},
+		{"SensusCSV", 10, 11, -1, -1, -1, -1, ","},
 		{NULL,}
 };
 
@@ -19,6 +20,9 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, QWidget *parent) :
 	ui->setupUi(this);
 	fileNames = *fn;
 
+	/* Add indexes of XSLTs requiring special handling to the list */
+	specialCSV << 3;
+
 	for (int i = 0; !CSVApps[i].name.isNull(); ++i)
 		ui->knownImports->addItem(CSVApps[i].name);
 
@@ -49,7 +53,6 @@ DiveLogImportDialog::~DiveLogImportDialog()
 void DiveLogImportDialog::on_buttonBox_accepted()
 {
 	char *error = NULL;
-
 	for (int i = 0; i < fileNames.size(); ++i) {
 		parse_csv_file(fileNames[i].toUtf8().data(), ui->CSVTime->value() - 1,
 				ui->CSVDepth->value() - 1, VALUE_IF_CHECKED(CSVTemperature),
@@ -57,6 +60,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
 				VALUE_IF_CHECKED(CSVcns),
 				VALUE_IF_CHECKED(CSVstopdepth),
 				ui->CSVSeparator->currentIndex(),
+				specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
 				&error);
 		if (error != NULL) {
 			mainWindow()->showError(error);
@@ -78,6 +82,11 @@ void DiveLogImportDialog::on_buttonBox_accepted()
 		})
 void DiveLogImportDialog::on_knownImports_currentIndexChanged(int index)
 {
+	if (specialCSV.contains(index)) {
+		ui->groupBox_3->setEnabled(false);
+	} else {
+		ui->groupBox_3->setEnabled(true);
+	}
 	if (index == 0)
 		return;
 
@@ -100,5 +109,6 @@ void DiveLogImportDialog::on_knownImports_currentIndexChanged(int index)
 
 void DiveLogImportDialog::unknownImports()
 {
-	ui->knownImports->setCurrentIndex(0);
+	if (!specialCSV.contains(ui->knownImports->currentIndex()))
+		ui->knownImports->setCurrentIndex(0);
 }
diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h
index 7c37790..070a1f5 100644
--- a/qt-ui/divelogimportdialog.h
+++ b/qt-ui/divelogimportdialog.h
@@ -27,6 +27,7 @@ private:
 	bool selector;
 	QStringList fileNames;
 	Ui::DiveLogImportDialog *ui;
+	QList<int> specialCSV;
 
 	struct CSVAppConfig {
 		QString name;
@@ -39,7 +40,7 @@ private:
 		QString separator;
 	};
 
-#define CSVAPPS 4
+#define CSVAPPS 5
 	static const CSVAppConfig CSVApps[CSVAPPS];
 };
 
-- 
1.8.3.2



More information about the subsurface mailing list