diff --git a/tools/cabana/chart/chartswidget.cc b/tools/cabana/chart/chartswidget.cc index 567fceebad..ebc463af0e 100644 --- a/tools/cabana/chart/chartswidget.cc +++ b/tools/cabana/chart/chartswidget.cc @@ -402,7 +402,7 @@ void ChartsWidget::removeAll() { if (!charts.isEmpty()) { for (auto c : charts) { - c->deleteLater(); + delete c; } charts.clear(); updateToolBar(); diff --git a/tools/cabana/signalview.cc b/tools/cabana/signalview.cc index a557aa57fb..762f14142f 100644 --- a/tools/cabana/signalview.cc +++ b/tools/cabana/signalview.cc @@ -528,7 +528,7 @@ SignalView::SignalView(ChartsWidget *charts, QWidget *parent) : charts(charts), QObject::connect(tree, &QTreeView::entered, [this](const QModelIndex &index) { emit highlight(model->getItem(index)->sig); }); QObject::connect(model, &QAbstractItemModel::modelReset, this, &SignalView::rowsChanged); QObject::connect(model, &QAbstractItemModel::rowsRemoved, this, &SignalView::rowsChanged); - QObject::connect(dbc(), &DBCManager::signalAdded, [this](MessageId id, const cabana::Signal *sig) { selectSignal(sig); }); + QObject::connect(dbc(), &DBCManager::signalAdded, this, &SignalView::handleSignalAdded); QObject::connect(dbc(), &DBCManager::signalUpdated, this, &SignalView::handleSignalUpdated); QObject::connect(tree->verticalScrollBar(), &QScrollBar::valueChanged, [this]() { updateState(); }); QObject::connect(tree->verticalScrollBar(), &QScrollBar::rangeChanged, [this]() { updateState(); }); @@ -632,6 +632,12 @@ void SignalView::setSparklineRange(int value) { updateState(); } +void SignalView::handleSignalAdded(MessageId id, const cabana::Signal *sig) { + if (id.address == model->msg_id.address) { + selectSignal(sig); + } +} + void SignalView::handleSignalUpdated(const cabana::Signal *sig) { if (int row = model->signalRow(sig); row != -1) { auto item = model->getItem(model->index(row, 1)); diff --git a/tools/cabana/signalview.h b/tools/cabana/signalview.h index eb268e517c..1f3a26379c 100644 --- a/tools/cabana/signalview.h +++ b/tools/cabana/signalview.h @@ -116,6 +116,7 @@ private: void resizeEvent(QResizeEvent* event) override; void updateToolBar(); void setSparklineRange(int value); + void handleSignalAdded(MessageId id, const cabana::Signal *sig); void handleSignalUpdated(const cabana::Signal *sig); void updateState(const QHash *msgs = nullptr);