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);
|
||||
}
|
||||
|
||||
void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data)
|
||||
void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data, const QString &filename)
|
||||
{
|
||||
devData = *data;
|
||||
parent = _parent;
|
||||
|
@ -339,21 +339,20 @@ void OstcFirmwareCheck::checkLatest(QWidget *_parent, device_data_t *data)
|
|||
response.setWindowModality(Qt::WindowModal);
|
||||
int ret = response.exec();
|
||||
if (ret == QMessageBox::Accepted)
|
||||
upgradeFirmware();
|
||||
upgradeFirmware(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void OstcFirmwareCheck::upgradeFirmware()
|
||||
void OstcFirmwareCheck::upgradeFirmware(const QString &filename)
|
||||
{
|
||||
// start download of latestFirmwareHexFile
|
||||
QString saveFileName = latestFirmwareHexFile;
|
||||
saveFileName.replace("http://www.heinrichsweikamp.net/autofirmware/", "");
|
||||
saveFileName.replace("firmware", latestFirmwareAvailable);
|
||||
QString filename = existing_filename ?: prefs.default_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"),
|
||||
filename, tr("Firmware files") + " (*.hex *.bin)");
|
||||
saveFileName, tr("Firmware files") + " (*.hex *.bin)");
|
||||
if (storeFirmware.isEmpty())
|
||||
return;
|
||||
|
||||
|
|
|
@ -123,14 +123,14 @@ class OstcFirmwareCheck : public QObject {
|
|||
Q_OBJECT
|
||||
public:
|
||||
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
|
||||
slots:
|
||||
void parseOstcFwVersion(QNetworkReply *reply);
|
||||
void saveOstcFirmware(QNetworkReply *reply);
|
||||
|
||||
private:
|
||||
void upgradeFirmware();
|
||||
void upgradeFirmware(const QString &filename);
|
||||
device_data_t devData;
|
||||
QString latestFirmwareAvailable;
|
||||
QString latestFirmwareHexFile;
|
||||
|
|
|
@ -26,7 +26,8 @@ static bool is_vendor_searchable(QString vendor)
|
|||
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),
|
||||
previousLast(0),
|
||||
timer(new QTimer(this)),
|
||||
|
@ -461,11 +462,10 @@ void DownloadFromDCWidget::checkLogFile(int state)
|
|||
|
||||
void DownloadFromDCWidget::pickLogFile()
|
||||
{
|
||||
QString filename = existing_filename ?: prefs.default_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"),
|
||||
filename, tr("Log files") + " (*.log)");
|
||||
logfilename, tr("Log files") + " (*.log)");
|
||||
if (!logFile.isEmpty()) {
|
||||
free(logfile_name);
|
||||
logfile_name = copy_qstring(logFile);
|
||||
|
@ -487,11 +487,10 @@ void DownloadFromDCWidget::checkDumpFile(int state)
|
|||
|
||||
void DownloadFromDCWidget::pickDumpFile()
|
||||
{
|
||||
QString filename = existing_filename ?: prefs.default_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"),
|
||||
filename, tr("Dump files") + " (*.bin)");
|
||||
dumpfilename, tr("Dump files") + " (*.bin)");
|
||||
if (!dumpFile.isEmpty()) {
|
||||
free(dumpfile_name);
|
||||
dumpfile_name = copy_qstring(dumpFile);
|
||||
|
@ -547,7 +546,7 @@ void DownloadFromDCWidget::on_ok_clicked()
|
|||
diveImportedModel->recordDives(flags);
|
||||
|
||||
if (ostcFirmwareCheck && currentState == DONE)
|
||||
ostcFirmwareCheck->checkLatest(this, diveImportedModel->thread.data()->internalData());
|
||||
ostcFirmwareCheck->checkLatest(this, diveImportedModel->thread.data()->internalData(), filename);
|
||||
accept();
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ class BTDiscovery;
|
|||
class DownloadFromDCWidget : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DownloadFromDCWidget(QWidget *parent = 0);
|
||||
explicit DownloadFromDCWidget(const QString &filename, QWidget *parent = 0);
|
||||
void reject();
|
||||
|
||||
enum states {
|
||||
|
@ -72,6 +72,7 @@ private:
|
|||
QStringListModel vendorModel;
|
||||
QStringListModel productModel;
|
||||
Ui::DownloadFromDiveComputer ui;
|
||||
QString filename;
|
||||
bool downloading;
|
||||
|
||||
int previousLast;
|
||||
|
|
|
@ -607,7 +607,8 @@ void MainWindow::on_actionQuit_triggered()
|
|||
|
||||
void MainWindow::on_actionDownloadDC_triggered()
|
||||
{
|
||||
DownloadFromDCWidget dlg(this);
|
||||
QString filename = existing_filename ?: prefs.default_filename;
|
||||
DownloadFromDCWidget dlg(filename, this);
|
||||
dlg.exec();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue