1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-03 14:34:57 -04:00

Don't use WA_DeleteOnClose for progess dialogs, as a crash can occur if the user closes the window before the download is complete.

This commit is contained in:
Jon Beniston
2021-11-03 11:02:04 +00:00
parent 5cbd607f4a
commit af841dd88f
5 changed files with 54 additions and 49 deletions
+11 -9
View File
@@ -113,8 +113,11 @@ bool MapBeaconDialog::confirmDownload(QString filename)
void MapBeaconDialog::updateDownloadProgress(qint64 bytesRead, qint64 totalBytes)
{
m_progressDialog->setMaximum(totalBytes);
m_progressDialog->setValue(bytesRead);
if (m_progressDialog)
{
m_progressDialog->setMaximum(totalBytes);
m_progressDialog->setValue(bytesRead);
}
}
void MapBeaconDialog::accept()
@@ -132,7 +135,6 @@ void MapBeaconDialog::on_downloadIARU_clicked()
// Download IARU beacons database to disk
QUrl dbURL(QString(IARU_BEACONS_URL));
m_progressDialog = new QProgressDialog(this);
m_progressDialog->setAttribute(Qt::WA_DeleteOnClose);
m_progressDialog->setCancelButton(nullptr);
m_progressDialog->setMinimumDuration(500);
m_progressDialog->setLabelText(QString("Downloading %1.").arg(IARU_BEACONS_URL));
@@ -151,23 +153,23 @@ void MapBeaconDialog::downloadFinished(const QString& filename, bool success)
QList<Beacon *> *beacons = Beacon::readIARUCSV(filename);
if (beacons != nullptr)
m_gui->setBeacons(beacons);
m_progressDialog->close();
m_progressDialog = nullptr;
}
else
{
qDebug() << "MapBeaconDialog::downloadFinished: Unexpected filename: " << filename;
m_progressDialog->close();
m_progressDialog = nullptr;
}
}
else
{
qDebug() << "MapBeaconDialog::downloadFinished: Failed: " << filename;
m_progressDialog->close();
m_progressDialog = nullptr;
QMessageBox::warning(this, "Download failed", QString("Failed to download %1").arg(filename));
}
if (m_progressDialog)
{
m_progressDialog->close();
delete m_progressDialog;
m_progressDialog = nullptr;
}
}
void MapBeaconDialog::on_beacons_cellDoubleClicked(int row, int column)