diff --git a/plotview.cpp b/plotview.cpp index 172acca..e22a966 100644 --- a/plotview.cpp +++ b/plotview.cpp @@ -110,7 +110,11 @@ void PlotView::contextMenuEvent(QContextMenuEvent * event) connect( save, &QAction::triggered, this, [=]() { - exportSamples(src); + if (selectedPlot == spectrogramPlot) { + exportSamples(spectrogramPlot->tunerEnabled() ? spectrogramPlot->output() : spectrogramPlot->input()); + } else { + exportSamples(src); + } } ); menu.addAction(save); diff --git a/spectrogramplot.h b/spectrogramplot.h index daf9d22..51e2bcc 100644 --- a/spectrogramplot.h +++ b/spectrogramplot.h @@ -44,7 +44,9 @@ public: void paintFront(QPainter &painter, QRect &rect, range_t sampleRange) override; void paintMid(QPainter &painter, QRect &rect, range_t sampleRange) override; bool mouseEvent(QEvent::Type type, QMouseEvent event) override; + std::shared_ptr>> input() { return inputSource; }; void setSampleRate(off_t sampleRate); + bool tunerEnabled(); void enableScales(bool enabled); public slots: @@ -82,7 +84,6 @@ private: float getTunerPhaseInc(); std::vector getTunerTaps(); int linesPerTile(); - bool tunerEnabled(); void paintFrequencyScale(QPainter &painter, QRect &rect); };