From 63f89e9746a042165023e87eb3612fa2b05b84ad Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Fri, 27 Jan 2023 04:41:17 +0800 Subject: [PATCH] cabana: only repaint changed cells in BinaryView::highlight (#27046) dont update all cells on highlight old-commit-hash: de5f792b3e893711a47c8f4db04162ab259ef286 --- tools/cabana/binaryview.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/cabana/binaryview.cc b/tools/cabana/binaryview.cc index eaa33724e8..010fe0fc88 100644 --- a/tools/cabana/binaryview.cc +++ b/tools/cabana/binaryview.cc @@ -40,8 +40,14 @@ QSize BinaryView::minimumSizeHint() const { void BinaryView::highlight(const Signal *sig) { if (sig != hovered_sig) { + for (int i = 0; i < model->items.size(); ++i) { + auto &item_sigs = model->items[i].sigs; + if ((sig && item_sigs.contains(sig)) || (hovered_sig && item_sigs.contains(hovered_sig))) { + auto index = model->index(i / model->columnCount(), i % model->columnCount()); + emit model->dataChanged(index, index, {Qt::DisplayRole}); + } + } hovered_sig = sig; - model->dataChanged(model->index(0, 0), model->index(model->rowCount() - 1, model->columnCount() - 1)); emit signalHovered(hovered_sig); } }