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

* display warning if failed to write_settings

* use Settings::filePath()
old-commit-hash: f63dc51284
test-msgs
Dean Lee 2 years ago committed by GitHub
parent 75297f431b
commit 6c389dee7e
  1. 8
      tools/cabana/mainwin.cc
  2. 5
      tools/cabana/settings.cc
  3. 3
      tools/cabana/settings.h

@ -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"; }

Loading…
Cancel
Save