Cabana: fixed form glitches (#26587)

fix visual glitches
old-commit-hash: 6dec92df43
vw-mqb-aeb
Dean Lee 3 years ago committed by GitHub
parent c82a646888
commit 854f930b27
  1. 15
      tools/cabana/detailwidget.cc
  2. 1
      tools/cabana/detailwidget.h
  3. 2
      tools/cabana/signaledit.cc
  4. 5
      tools/cabana/signaledit.h

@ -153,10 +153,10 @@ void DetailWidget::dbcMsgChanged(int show_form_idx) {
for (auto sig : msg->getSignals()) {
SignalEdit *form = i < signal_list.size() ? signal_list[i] : nullptr;
if (!form) {
form = new SignalEdit(i);
form = new SignalEdit(i, this);
QObject::connect(form, &SignalEdit::remove, this, &DetailWidget::removeSignal);
QObject::connect(form, &SignalEdit::save, this, &DetailWidget::saveSignal);
QObject::connect(form, &SignalEdit::showFormClicked, this, &DetailWidget::showFormClicked);
QObject::connect(form, &SignalEdit::showFormClicked, this, &DetailWidget::showForm);
QObject::connect(form, &SignalEdit::highlight, binary_view, &BinaryView::highlight);
QObject::connect(binary_view, &BinaryView::signalHovered, form, &SignalEdit::signalHovered);
QObject::connect(form, &SignalEdit::showChart, charts, &ChartsWidget::showChart);
@ -196,16 +196,13 @@ void DetailWidget::updateState(const QHash<QString, CanData> * msgs) {
history_log->updateState();
}
void DetailWidget::showFormClicked() {
auto s = qobject_cast<SignalEdit *>(sender());
showForm(s->sig);
}
void DetailWidget::showForm(const Signal *sig) {
setUpdatesEnabled(false);
for (auto f : signal_list) {
f->updateForm(f->sig == sig && !f->isFormVisible());
if (f->sig == sig) scroll->ensureWidgetVisible(f);
f->updateForm(f->sig == sig && !f->form->isVisible());
if (f->sig == sig && f->form->isVisible()) {
QTimer::singleShot(0, [=]() { scroll->ensureWidgetVisible(f); });
}
}
setUpdatesEnabled(true);
}

@ -29,7 +29,6 @@ public:
private:
void showForm(const Signal *sig);
void showFormClicked();
void updateChartState(const QString &id, const Signal *sig, bool opened);
void showTabBarContextMenu(const QPoint &pt);
void addSignal(int start_bit, int size, bool little_endian);

@ -122,7 +122,7 @@ SignalEdit::SignalEdit(int index, QWidget *parent) : form_idx(index), QWidget(pa
save_timer->setSingleShot(true);
save_timer->callOnTimeout(this, &SignalEdit::saveSignal);
QObject::connect(title, &ElidedLabel::clicked, this, &SignalEdit::showFormClicked);
QObject::connect(title, &ElidedLabel::clicked, [this]() { emit showFormClicked(sig); });
QObject::connect(plot_btn, &QToolButton::clicked, [this](bool checked) {
emit showChart(msg_id, sig, checked, QGuiApplication::keyboardModifiers() & Qt::ShiftModifier);
});

@ -36,8 +36,8 @@ public:
void setChartOpened(bool opened);
void signalHovered(const Signal *sig);
void updateForm(bool show);
inline bool isFormVisible() const { return form->isVisible(); }
const Signal *sig = nullptr;
SignalForm *form = nullptr;
QString msg_id;
signals:
@ -45,14 +45,13 @@ signals:
void showChart(const QString &name, const Signal *sig, bool show, bool merge);
void remove(const Signal *sig);
void save(const Signal *sig, const Signal &new_sig);
void showFormClicked();
void showFormClicked(const Signal *sig);
protected:
void enterEvent(QEvent *event) override;
void leaveEvent(QEvent *event) override;
void saveSignal();
SignalForm *form = nullptr;
ElidedLabel *title;
QLabel *color_label;
QLabel *icon;

Loading…
Cancel
Save