diff options
-rw-r--r-- | desktop-widgets/divelogimportdialog.cpp | 16 | ||||
-rw-r--r-- | desktop-widgets/divelogimportdialog.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/desktop-widgets/divelogimportdialog.cpp b/desktop-widgets/divelogimportdialog.cpp index 4d092bb8c..2068c3916 100644 --- a/desktop-widgets/divelogimportdialog.cpp +++ b/desktop-widgets/divelogimportdialog.cpp @@ -951,6 +951,22 @@ 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) { } diff --git a/desktop-widgets/divelogimportdialog.h b/desktop-widgets/divelogimportdialog.h index f01ec282d..a6f2a8868 100644 --- a/desktop-widgets/divelogimportdialog.h +++ b/desktop-widgets/divelogimportdialog.h @@ -89,6 +89,8 @@ 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; |