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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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"; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user