|
|
@ -12,7 +12,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
// DetailWidget
|
|
|
|
// DetailWidget
|
|
|
|
|
|
|
|
|
|
|
|
DetailWidget::DetailWidget(QWidget *parent) : QWidget(parent) { |
|
|
|
DetailWidget::DetailWidget(ChartsWidget *charts, QWidget *parent) : charts(charts), QWidget(parent) { |
|
|
|
main_layout = new QHBoxLayout(this); |
|
|
|
main_layout = new QHBoxLayout(this); |
|
|
|
main_layout->setContentsMargins(0, 0, 0, 0); |
|
|
|
main_layout->setContentsMargins(0, 0, 0, 0); |
|
|
|
|
|
|
|
|
|
|
@ -110,6 +110,8 @@ DetailWidget::DetailWidget(QWidget *parent) : QWidget(parent) { |
|
|
|
} |
|
|
|
} |
|
|
|
tabbar->removeTab(index); |
|
|
|
tabbar->removeTab(index); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
QObject::connect(charts, &ChartsWidget::chartOpened, [this](const QString &id, const Signal *sig) { updateChartState(id, sig, true); }); |
|
|
|
|
|
|
|
QObject::connect(charts, &ChartsWidget::chartClosed, [this](const QString &id, const Signal *sig) { updateChartState(id, sig, false); }); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void DetailWidget::showTabBarContextMenu(const QPoint &pt) { |
|
|
|
void DetailWidget::showTabBarContextMenu(const QPoint &pt) { |
|
|
@ -157,13 +159,14 @@ void DetailWidget::dbcMsgChanged(int show_form_idx) { |
|
|
|
if (auto msg = dbc()->msg(msg_id)) { |
|
|
|
if (auto msg = dbc()->msg(msg_id)) { |
|
|
|
for (int i = 0; i < msg->sigs.size(); ++i) { |
|
|
|
for (int i = 0; i < msg->sigs.size(); ++i) { |
|
|
|
auto form = new SignalEdit(i, msg_id, &(msg->sigs[i])); |
|
|
|
auto form = new SignalEdit(i, msg_id, &(msg->sigs[i])); |
|
|
|
|
|
|
|
form->setChartOpened(charts->isChartOpened(msg_id, &(msg->sigs[i]))); |
|
|
|
signals_container->layout()->addWidget(form); |
|
|
|
signals_container->layout()->addWidget(form); |
|
|
|
QObject::connect(form, &SignalEdit::showChart, [this, sig = &msg->sigs[i]]() { emit showChart(msg_id, sig); }); |
|
|
|
|
|
|
|
QObject::connect(form, &SignalEdit::showFormClicked, this, &DetailWidget::showForm); |
|
|
|
QObject::connect(form, &SignalEdit::showFormClicked, this, &DetailWidget::showForm); |
|
|
|
QObject::connect(form, &SignalEdit::remove, this, &DetailWidget::removeSignal); |
|
|
|
QObject::connect(form, &SignalEdit::remove, this, &DetailWidget::removeSignal); |
|
|
|
QObject::connect(form, &SignalEdit::save, this, &DetailWidget::saveSignal); |
|
|
|
QObject::connect(form, &SignalEdit::save, this, &DetailWidget::saveSignal); |
|
|
|
QObject::connect(form, &SignalEdit::highlight, binary_view, &BinaryView::highlight); |
|
|
|
QObject::connect(form, &SignalEdit::highlight, binary_view, &BinaryView::highlight); |
|
|
|
QObject::connect(binary_view, &BinaryView::signalHovered, form, &SignalEdit::signalHovered); |
|
|
|
QObject::connect(binary_view, &BinaryView::signalHovered, form, &SignalEdit::signalHovered); |
|
|
|
|
|
|
|
QObject::connect(form, &SignalEdit::showChart, [this, sig = &msg->sigs[i]](bool show) { charts->showChart(msg_id, sig, show); }); |
|
|
|
if (i == show_form_idx) { |
|
|
|
if (i == show_form_idx) { |
|
|
|
QTimer::singleShot(0, [=]() { emit form->showFormClicked(); }); |
|
|
|
QTimer::singleShot(0, [=]() { emit form->showFormClicked(); }); |
|
|
|
} |
|
|
|
} |
|
|
@ -222,6 +225,13 @@ void DetailWidget::showForm() { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DetailWidget::updateChartState(const QString &id, const Signal *sig, bool opened) { |
|
|
|
|
|
|
|
if (id == msg_id) { |
|
|
|
|
|
|
|
for (auto f : signals_container->findChildren<SignalEdit *>()) |
|
|
|
|
|
|
|
if (f->sig == sig) f->setChartOpened(opened); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void DetailWidget::editMsg() { |
|
|
|
void DetailWidget::editMsg() { |
|
|
|
auto msg = dbc()->msg(msg_id); |
|
|
|
auto msg = dbc()->msg(msg_id); |
|
|
|
QString name = msg ? msg->name.c_str() : "untitled"; |
|
|
|
QString name = msg ? msg->name.c_str() : "untitled"; |
|
|
|