cabana: display warning if failed to write settings (#29873)

* display warning if failed to write_settings

* use Settings::filePath()
old-commit-hash: f63dc5128411c6dc39c5bda9f05144c5f0af5b30
This commit is contained in:
Dean Lee
2023-09-13 04:13:59 +08:00
committed by GitHub
parent 75297f431b
commit 6c389dee7e
3 changed files with 12 additions and 4 deletions

View File

@@ -606,7 +606,13 @@ void MainWindow::closeEvent(QCloseEvent *event) {
settings.video_splitter_state = video_splitter->saveState();
}
settings.message_header_state = messages_widget->saveHeaderState();
settings.save();
auto status = settings.save();
if (status == QSettings::AccessError) {
QString error = tr("Failed to write settings to [%1]: access denied").arg(Settings::filePath());
qDebug() << error;
QMessageBox::warning(this, tr("Failed to write settings"), error);
}
QWidget::closeEvent(event);
}

View File

@@ -6,14 +6,13 @@
#include <QFileDialog>
#include <QFormLayout>
#include <QPushButton>
#include <QSettings>
#include <QStandardPaths>
#include "tools/cabana/util.h"
Settings settings;
void Settings::save() {
QSettings::Status Settings::save() {
QSettings s(filePath(), QSettings::IniFormat);
s.setValue("fps", fps);
s.setValue("max_cached_minutes", max_cached_minutes);
@@ -35,6 +34,8 @@ void Settings::save() {
s.setValue("log_path", log_path);
s.setValue("drag_direction", drag_direction);
s.setValue("suppress_defined_signals", suppress_defined_signals);
s.sync();
return s.status();
}
void Settings::load() {

View File

@@ -7,6 +7,7 @@
#include <QDialog>
#include <QGroupBox>
#include <QLineEdit>
#include <QSettings>
#include <QSpinBox>
#define LIGHT_THEME 1
@@ -24,7 +25,7 @@ public:
};
Settings() {}
void save();
QSettings::Status save();
void load();
inline static QString filePath() { return QApplication::applicationDirPath() + "/settings"; }