2017-04-27 18:13:48 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2015-11-08 17:50:05 +00:00
|
|
|
#include "smrtk2ssrfc_window.h"
|
|
|
|
#include "ui_smrtk2ssrfc_window.h"
|
2016-06-15 18:59:34 +00:00
|
|
|
#include "qt-models/filtermodels.h"
|
|
|
|
#include "core/dive.h"
|
|
|
|
#include "core/divelist.h"
|
2015-11-08 17:50:05 +00:00
|
|
|
#include <QFileDialog>
|
|
|
|
#include <QFileInfo>
|
|
|
|
#include <QSettings>
|
|
|
|
#include <QDebug>
|
|
|
|
|
|
|
|
QStringList inputFiles;
|
|
|
|
QString outputFile;
|
2018-02-11 21:41:06 +00:00
|
|
|
QString error_buf;
|
|
|
|
|
|
|
|
extern "C" void getErrorFromC(char *buf)
|
|
|
|
{
|
|
|
|
QString error(buf);
|
|
|
|
free(buf);
|
|
|
|
error_buf = error;
|
|
|
|
}
|
2015-11-08 17:50:05 +00:00
|
|
|
|
|
|
|
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"))
|
2017-12-04 07:49:28 +00:00
|
|
|
if (QDir(settings.value("LastDir").toString()).exists())
|
2015-11-08 17:50:05 +00:00
|
|
|
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(),
|
2017-10-27 12:52:27 +00:00
|
|
|
tr("SmartTrak files") + " (*.slg);;" + tr("All files") + " (*.*)");
|
2015-11-08 17:50:05 +00:00
|
|
|
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(),
|
2017-10-27 12:52:27 +00:00
|
|
|
tr("Subsurface files") + " (*.ssrf *.xml);;" + tr("All files") + " (*.*)");
|
2015-11-08 17:50:05 +00:00
|
|
|
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());
|
2018-02-11 21:41:06 +00:00
|
|
|
set_error_cb(&getErrorFromC);
|
2015-11-08 17:50:05 +00:00
|
|
|
for (int i = 0; i < inputFiles.size(); ++i) {
|
|
|
|
ui->progressBar->setValue(i);
|
|
|
|
fileNamePtr = QFile::encodeName(inputFiles.at(i));
|
|
|
|
smartrak_import(fileNamePtr.data(), &dive_table);
|
2018-02-11 21:41:06 +00:00
|
|
|
ui->plainTextEdit->appendPlainText(error_buf);
|
2015-11-08 17:50:05 +00:00
|
|
|
}
|
|
|
|
ui->progressBar->setValue(inputFiles.size());
|
2018-02-25 12:51:41 +00:00
|
|
|
save_dives_logic(qPrintable(outputFile), false);
|
2015-11-08 17:50:05 +00:00
|
|
|
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(" ");
|
|
|
|
}
|