diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -490,6 +490,11 @@ void MainWindow::onExportCsv() } } +PlotViewSettings MainWindow::viewSettings() const +{ + return plotMan->viewSettings(); +} + void MainWindow::messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) diff --git a/src/mainwindow.h b/src/mainwindow.h --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -58,6 +58,8 @@ public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); + PlotViewSettings viewSettings() const; + void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); diff --git a/src/plotmanager.cpp b/src/plotmanager.cpp --- a/src/plotmanager.cpp +++ b/src/plotmanager.cpp @@ -518,6 +518,47 @@ void PlotManager::setNumOfSamples(unsign } } +PlotViewSettings PlotManager::viewSettings() const +{ + return PlotViewSettings( + { + showGridAction.isChecked(), + showMinorGridAction.isChecked(), + darkBackgroundAction.isChecked(), + showLegendAction.isChecked(), + showMultiAction.isChecked(), + showSymbols + }); +} + +void PlotManager::setViewSettings(const PlotViewSettings& settings) +{ + showGridAction.setChecked(settings.showGrid); + showGrid(settings.showGrid); + showMinorGridAction.setChecked(settings.showMinorGrid); + showMinorGrid(settings.showMinorGrid); + darkBackgroundAction.setChecked(settings.darkBackground); + darkBackground(settings.darkBackground); + showLegendAction.setChecked(settings.showLegend); + showLegend(settings.showLegend); + showMultiAction.setChecked(settings.showMulti); + setMulti(settings.showMulti); + + setSymbols(settings.showSymbols); + if (showSymbols == Plot::ShowSymbolsAuto) + { + setSymbolsAutoAct->setChecked(true); + } + else if (showSymbols == Plot::ShowSymbolsShow) + { + setSymbolsShowAct->setChecked(true); + } + else + { + setSymbolsHideAct->setChecked(true); + } +} + void PlotManager::saveSettings(QSettings* settings) { settings->beginGroup(SettingGroup_Plot); diff --git a/src/plotmanager.h b/src/plotmanager.h --- a/src/plotmanager.h +++ b/src/plotmanager.h @@ -34,6 +34,16 @@ #include "framebufferseries.h" #include "channelinfomodel.h" +struct PlotViewSettings +{ + bool showGrid; + bool showMinorGrid; + bool darkBackground; + bool showLegend; + bool showMulti; + Plot::ShowSymbols showSymbols; +}; + class PlotManager : public QObject { Q_OBJECT @@ -54,6 +64,10 @@ public: unsigned numOfCurves(); /// Returns the list of actions to be inserted into the `View` menu QList menuActions(); + /// Returns current status of menu actions + PlotViewSettings viewSettings() const; + /// Set the current state of view + void setViewSettings(const PlotViewSettings& settings); /// Stores plot settings into a `QSettings`. void saveSettings(QSettings* settings); /// Loads plot settings from a `QSettings`. diff --git a/src/snapshot.cpp b/src/snapshot.cpp --- a/src/snapshot.cpp +++ b/src/snapshot.cpp @@ -1,5 +1,5 @@ /* - Copyright © 2015 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -21,10 +21,11 @@ #include #include +#include "mainwindow.h" #include "snapshot.h" #include "snapshotview.h" -Snapshot::Snapshot(QMainWindow* parent, QString name, ChannelInfoModel infoModel) : +Snapshot::Snapshot(MainWindow* parent, QString name, ChannelInfoModel infoModel) : QObject(parent), cInfoModel(infoModel), _showAction(this), diff --git a/src/snapshot.h b/src/snapshot.h --- a/src/snapshot.h +++ b/src/snapshot.h @@ -1,5 +1,5 @@ /* - Copyright © 2015 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -21,7 +21,6 @@ #define SNAPSHOT_H #include -#include #include #include #include @@ -30,13 +29,14 @@ #include "channelinfomodel.h" class SnapshotView; +class MainWindow; class Snapshot : public QObject { Q_OBJECT public: - Snapshot(QMainWindow* parent, QString name, ChannelInfoModel infoModel); + Snapshot(MainWindow* parent, QString name, ChannelInfoModel infoModel); ~Snapshot(); QVector> data; @@ -61,7 +61,7 @@ private: ChannelInfoModel cInfoModel; QAction _showAction; QAction _deleteAction; - QMainWindow* mainWindow; + MainWindow* mainWindow; SnapshotView* view; bool _saved; diff --git a/src/snapshotmanager.cpp b/src/snapshotmanager.cpp --- a/src/snapshotmanager.cpp +++ b/src/snapshotmanager.cpp @@ -27,9 +27,10 @@ #include #include +#include "mainwindow.h" #include "snapshotmanager.h" -SnapshotManager::SnapshotManager(QMainWindow* mainWindow, +SnapshotManager::SnapshotManager(MainWindow* mainWindow, ChannelManager* channelMan) : _menu("&Snapshots"), _takeSnapshotAction("&Take Snapshot", this), diff --git a/src/snapshotmanager.h b/src/snapshotmanager.h --- a/src/snapshotmanager.h +++ b/src/snapshotmanager.h @@ -1,5 +1,5 @@ /* - Copyright © 2015 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -28,12 +28,14 @@ #include "channelmanager.h" #include "snapshot.h" +class MainWindow; + class SnapshotManager : public QObject { Q_OBJECT public: - SnapshotManager(QMainWindow* mainWindow, ChannelManager* channelMan); + SnapshotManager(MainWindow* mainWindow, ChannelManager* channelMan); ~SnapshotManager(); QMenu* menu(); @@ -46,7 +48,7 @@ public: bool isAllSaved(); ///< returns `true` if all snapshots are saved to a file private: - QMainWindow* _mainWindow; + MainWindow* _mainWindow; ChannelManager* _channelMan; QList snapshots; diff --git a/src/snapshotview.cpp b/src/snapshotview.cpp --- a/src/snapshotview.cpp +++ b/src/snapshotview.cpp @@ -20,7 +20,7 @@ #include "snapshotview.h" #include "ui_snapshotview.h" -SnapshotView::SnapshotView(QWidget *parent, Snapshot* snapshot) : +SnapshotView::SnapshotView(MainWindow* parent, Snapshot* snapshot) : QMainWindow(parent), ui(new Ui::SnapshotView), renameDialog(this) @@ -30,6 +30,7 @@ SnapshotView::SnapshotView(QWidget *pare ui->setupUi(this); plotMan = new PlotManager(ui->plotArea, snapshot->infoModel(), this); + plotMan->setViewSettings(parent->viewSettings()); ui->menuSnapshot->insertAction(ui->actionClose, snapshot->deleteAction()); this->setWindowTitle(snapshot->displayName()); diff --git a/src/snapshotview.h b/src/snapshotview.h --- a/src/snapshotview.h +++ b/src/snapshotview.h @@ -1,5 +1,5 @@ /* - Copyright © 2015 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -29,6 +29,7 @@ #include #include +#include "mainwindow.h" #include "plotmanager.h" #include "snapshot.h" @@ -41,7 +42,7 @@ class SnapshotView : public QMainWindow Q_OBJECT public: - explicit SnapshotView(QWidget *parent, Snapshot* snapshot); + explicit SnapshotView(MainWindow* parent, Snapshot* snapshot); ~SnapshotView(); signals: