diff options
-rw-r--r-- | facetracknoir/ui.cpp | 13 | ||||
-rw-r--r-- | facetracknoir/ui.h | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/facetracknoir/ui.cpp b/facetracknoir/ui.cpp index 6437b9d1..4d93f3b2 100644 --- a/facetracknoir/ui.cpp +++ b/facetracknoir/ui.cpp @@ -124,7 +124,7 @@ MainWindow::~MainWindow() if (tray) tray->hide(); stopTracker(); - _save(); + maybe_save(); } void MainWindow::set_working_directory() @@ -142,6 +142,15 @@ void MainWindow::save() save_timer.start(5000); } +void MainWindow::maybe_save() +{ + if (save_timer.isActive()) + { + save_timer.stop(); + _save(); + } +} + void MainWindow::_save() { s.b->save(); save_mappings(); @@ -307,6 +316,8 @@ void MainWindow::stopTracker( ) { if (pFilterDialog) pFilterDialog->unregister_filter(); + maybe_save(); + work = nullptr; libs = SelectedLibraries(); diff --git a/facetracknoir/ui.h b/facetracknoir/ui.h index cfaf47cb..91e4ebbf 100644 --- a/facetracknoir/ui.h +++ b/facetracknoir/ui.h @@ -75,6 +75,7 @@ class MainWindow : public QMainWindow, private State void set_title(const QString& game_title = QStringLiteral("")); static bool get_new_config_name_from_dialog(QString &ret); void set_profile(const QString& profile); + void maybe_save(); private slots: void _save(); void save(); |