diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -94,16 +94,23 @@ MainWindow::MainWindow(QWidget *parent)
// init UI signals
- // menu signals
+ // Help menu signals
QObject::connect(ui->actionHelpAbout, &QAction::triggered,
&aboutDialog, &QWidget::show);
QObject::connect(ui->actionReportBug, &QAction::triggered,
[](){QDesktopServices::openUrl(QUrl(BUG_REPORT_URL));});
+ // File menu signals
QObject::connect(ui->actionExportCsv, &QAction::triggered,
this, &MainWindow::onExportCsv);
+ QObject::connect(ui->actionSaveSettings, &QAction::triggered,
+ this, &MainWindow::onSaveSettings);
+
+ QObject::connect(ui->actionLoadSettings, &QAction::triggered,
+ this, &MainWindow::onLoadSettings);
+
ui->actionQuit->setShortcutContext(Qt::ApplicationShortcut);
QObject::connect(ui->actionQuit, &QAction::triggered,
@@ -428,3 +435,27 @@ void MainWindow::loadSettings(QSettings*
move(settings->value("pos", pos()).toPoint());
settings->endGroup();
}
+
+void MainWindow::onSaveSettings()
+{
+ QString fileName = QFileDialog::getSaveFileName(
+ this, tr("Save Settings"), QString(), "INI (*.ini)");
+
+ if (!fileName.isNull()) // user canceled
+ {
+ QSettings settings(fileName, QSettings::IniFormat);
+ saveSettings(&settings);
+ }
+}
+
+void MainWindow::onLoadSettings()
+{
+ QString fileName = QFileDialog::getOpenFileName(
+ this, tr("Load Settings"), QString(), "INI (*.ini)");
+
+ if (!fileName.isNull()) // user canceled
+ {
+ QSettings settings(fileName, QSettings::IniFormat);
+ loadSettings(&settings);
+ }
+}
diff --git a/src/mainwindow.h b/src/mainwindow.h
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -98,6 +98,8 @@ private slots:
void onSpsChanged(unsigned sps);
void enableDemo(bool enabled);
void onExportCsv();
+ void onSaveSettings();
+ void onLoadSettings();
};
#endif // MAINWINDOW_H
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -105,6 +105,8 @@
File
+
+
@@ -197,6 +199,22 @@
Report a Bug on SerialPlot Website
+
+
+ Save Settings
+
+
+ Save Settings to a File
+
+
+
+
+ Load Settings
+
+
+ Load Settings from a File
+
+