From d82a041db0cb25b360a18651cda8e27a652a5dfa Mon Sep 17 00:00:00 2001 From: Mark Watkins Date: Wed, 28 May 2014 19:43:18 +1000 Subject: [PATCH] Fix crash in oximeter file import --- sleepyhead/oximeterimport.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sleepyhead/oximeterimport.cpp b/sleepyhead/oximeterimport.cpp index ae352d39..13f5939f 100644 --- a/sleepyhead/oximeterimport.cpp +++ b/sleepyhead/oximeterimport.cpp @@ -272,11 +272,13 @@ void OximeterImport::on_fileImportButton_clicked() #endif - QString filename = QFileDialog::getOpenFileName(this, tr("Select a valid oximetry data file"), documentsFolder, "Oximetry Files (*.spo *.spor *.dat)"); + QString filename = QFileDialog::getOpenFileName(nullptr , tr("Select a valid oximetry data file"), documentsFolder, "Oximetry Files (*.spo *.spor *.dat)"); if (filename.isEmpty()) return; + + // Make sure filename dialog had time to close properly.. QApplication::processEvents(); @@ -648,14 +650,8 @@ void OximeterImport::on_syncButton_clicked() void OximeterImport::on_saveButton_clicked() { - int size = oximodule->oxirec->size(); - if (size < 2) { - QMessageBox::warning(this, STR_MessageBox_Warning, tr("Not enough recorded oximetry data."), QMessageBox::Ok); - return; - } if (!oximodule) return; - QVector * oxirec = nullptr; if (!oximodule->oxisessions.contains(oximodule->startTime())) { @@ -664,6 +660,8 @@ void OximeterImport::on_saveButton_clicked() return; } oxirec = oximodule->oxisessions[oximodule->startTime()]; + if (oxirec->size() < 10) + return; // this can move to SerialOximeter class process function... @@ -706,6 +704,7 @@ void OximeterImport::on_saveButton_clicked() qint64 step = (importMode == IM_LIVE) ? oximodule->liveResolution() : oximodule->importResolution(); + int size = oxirec->size(); for (int i=1; i < size; ++i) { OxiRecord * rec = &(*oxirec)[i];