diff options
Diffstat (limited to 'smtk-import/smrtk2ssrfc_window.cpp')
-rw-r--r-- | smtk-import/smrtk2ssrfc_window.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/smtk-import/smrtk2ssrfc_window.cpp b/smtk-import/smrtk2ssrfc_window.cpp new file mode 100644 index 000000000..cb332cd81 --- /dev/null +++ b/smtk-import/smrtk2ssrfc_window.cpp @@ -0,0 +1,104 @@ +#include "smrtk2ssrfc_window.h" +#include "ui_smrtk2ssrfc_window.h" +#include "filtermodels.h" +#include "dive.h" +#include "divelist.h" +#include <QFileDialog> +#include <QFileInfo> +#include <QSettings> +#include <QDebug> + +QStringList inputFiles; +QString outputFile; + +Smrtk2ssrfcWindow::Smrtk2ssrfcWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::Smrtk2ssrfcWindow) +{ + ui->setupUi(this); + ui->plainTextEdit->setDisabled(true); + ui->progressBar->setDisabled(true); + ui->statusBar->adjustSize(); +} + +Smrtk2ssrfcWindow::~Smrtk2ssrfcWindow() +{ + delete ui; +} + +QString Smrtk2ssrfcWindow::lastUsedDir() +{ + QSettings settings; + QString lastDir = QDir::homePath(); + + settings.beginGroup("FileDialog"); + if (settings.contains("LastDir")) + if (QDir::setCurrent(settings.value("LastDir").toString())) + lastDir = settings.value("LastDir").toString(); + return lastDir; +} + +void Smrtk2ssrfcWindow::updateLastUsedDir(const QString &dir) +{ + QSettings s; + s.beginGroup("FileDialog"); + s.setValue("LastDir", dir); +} + +void Smrtk2ssrfcWindow::on_inputFilesButton_clicked() +{ + inputFiles = QFileDialog::getOpenFileNames(this, tr("Open SmartTrak files"), lastUsedDir(), + tr("SmartTrak files (*.slg *.SLG);;" + "All files (*)")); + if (inputFiles.isEmpty()) + return; + updateLastUsedDir(QFileInfo(inputFiles[0]).dir().path()); + ui->inputLine->setText(inputFiles.join(" ")); + ui->progressBar->setEnabled(true); +} + +void Smrtk2ssrfcWindow::on_outputFileButton_clicked() +{ + outputFile = QFileDialog::getSaveFileName(this, tr("Open Subsurface files"), lastUsedDir(), + tr("Subsurface files (*.ssrf *SSRF *.xml *.XML);;" + "All files (*)")); + if (outputFile.isEmpty()) + return; + updateLastUsedDir(QFileInfo(outputFile).dir().path()); + ui->outputLine->setText(outputFile); +} + +void Smrtk2ssrfcWindow::on_importButton_clicked() +{ + if (inputFiles.isEmpty()) + return; + + QByteArray fileNamePtr; + + ui->plainTextEdit->setDisabled(false); + ui->progressBar->setRange(0, inputFiles.size()); + for (int i = 0; i < inputFiles.size(); ++i) { + ui->progressBar->setValue(i); + fileNamePtr = QFile::encodeName(inputFiles.at(i)); + smartrak_import(fileNamePtr.data(), &dive_table); + ui->plainTextEdit->appendPlainText(QString(get_error_string())); + } + ui->progressBar->setValue(inputFiles.size()); + save_dives_logic(outputFile.toUtf8().data(), false); + ui->progressBar->setDisabled(true); +} + +void Smrtk2ssrfcWindow::on_exitButton_clicked() +{ + this->close(); +} + +void Smrtk2ssrfcWindow::on_outputLine_textEdited() +{ + outputFile = ui->outputLine->text(); +} + +void Smrtk2ssrfcWindow::on_inputLine_textEdited() +{ + inputFiles = ui->inputLine->text().split(" "); +} |