This increments the column number automatically when doing manual CSV
import. Counter is decreased when un-checking checkboxes, but that is
all the logic there currently is.

Signed-off-by: Miika Turkia <[email protected]>
---
 qt-ui/divelogimportdialog.cpp | 129 +++++++++++++++++++++++++++++++++++++++++-
 qt-ui/divelogimportdialog.h   |  21 +++++++
 2 files changed, 149 insertions(+), 1 deletion(-)

diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp
index da62e32..b91cc67 100644
--- a/qt-ui/divelogimportdialog.cpp
+++ b/qt-ui/divelogimportdialog.cpp
@@ -21,6 +21,7 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, 
QWidget *parent) : QDi
 {
        ui->setupUi(this);
        fileNames = *fn;
+       column = 0;
 
        /* Add indexes of XSLTs requiring special handling to the list */
        specialCSV << 3;
@@ -53,6 +54,28 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, 
QWidget *parent) : QDi
        connect(ui->stopdepthCheckBox, SIGNAL(clicked(bool)), this, 
SLOT(unknownImports()));
        connect(ui->CSVpressure, SIGNAL(valueChanged(int)), this, 
SLOT(unknownImports()));
        connect(ui->pressureCheckBox, SIGNAL(clicked(bool)), this, 
SLOT(unknownImports()));
+
+       /* manually import CSV file */
+       connect(ui->DiveNumberCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualDiveNumber()));
+       connect(ui->DateCheck, SIGNAL(clicked(bool)), this, SLOT(manualDate()));
+       connect(ui->TimeCheck, SIGNAL(clicked(bool)), this, SLOT(manualTime()));
+       connect(ui->LocationCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualLocation()));
+       connect(ui->GpsCheck, SIGNAL(clicked(bool)), this, SLOT(manualGps()));
+       connect(ui->MaxDepthCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualMaxDepth()));
+       connect(ui->MeanDepthCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualMeanDepth()));
+       connect(ui->BuddyCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualBuddy()));
+       connect(ui->NotesCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualNotes()));
+       connect(ui->TagsCheck, SIGNAL(clicked(bool)), this, SLOT(manualTags()));
+       connect(ui->WeightCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualWeight()));
+       connect(ui->DurationCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualDuration()));
+       connect(ui->CylinderSizeCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualCylinderSize()));
+       connect(ui->StartPressureCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualStartPressure()));
+       connect(ui->EndPressureCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualEndPressure()));
+       connect(ui->O2Check, SIGNAL(clicked(bool)), this, SLOT(manualO2()));
+       connect(ui->HeCheck, SIGNAL(clicked(bool)), this, SLOT(manualHe()));
+       connect(ui->AirTempCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualAirTemp()));
+       connect(ui->WaterTempCheck, SIGNAL(clicked(bool)), this, 
SLOT(manualWaterTemp()));
+
        QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), 
this);
        connect(close, SIGNAL(activated()), this, SLOT(close()));
        QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), 
this);
@@ -107,7 +130,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
                        parse_manual_file(fileNames[i].toUtf8().data(),
                                          ui->ManualSeparator->currentIndex(),
                                          ui->Units->currentIndex(),
-                                          ui->DateFormat->currentIndex(),
+                                         ui->DateFormat->currentIndex(),
                                          VALUE_IF_CHECKED(DiveNumber),
                                          VALUE_IF_CHECKED(Date), 
VALUE_IF_CHECKED(Time),
                                          VALUE_IF_CHECKED(Duration), 
VALUE_IF_CHECKED(Location),
@@ -168,3 +191,107 @@ void DiveLogImportDialog::unknownImports()
        if (!specialCSV.contains(ui->knownImports->currentIndex()))
                ui->knownImports->setCurrentIndex(0);
 }
+
+#define SET_COLUMN(CHECK, VALUE) ({\
+       if (ui->CHECK->isChecked()) {\
+               ui->VALUE->setEnabled(true);\
+               ui->VALUE->setValue(++column);\
+       } else {\
+               ui->VALUE->setEnabled(false);\
+               --column;}\
+       })
+
+void DiveLogImportDialog::manualDiveNumber()
+{
+       SET_COLUMN(DiveNumberCheck, DiveNumber);
+}
+
+void DiveLogImportDialog::manualDate()
+{
+       SET_COLUMN(DateCheck, Date);
+}
+
+void DiveLogImportDialog::manualTime()
+{
+       SET_COLUMN(TimeCheck, Time);
+}
+
+void DiveLogImportDialog::manualLocation()
+{
+       SET_COLUMN(LocationCheck, Location);
+}
+
+void DiveLogImportDialog::manualGps()
+{
+       SET_COLUMN(GpsCheck, Gps);
+}
+
+void DiveLogImportDialog::manualMaxDepth()
+{
+       SET_COLUMN(MaxDepthCheck, MaxDepth);
+}
+
+void DiveLogImportDialog::manualMeanDepth()
+{
+       SET_COLUMN(MeanDepthCheck, MeanDepth);
+}
+
+void DiveLogImportDialog::manualBuddy()
+{
+       SET_COLUMN(BuddyCheck, Buddy);
+}
+
+void DiveLogImportDialog::manualNotes()
+{
+       SET_COLUMN(NotesCheck, Notes);
+}
+
+void DiveLogImportDialog::manualTags()
+{
+       SET_COLUMN(TagsCheck, Tags);
+}
+
+void DiveLogImportDialog::manualWeight()
+{
+       SET_COLUMN(WeightCheck, Weight);
+}
+
+void DiveLogImportDialog::manualDuration()
+{
+       SET_COLUMN(DurationCheck, Duration);
+}
+
+void DiveLogImportDialog::manualCylinderSize()
+{
+       SET_COLUMN(CylinderSizeCheck, CylinderSize);
+}
+
+void DiveLogImportDialog::manualStartPressure()
+{
+       SET_COLUMN(StartPressureCheck, StartPressure);
+}
+
+void DiveLogImportDialog::manualEndPressure()
+{
+       SET_COLUMN(EndPressureCheck, EndPressure);
+}
+
+void DiveLogImportDialog::manualO2()
+{
+       SET_COLUMN(O2Check, O2);
+}
+
+void DiveLogImportDialog::manualHe()
+{
+       SET_COLUMN(HeCheck, He);
+}
+
+void DiveLogImportDialog::manualAirTemp()
+{
+       SET_COLUMN(AirTempCheck, AirTemp);
+}
+
+void DiveLogImportDialog::manualWaterTemp()
+{
+       SET_COLUMN(WaterTempCheck, WaterTemp);
+}
diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h
index 147216a..3faceec 100644
--- a/qt-ui/divelogimportdialog.h
+++ b/qt-ui/divelogimportdialog.h
@@ -23,11 +23,32 @@ slots:
        void on_knownImports_currentIndexChanged(int index);
        void unknownImports();
 
+       void manualDiveNumber();
+       void manualDate();
+       void manualTime();
+       void manualLocation();
+       void manualGps();
+       void manualMaxDepth();
+       void manualMeanDepth();
+       void manualBuddy();
+       void manualNotes();
+       void manualTags();
+       void manualWeight();
+       void manualDuration();
+       void manualCylinderSize();
+       void manualStartPressure();
+       void manualEndPressure();
+       void manualO2();
+       void manualHe();
+       void manualAirTemp();
+       void manualWaterTemp();
+
 private:
        bool selector;
        QStringList fileNames;
        Ui::DiveLogImportDialog *ui;
        QList<int> specialCSV;
+       int column;
 
        struct CSVAppConfig {
                QString name;
-- 
1.9.1

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to