diff options
-rw-r--r-- | qt-ui/divelogimportdialog.cpp | 60 | ||||
-rw-r--r-- | qt-ui/divelogimportdialog.h | 8 | ||||
-rw-r--r-- | qt-ui/divelogimportdialog.ui | 111 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 22 |
4 files changed, 46 insertions, 155 deletions
diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index 129dbd9d0..e5814795d 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -11,12 +11,13 @@ const DiveLogImportDialog::CSVAppConfig DiveLogImportDialog::CSVApps[CSVAPPS] = {NULL,} }; -DiveLogImportDialog::DiveLogImportDialog(QWidget *parent) : +DiveLogImportDialog::DiveLogImportDialog(QStringList *fn, QWidget *parent) : QDialog(parent), selector(true), ui(new Ui::DiveLogImportDialog) { ui->setupUi(this); + fileNames = *fn; for (int i = 0; !CSVApps[i].name.isNull(); ++i) ui->knownImports->addItem(CSVApps[i].name); @@ -24,7 +25,6 @@ DiveLogImportDialog::DiveLogImportDialog(QWidget *parent) : ui->CSVSeparator->addItem("Tab"); ui->CSVSeparator->addItem(","); ui->knownImports->setCurrentIndex(1); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); connect(ui->CSVDepth, SIGNAL(valueChanged(int)), this, SLOT(unknownImports(int))); connect(ui->CSVTime, SIGNAL(valueChanged(int)), this, SLOT(unknownImports(int))); @@ -48,30 +48,8 @@ void DiveLogImportDialog::on_buttonBox_accepted() { char *error = NULL; - if (ui->tabWidget->currentIndex() == 0) { - QStringList fileNames = ui->DiveLogFile->text().split(";"); - - /* - if (ui->ImportAdvanced->isChecked()) { - for (int i = 0; i < fileNames.size(); ++i) { - parse_xml_file_units(fileNames.at(i).toUtf8().data(), - ui->XMLImportFormat->currentIndex(), ui->XMLImportUnits->currentIndex(), - &error); - } - if (error != NULL) { - - mainWindow()->showError(error); - free(error); - error = NULL; - } - } else { - */ - mainWindow()->importFiles(fileNames); - return; - //} - - } else { - parse_csv_file(ui->CSVFile->text().toUtf8().data(), ui->CSVTime->value() - 1, + 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), VALUE_IF_CHECKED(CSVpo2), VALUE_IF_CHECKED(CSVcns), @@ -89,13 +67,6 @@ void DiveLogImportDialog::on_buttonBox_accepted() mainWindow()->refreshDisplay(); } -void DiveLogImportDialog::on_CSVFileSelector_clicked() -{ - QString filename = QFileDialog::getOpenFileName(this, tr("Open CSV Log File"), ".", tr("CSV Files (*.csv);;All Files(*)")); - ui->CSVFile->setText(filename); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!filename.isEmpty()); -} - #define SET_VALUE_AND_CHECKBOX(CSV, BOX, VAL) ({\ ui->CSV->blockSignals(true);\ ui->CSV->setValue(VAL);\ @@ -134,26 +105,3 @@ void DiveLogImportDialog::unknownImports() { ui->knownImports->setCurrentIndex(0); } - -void DiveLogImportDialog::on_CSVFile_textEdited() -{ - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!ui->CSVFile->text().isEmpty()); -} - -void DiveLogImportDialog::on_DiveLogFileSelector_clicked() -{ - QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open Dive Log File"), ".", tr("XML Files (*.xml);;UDDF/UDCF Files(*.uddf *.udcf);;All Files(*)")); - ui->DiveLogFile->setText(fileNames.join(";")); - if (fileNames.size()) - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); - else - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); -} - -void DiveLogImportDialog::on_DiveLogFile_editingFinished() -{ - if (ui->DiveLogFile->text().size()) - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); - else - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); -} diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h index 9ecf32410..d8cedab6a 100644 --- a/qt-ui/divelogimportdialog.h +++ b/qt-ui/divelogimportdialog.h @@ -15,24 +15,20 @@ class DiveLogImportDialog : public QDialog Q_OBJECT public: - explicit DiveLogImportDialog(QWidget *parent = 0); + explicit DiveLogImportDialog(QStringList *fn, QWidget *parent = 0); ~DiveLogImportDialog(); private slots: void on_buttonBox_accepted(); - void on_CSVFileSelector_clicked(); void on_knownImports_currentIndexChanged(int index); - void on_CSVFile_textEdited(); void unknownImports(int); void unknownImports(bool); - void on_DiveLogFileSelector_clicked(); - void on_DiveLogFile_editingFinished(); - private: void unknownImports(); bool selector; + QStringList fileNames; Ui::DiveLogImportDialog *ui; struct CSVAppConfig { diff --git a/qt-ui/divelogimportdialog.ui b/qt-ui/divelogimportdialog.ui index ac2315636..36f62de54 100644 --- a/qt-ui/divelogimportdialog.ui +++ b/qt-ui/divelogimportdialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>515</width> - <height>440</height> + <height>370</height> </rect> </property> <property name="windowTitle"> @@ -33,7 +33,7 @@ <enum>QFrame::NoFrame</enum> </property> <property name="text"> - <string>Import Dive Log File</string> + <string>Import CSV Dive Log Files</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> @@ -45,82 +45,15 @@ <property name="currentIndex"> <number>0</number> </property> - <widget class="QWidget" name="tab_2"> - <attribute name="title"> - <string>DiveLog</string> - </attribute> - <widget class="QGroupBox" name="groupBox_8"> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>441</width> - <height>65</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Import File</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_8"> - <item> - <widget class="QLineEdit" name="DiveLogFile"/> - </item> - <item> - <widget class="QToolButton" name="DiveLogFileSelector"> - <property name="text"> - <string>...</string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> <widget class="QWidget" name="tab"> <attribute name="title"> - <string>CSV</string> + <string>CSV options</string> </attribute> - <widget class="QGroupBox" name="groupBox"> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>441</width> - <height>65</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Import File</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLineEdit" name="CSVFile"/> - </item> - <item> - <widget class="QToolButton" name="CSVFileSelector"> - <property name="text"> - <string>...</string> - </property> - </widget> - </item> - </layout> - </widget> <widget class="QGroupBox" name="groupBox_2"> <property name="geometry"> <rect> <x>210</x> - <y>88</y> + <y>10</y> <width>281</width> <height>65</height> </rect> @@ -138,7 +71,7 @@ <property name="geometry"> <rect> <x>210</x> - <y>159</y> + <y>80</y> <width>281</width> <height>65</height> </rect> @@ -165,8 +98,8 @@ <widget class="QGroupBox" name="groupBox_3"> <property name="geometry"> <rect> - <x>16</x> - <y>88</y> + <x>10</x> + <y>10</y> <width>185</width> <height>246</height> </rect> @@ -183,14 +116,14 @@ <layout class="QGridLayout" name="gridLayout"> <item row="3" column="1"> <widget class="QSpinBox" name="CSVpo2"> - <property name="minimum"> - <number>1</number> - </property> <property name="enabled"> <bool>false</bool> </property> + <property name="minimum"> + <number>1</number> + </property> <property name="value"> - <number>0</number> + <number>1</number> </property> </widget> </item> @@ -206,12 +139,12 @@ </item> <item row="2" column="1"> <widget class="QSpinBox" name="CSVTemperature"> - <property name="minimum"> - <number>1</number> - </property> <property name="enabled"> <bool>false</bool> </property> + <property name="minimum"> + <number>1</number> + </property> </widget> </item> <item row="1" column="0"> @@ -223,14 +156,14 @@ </item> <item row="5" column="1"> <widget class="QSpinBox" name="CSVstopdepth"> - <property name="minimum"> - <number>1</number> - </property> <property name="enabled"> <bool>false</bool> </property> + <property name="minimum"> + <number>1</number> + </property> <property name="value"> - <number>0</number> + <number>1</number> </property> </widget> </item> @@ -274,14 +207,14 @@ </item> <item row="4" column="1"> <widget class="QSpinBox" name="CSVcns"> - <property name="minimum"> - <number>1</number> - </property> <property name="enabled"> <bool>false</bool> </property> + <property name="minimum"> + <number>1</number> + </property> <property name="value"> - <number>0</number> + <number>1</number> </property> </widget> </item> diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index c6e05faa4..cf97ca1f0 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -857,10 +857,24 @@ void MainWindow::loadFiles(const QStringList fileNames) void MainWindow::on_actionImportDiveLog_triggered() { - DiveLogImportDialog *diveLogImport = new DiveLogImportDialog(); - diveLogImport->show(); - process_dives(TRUE, FALSE); - refreshDisplay(); + QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open Dive Log File"), lastUsedDir(), tr("Dive Log Files (*.xml *.uddf *.udcf *.csv *.jlb *.dld *.sde *.db);;XML Files (*.xml);;UDDF/UDCF Files(*.uddf *.udcf);;JDiveLog Files(*.jlb);;Suunto Files(*.sde *.db);;CSV Files(*.csv);;All Files(*)")); + + if (fileNames.isEmpty()) + return; + updateLastUsedDir(QFileInfo(fileNames[0]).dir().path()); + + QStringList logFiles = fileNames.filter( QRegExp("^.*\\.(?!csv)", Qt::CaseInsensitive) ) ; + QStringList csvFiles = fileNames.filter(".csv", Qt::CaseInsensitive); + if (logFiles.size()) { + importFiles(logFiles); + } + + if (csvFiles.size()) { + DiveLogImportDialog *diveLogImport = new DiveLogImportDialog(&csvFiles); + diveLogImport->show(); + process_dives(TRUE, FALSE); + refreshDisplay(); + } } void MainWindow::editCurrentDive() |