Comments (5)
Some more debug prints:
@@ -181,6 +181,7 @@ void PlotView::enableCursors(bool enabled)
}
bool PlotView::viewportEvent(QEvent *event) {
+ qDebug() << "PlotView::viewportEvent " << event->type();
// Handle wheel events for zooming (before the parent's handler to stop normal scrolling)
if (event->type() == QEvent::Wheel) {
QWheelEvent *wheelEvent = (QWheelEvent*)event;
@@ -369,6 +370,7 @@ void PlotView::invalidateEvent()
void PlotView::repaint()
{
+ qDebug() << "PlotView::repaint";
viewport()->update();
}
@@ -422,6 +424,7 @@ void PlotView::setPowerMax(int power)
void PlotView::paintEvent(QPaintEvent *event)
{
+ qDebug() << "PlotView::paintEvent " << event->type();
if (mainSampleSource == nullptr) return;
QRect rect = QRect(0, 0, width(), height());
@@ -517,6 +520,7 @@ int PlotView::plotsHeight()
void PlotView::resizeEvent(QResizeEvent * event)
{
+ qDebug() << "PlotView::resizeEvent " << event->type();
updateView();
}
@@ -548,6 +552,7 @@ void PlotView::updateViewRange(bool reCenter)
void PlotView::updateView(bool reCenter)
{
+ qDebug() << "PlotView::updateView";
horizontalScrollBar()->setMaximum(std::max(0, sampleToColumn(mainSampleSource->count()) - width()));
verticalScrollBar()->setMaximum(std::max(0, plotsHeight() - viewport()->height()));
updateViewRange(reCenter);
Good:
PlotView::viewportEvent QEvent::Type(CursorChange)
PlotView::viewportEvent QEvent::Type(MouseTrackingChange)
PlotView::repaint
PlotView::repaint
PlotView::updateView
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::updateView
PlotView::repaint
PlotView::updateView
PlotView::updateView
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::viewportEvent QEvent::Type(Polish)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Show)
PlotView::viewportEvent QEvent::Type(ShowToParent)
PlotView::viewportEvent QEvent::Type(PolishRequest)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(UpdateLater)
PlotView::viewportEvent QEvent::Type(Hide)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Show)
PlotView::viewportEvent QEvent::Type(Paint)
PlotView::paintEvent QEvent::Type(Paint)
PlotView::viewportEvent QEvent::Type(Enter)
PlotView::viewportEvent QEvent::Type(WindowActivate)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Paint)
PlotView::paintEvent QEvent::Type(Paint)
Bad:
PlotView::viewportEvent QEvent::Type(CursorChange)
PlotView::viewportEvent QEvent::Type(MouseTrackingChange)
PlotView::repaint
PlotView::repaint
PlotView::updateView
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::updateView
PlotView::repaint
PlotView::updateView
PlotView::updateView
PlotView::repaint
PlotView::repaint
PlotView::repaint
PlotView::viewportEvent QEvent::Type(Polish)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Show)
PlotView::viewportEvent QEvent::Type(ShowToParent)
PlotView::viewportEvent QEvent::Type(PolishRequest)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(UpdateLater)
PlotView::viewportEvent QEvent::Type(Hide)
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Move)
PlotView::viewportEvent QEvent::Type(Resize)
PlotView::resizeEvent QEvent::Type(Resize)
PlotView::updateView
PlotView::viewportEvent QEvent::Type(Show)
PlotView::viewportEvent QEvent::Type(Paint)
PlotView::paintEvent QEvent::Type(Paint)
PlotView::viewportEvent QEvent::Type(WindowActivate)
from inspectrum.
Just to make sure I'm understanding right, I think you're actually talking about the horizontal scrollbar? (ie: for scrolling left or right in time).
So what seems to be happening is that the range of the scrollbar isn't getting set correctly. It has a slider, but it's full width because there's no range of movement available.
We set up the slider range in updateView
based on the sample count and zoom/fft levels. It seems like in the 'bad' log, there's no updateView
call after the WindowActivate
event, so maybe the sliders end up just having default settings until some action triggers updateView
to fix it.
from inspectrum.
You are of course correct: I meant the horizontal scrollbar...
from inspectrum.
This patch solved the issue for me. It feels like a hack, though:
@@ -237,6 +238,10 @@ bool PlotView::viewportEvent(QEvent *event) {
return true;
}
+ if (event->type() == QEvent::WindowActivate) {
+ updateView();
+ }
+
// Handle parent eveents
return QGraphicsView::viewportEvent(event);
}
from inspectrum.
Closed by #177
from inspectrum.
Related Issues (20)
- Toggle SigMF annotations HOT 1
- Display BIN/HEX in threshold plot
- Feature Request: Add basic CTRL shortcuts HOT 2
- SigMF: Use correct field in annotation HOT 2
- Enable compiler warnings
- 4-FSK
- Reading SDRangel SigMF files HOT 8
- Build fail HOT 1
- Zero pad to compensate for nonzero FFT length HOT 2
- Feature request: save spectrogram to file
- Inspectrum crashes in viewing small files HOT 1
- Installation failure on MacBook Air M1 HOT 1
- thanks for your efforts HOT 1
- Please tag your latest release of Inspectrum HOT 2
- Please update your tagged version of inpectrum
- Add a way to view two signals side by side to compare/edit.
- Method to read frequency HOT 1
- Real time spectrom view HOT 1
- export sample to file
- Allow for negative Zoom level
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from inspectrum.