cabana: only repaint changed cells in BinaryView::highlight (#27046)

dont update all cells on highlight
pull/27033/head
Dean Lee 2 years ago committed by GitHub
parent 0f37ff6c02
commit de5f792b3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      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);
}
}

Loading…
Cancel
Save