diff --git a/plot.cpp b/plot.cpp --- a/plot.cpp +++ b/plot.cpp @@ -18,11 +18,19 @@ */ #include +#include + #include "plot.h" +#include "utils.h" + Plot::Plot(QWidget* parent) : QwtPlot(parent), zoomer(this->canvas(), false), - sZoomer(this, &zoomer) + sZoomer(this, &zoomer), + _showGridAction("Grid", this), + _showMinorGridAction("Minor Grid", this), + _unzoomAction("Unzoom", this), + _darkBackgroundAction("Dark Background", this) { isAutoScaled = true; @@ -35,6 +43,32 @@ Plot::Plot(QWidget* parent) : // rectItem.attach(this); darkBackground(false); + + _showGridAction.setToolTip("Show Grid"); + _showMinorGridAction.setToolTip("Show Minor Grid"); + _unzoomAction.setToolTip("Unzoom the Plot"); + _darkBackgroundAction.setToolTip("Enable Dark Plot Background"); + + _showGridAction.setShortcut(QKeySequence("G")); + _showMinorGridAction.setShortcut(QKeySequence("M")); + + _showGridAction.setCheckable(true); + _showMinorGridAction.setCheckable(true); + _darkBackgroundAction.setCheckable(true); + + _showGridAction.setChecked(true); + _showMinorGridAction.setChecked(false); + _darkBackgroundAction.setChecked(false); + + connect(&_showGridAction, SELECT::OVERLOAD_OF(&QAction::triggered), + this, &Plot::showGrid); + connect(&_showGridAction, SELECT::OVERLOAD_OF(&QAction::triggered), + &_showMinorGridAction, &QAction::setEnabled); + connect(&_showMinorGridAction, SELECT::OVERLOAD_OF(&QAction::triggered), + this, &Plot::showMinorGrid); + connect(&_unzoomAction, &QAction::triggered, this, &Plot::unzoom); + connect(&_darkBackgroundAction, SELECT::OVERLOAD_OF(&QAction::triggered), + this, &Plot::darkBackground); } void Plot::setAxis(bool autoScaled, double yAxisMin, double yAxisMax) @@ -51,6 +85,16 @@ void Plot::setAxis(bool autoScaled, doub resetAxes(); } +QList Plot::menuActions() +{ + QList actions; + actions << &_showGridAction; + actions << &_showMinorGridAction; + actions << &_unzoomAction; + actions << &_darkBackgroundAction; + return actions; +} + void Plot::resetAxes() { if (isAutoScaled) diff --git a/plot.h b/plot.h --- a/plot.h +++ b/plot.h @@ -21,6 +21,8 @@ #define PLOT_H #include +#include +#include #include #include #include @@ -35,6 +37,8 @@ public: Plot(QWidget* parent = 0); void setAxis(bool autoScaled, double yMin = 0, double yMax = 1); + QList menuActions(); + static QColor makeColor(unsigned int channelIndex); private: @@ -45,6 +49,11 @@ private: QwtPlotGrid grid; QwtPlotShapeItem rectItem; + QAction _showGridAction; + QAction _showMinorGridAction; + QAction _unzoomAction; + QAction _darkBackgroundAction; + void resetAxes(); public slots: diff --git a/snapshotview.cpp b/snapshotview.cpp --- a/snapshotview.cpp +++ b/snapshotview.cpp @@ -32,6 +32,11 @@ SnapShotView::SnapShotView(QWidget *pare connect(ui->actionExport, &QAction::triggered, this, &SnapShotView::save); + + for (auto a : ui->plot->menuActions()) + { + ui->menuView->addAction(a); + } } SnapShotView::~SnapShotView()