mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
dive download: pass current filename to dialog
Instead of accessing a global variable, pass the filename from the MainWindow to the dialog. This is supposed to cut down on the global variable mess. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
981352646c
commit
64419f2b19
5 changed files with 18 additions and 18 deletions
|
@ -294,7 +294,7 @@ void OstcFirmwareCheck::parseOstcFwVersion(QNetworkReply *reply)
|
||||||
disconnect(&manager, &QNetworkAccessManager::finished, this, &OstcFirmwareCheck::parseOstcFwVersion);
|
disconnect(&manager, &QNetworkAccessManager::finished, this, &OstcFirmwareCheck::parseOstcFwVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data)
|
void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data, const QString &filename)
|
||||||
{
|
{
|
||||||
devData = *data;
|
devData = *data;
|
||||||
parent = _parent;
|
parent = _parent;
|
||||||
|
@ -339,21 +339,20 @@ void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data)
|
||||||
response.setWindowModality(Qt::WindowModal);
|
response.setWindowModality(Qt::WindowModal);
|
||||||
int ret = response.exec();
|
int ret = response.exec();
|
||||||
if (ret == QMessageBox::Accepted)
|
if (ret == QMessageBox::Accepted)
|
||||||
upgradeFirmware();
|
upgradeFirmware(filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OstcFirmwareCheck::upgradeFirmware()
|
void OstcFirmwareCheck::upgradeFirmware(const QString &filename)
|
||||||
{
|
{
|
||||||
// start download of latestFirmwareHexFile
|
// start download of latestFirmwareHexFile
|
||||||
QString saveFileName = latestFirmwareHexFile;
|
QString saveFileName = latestFirmwareHexFile;
|
||||||
saveFileName.replace("http://www.heinrichsweikamp.net/autofirmware/", "");
|
saveFileName.replace("http://www.heinrichsweikamp.net/autofirmware/", "");
|
||||||
saveFileName.replace("firmware", latestFirmwareAvailable);
|
saveFileName.replace("firmware", latestFirmwareAvailable);
|
||||||
QString filename = existing_filename ?: prefs.default_filename;
|
|
||||||
QFileInfo fi(filename);
|
QFileInfo fi(filename);
|
||||||
filename = fi.absolutePath().append(QDir::separator()).append(saveFileName);
|
saveFileName = fi.absolutePath().append(QDir::separator()).append(saveFileName);
|
||||||
storeFirmware = QFileDialog::getSaveFileName(parent, tr("Save the downloaded firmware as"),
|
storeFirmware = QFileDialog::getSaveFileName(parent, tr("Save the downloaded firmware as"),
|
||||||
filename, tr("Firmware files") + " (*.hex *.bin)");
|
saveFileName, tr("Firmware files") + " (*.hex *.bin)");
|
||||||
if (storeFirmware.isEmpty())
|
if (storeFirmware.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -123,14 +123,14 @@ class OstcFirmwareCheck : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit OstcFirmwareCheck(const QString &product);
|
explicit OstcFirmwareCheck(const QString &product);
|
||||||
void checkLatest(QWidget *parent, device_data_t *data);
|
void checkLatest(QWidget *parent, device_data_t *data, const QString &filename);
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
void parseOstcFwVersion(QNetworkReply *reply);
|
void parseOstcFwVersion(QNetworkReply *reply);
|
||||||
void saveOstcFirmware(QNetworkReply *reply);
|
void saveOstcFirmware(QNetworkReply *reply);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void upgradeFirmware();
|
void upgradeFirmware(const QString &filename);
|
||||||
device_data_t devData;
|
device_data_t devData;
|
||||||
QString latestFirmwareAvailable;
|
QString latestFirmwareAvailable;
|
||||||
QString latestFirmwareHexFile;
|
QString latestFirmwareHexFile;
|
||||||
|
|
|
@ -26,7 +26,8 @@ static bool is_vendor_searchable(QString vendor)
|
||||||
return vendor == "Uemis" || vendor == "Garmin";
|
return vendor == "Uemis" || vendor == "Garmin";
|
||||||
}
|
}
|
||||||
|
|
||||||
DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent) : QDialog(parent, QFlag(0)),
|
DownloadFromDCWidget::DownloadFromDCWidget(const QString &filename, QWidget *parent) : QDialog(parent, QFlag(0)),
|
||||||
|
filename(filename),
|
||||||
downloading(false),
|
downloading(false),
|
||||||
previousLast(0),
|
previousLast(0),
|
||||||
timer(new QTimer(this)),
|
timer(new QTimer(this)),
|
||||||
|
@ -461,11 +462,10 @@ void DownloadFromDCWidget::checkLogFile(int state)
|
||||||
|
|
||||||
void DownloadFromDCWidget::pickLogFile()
|
void DownloadFromDCWidget::pickLogFile()
|
||||||
{
|
{
|
||||||
QString filename = existing_filename ?: prefs.default_filename;
|
|
||||||
QFileInfo fi(filename);
|
QFileInfo fi(filename);
|
||||||
filename = fi.absolutePath().append(QDir::separator()).append("subsurface.log");
|
QString logfilename = fi.absolutePath().append(QDir::separator()).append("subsurface.log");
|
||||||
QString logFile = QFileDialog::getSaveFileName(this, tr("Choose file for dive computer download logfile"),
|
QString logFile = QFileDialog::getSaveFileName(this, tr("Choose file for dive computer download logfile"),
|
||||||
filename, tr("Log files") + " (*.log)");
|
logfilename, tr("Log files") + " (*.log)");
|
||||||
if (!logFile.isEmpty()) {
|
if (!logFile.isEmpty()) {
|
||||||
free(logfile_name);
|
free(logfile_name);
|
||||||
logfile_name = copy_qstring(logFile);
|
logfile_name = copy_qstring(logFile);
|
||||||
|
@ -487,11 +487,10 @@ void DownloadFromDCWidget::checkDumpFile(int state)
|
||||||
|
|
||||||
void DownloadFromDCWidget::pickDumpFile()
|
void DownloadFromDCWidget::pickDumpFile()
|
||||||
{
|
{
|
||||||
QString filename = existing_filename ?: prefs.default_filename;
|
|
||||||
QFileInfo fi(filename);
|
QFileInfo fi(filename);
|
||||||
filename = fi.absolutePath().append(QDir::separator()).append("subsurface.bin");
|
QString dumpfilename = fi.absolutePath().append(QDir::separator()).append("subsurface.bin");
|
||||||
QString dumpFile = QFileDialog::getSaveFileName(this, tr("Choose file for dive computer binary dump file"),
|
QString dumpFile = QFileDialog::getSaveFileName(this, tr("Choose file for dive computer binary dump file"),
|
||||||
filename, tr("Dump files") + " (*.bin)");
|
dumpfilename, tr("Dump files") + " (*.bin)");
|
||||||
if (!dumpFile.isEmpty()) {
|
if (!dumpFile.isEmpty()) {
|
||||||
free(dumpfile_name);
|
free(dumpfile_name);
|
||||||
dumpfile_name = copy_qstring(dumpFile);
|
dumpfile_name = copy_qstring(dumpFile);
|
||||||
|
@ -547,7 +546,7 @@ void DownloadFromDCWidget::on_ok_clicked()
|
||||||
diveImportedModel->recordDives(flags);
|
diveImportedModel->recordDives(flags);
|
||||||
|
|
||||||
if (ostcFirmwareCheck && currentState == DONE)
|
if (ostcFirmwareCheck && currentState == DONE)
|
||||||
ostcFirmwareCheck->checkLatest(this, diveImportedModel->thread.data()->internalData());
|
ostcFirmwareCheck->checkLatest(this, diveImportedModel->thread.data()->internalData(), filename);
|
||||||
accept();
|
accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ class BTDiscovery;
|
||||||
class DownloadFromDCWidget : public QDialog {
|
class DownloadFromDCWidget : public QDialog {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit DownloadFromDCWidget(QWidget *parent = 0);
|
explicit DownloadFromDCWidget(const QString &filename, QWidget *parent = 0);
|
||||||
void reject();
|
void reject();
|
||||||
|
|
||||||
enum states {
|
enum states {
|
||||||
|
@ -72,6 +72,7 @@ private:
|
||||||
QStringListModel vendorModel;
|
QStringListModel vendorModel;
|
||||||
QStringListModel productModel;
|
QStringListModel productModel;
|
||||||
Ui::DownloadFromDiveComputer ui;
|
Ui::DownloadFromDiveComputer ui;
|
||||||
|
QString filename;
|
||||||
bool downloading;
|
bool downloading;
|
||||||
|
|
||||||
int previousLast;
|
int previousLast;
|
||||||
|
|
|
@ -607,7 +607,8 @@ void MainWindow::on_actionQuit_triggered()
|
||||||
|
|
||||||
void MainWindow::on_actionDownloadDC_triggered()
|
void MainWindow::on_actionDownloadDC_triggered()
|
||||||
{
|
{
|
||||||
DownloadFromDCWidget dlg(this);
|
QString filename = existing_filename ?: prefs.default_filename;
|
||||||
|
DownloadFromDCWidget dlg(filename, this);
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue