diff --git a/meter.cpp b/meter.cpp index ff5b8b3..b009c98 100644 --- a/meter.cpp +++ b/meter.cpp @@ -190,6 +190,7 @@ void meter::paintEvent(QPaintEvent *) { if(freezeDrawing) return; + QPainter painter(this); // This next line sets up a canvis within the // space of the widget, and gives it coordinates. @@ -348,6 +349,7 @@ void meter::paintEvent(QPaintEvent *) { drawLabel(&painter); } + haveUpdatedData = false; } void meter::drawLabel(QPainter *qp) @@ -379,6 +381,7 @@ void meter::setLevel(int current) this->peak = peakLevels.at(i); } + haveUpdatedData = true; this->update(); } @@ -395,7 +398,8 @@ void meter::setLevels(int current, int peak) } this->average = sum / std::min(avgPosition, (int)avgLevels.size()); - this->update(); + haveUpdatedData = true; + this->update(); // place repaint event on the event queue } void meter::setLevels(int current, int peak, int average) @@ -404,7 +408,8 @@ void meter::setLevels(int current, int peak, int average) this->peak = peak; this->average = average; - this->update(); + haveUpdatedData = true; + this->update(); // place repaint event on the event queue } void meter::updateDrawing(int num) diff --git a/meter.h b/meter.h index 3dcae52..89d64b9 100644 --- a/meter.h +++ b/meter.h @@ -52,6 +52,7 @@ private: QComboBox *combo = NULL; meter_t meterType; QString meterShortString; + bool haveUpdatedData = false; int fontSize = 10; int length=30; int current=0; diff --git a/spectrumscope.cpp b/spectrumscope.cpp index 45c9928..ebd8145 100644 --- a/spectrumscope.cpp +++ b/spectrumscope.cpp @@ -446,6 +446,8 @@ void spectrumScope::setRange(int floor, int ceiling) { plotFloor = floor; plotCeiling = ceiling; + wfFloor = floor; + wfCeiling = ceiling; maxAmp = ceiling; if (spectrum != Q_NULLPTR) spectrum->yAxis->setRange(QCPRange(floor, ceiling));