jfjoch_viewer: Tracing potential problem in dataset info chart view

This commit is contained in:
2025-12-12 17:48:51 +01:00
parent a027b66b0d
commit 4e60a37fe1
2 changed files with 9 additions and 3 deletions

View File

@@ -22,7 +22,7 @@ JFJochDatasetInfoChartView::JFJochDatasetInfoChartView(QWidget *parent)
void JFJochDatasetInfoChartView::setImage(int64_t val) {
if (!currentSeries)
if (!currentSeries || currentSeries->chart() != chart())
return;
curr_image = val;
@@ -129,7 +129,12 @@ void JFJochDatasetInfoChartView::resetZoom() {
}
void JFJochDatasetInfoChartView::updateChart() {
// Important: drop any stale QObject pointers BEFORE rebuilding the chart.
series = nullptr;
currentSeries = nullptr;
chart()->removeAllSeries();
if (m_hoverLine) {
chart()->scene()->removeItem(m_hoverLine);
delete m_hoverLine;

View File

@@ -11,6 +11,7 @@
#include <QMouseEvent>
#include <QGraphicsLineItem>
#include <QTimer>
#include <QPointer>
#ifdef JFJOCH_USE_FFTW
#include <fftw3.h>
@@ -22,8 +23,8 @@
class JFJochDatasetInfoChartView : public QChartView {
Q_OBJECT
QLineSeries *series = nullptr;
QScatterSeries *currentSeries = nullptr;
QPointer<QLineSeries> series = nullptr;
QPointer<QScatterSeries> currentSeries = nullptr;
QGraphicsLineItem *m_hoverLine = nullptr;
QTimer *m_hoverLoadTimer = nullptr;
int64_t m_hoverPendingIdx = -1;