From 19e20aad94953412afa38397e6238b280c3e6f5c Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Fri, 24 Mar 2023 01:19:39 +0800 Subject: [PATCH] cabana: fix button geometries (#27659) old-commit-hash: 1a560a1a6c114352b85959f96190d97f49f48010 --- tools/cabana/signaledit.cc | 3 +-- tools/cabana/signaledit.h | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/cabana/signaledit.cc b/tools/cabana/signaledit.cc index d91f6c1401..4cd06e8a7d 100644 --- a/tools/cabana/signaledit.cc +++ b/tools/cabana/signaledit.cc @@ -415,7 +415,7 @@ SignalView::SignalView(ChartsWidget *charts, QWidget *parent) : charts(charts), hl->addWidget(collapse_btn); // tree view - tree = new QTreeView(this); + tree = new TreeView(this); tree->setModel(model = new SignalModel(this)); tree->setItemDelegate(new SignalItemDelegate(this)); tree->setFrameShape(QFrame::NoFrame); @@ -439,7 +439,6 @@ SignalView::SignalView(ChartsWidget *charts, QWidget *parent) : charts(charts), QObject::connect(tree, &QTreeView::viewportEntered, [this]() { emit highlight(nullptr); }); 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::rowsInserted, 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); }); diff --git a/tools/cabana/signaledit.h b/tools/cabana/signaledit.h index ae73a7b3bc..d6bad6d88c 100644 --- a/tools/cabana/signaledit.h +++ b/tools/cabana/signaledit.h @@ -108,8 +108,17 @@ private: void rowsChanged(); void leaveEvent(QEvent *event); + struct TreeView : public QTreeView { + TreeView(QWidget *parent) : QTreeView(parent) {} + void rowsInserted(const QModelIndex &parent, int start, int end) override { + ((SignalView *)parentWidget())->rowsChanged(); + // update widget geometries in QTreeView::rowsInserted + QTreeView::rowsInserted(parent, start, end); + } + }; + MessageId msg_id; - QTreeView *tree; + TreeView *tree; QLineEdit *filter_edit; ChartsWidget *charts; QLabel *signal_count_lb;