Import: Make DiveLogImportDialog modal

By making this modal, we can use a local variable and remove the
nasty "deleteLater()" hack to reclaim the resources after the
dialog closes.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-01 18:12:59 +02:00 committed by Dirk Hohndel
parent 3f51849dc3
commit 5a78730561
3 changed files with 2 additions and 20 deletions

View file

@ -1010,22 +1010,6 @@ void DiveLogImportDialog::on_buttonBox_accepted()
MainWindow::instance()->refreshDisplay();
}
// Since this is a non-modal dialog, the caller can't delete it at the call-site.
// Therefore, hook into the accept() and reject() functions and schedule the object
// for deletion with deleteLater(). Horrible, but absolutely the "Qt-way".
// TODO: Think about making the dialog modal.
void DiveLogImportDialog::accept()
{
QDialog::accept();
deleteLater();
}
void DiveLogImportDialog::reject()
{
QDialog::reject();
deleteLater();
}
TagDragDelegate::TagDragDelegate(QObject *parent) : QStyledItemDelegate(parent)
{
}

View file

@ -89,8 +89,6 @@ slots:
void loadFileContents(int value, enum whatChanged triggeredBy);
int setup_csv_params(QStringList r, char **params, int pnr);
int parseTxtHeader(QString fileName, char **params, int pnr);
void accept() override;
void reject() override;
private:
bool selector;

View file

@ -1811,8 +1811,8 @@ void MainWindow::on_actionImportDiveLog_triggered()
}
if (csvFiles.size()) {
DiveLogImportDialog *diveLogImport = new DiveLogImportDialog(csvFiles, this);
diveLogImport->show();
DiveLogImportDialog diveLogImport(csvFiles, this);
diveLogImport.exec();
}
}