|
|
|
@ -54,12 +54,20 @@ SignalForm::SignalForm(QWidget *parent) : QWidget(parent) { |
|
|
|
|
val_desc = new QLineEdit(); |
|
|
|
|
form_layout->addRow(tr("Value descriptions"), val_desc); |
|
|
|
|
|
|
|
|
|
QObject::connect(name, &QLineEdit::textEdited, this, &SignalForm::changed); |
|
|
|
|
QObject::connect(factor, &QLineEdit::textEdited, this, &SignalForm::changed); |
|
|
|
|
QObject::connect(offset, &QLineEdit::textEdited, this, &SignalForm::changed); |
|
|
|
|
QObject::connect(name, &QLineEdit::editingFinished, this, &SignalForm::textBoxEditingFinished); |
|
|
|
|
QObject::connect(factor, &QLineEdit::editingFinished, this, &SignalForm::textBoxEditingFinished); |
|
|
|
|
QObject::connect(offset, &QLineEdit::editingFinished, this, &SignalForm::textBoxEditingFinished); |
|
|
|
|
QObject::connect(size, &QSpinBox::editingFinished, this, &SignalForm::changed); |
|
|
|
|
QObject::connect(sign, SIGNAL(activated(int)), SIGNAL(changed())); |
|
|
|
|
QObject::connect(endianness, SIGNAL(activated(int)), SIGNAL(changed())); |
|
|
|
|
QObject::connect(size, SIGNAL(valueChanged(int)), SIGNAL(changed())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SignalForm::textBoxEditingFinished() { |
|
|
|
|
QLineEdit *edit = qobject_cast<QLineEdit *>(QObject::sender()); |
|
|
|
|
if (edit && edit->isModified()) { |
|
|
|
|
edit->setModified(false); |
|
|
|
|
emit changed(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// SignalEdit
|
|
|
|
@ -108,17 +116,12 @@ SignalEdit::SignalEdit(int index, QWidget *parent) : form_idx(index), QWidget(pa |
|
|
|
|
hline->setFrameShadow(QFrame::Sunken); |
|
|
|
|
main_layout->addWidget(hline); |
|
|
|
|
|
|
|
|
|
save_timer = new QTimer(this); |
|
|
|
|
save_timer->setInterval(300); |
|
|
|
|
save_timer->setSingleShot(true); |
|
|
|
|
save_timer->callOnTimeout(this, &SignalEdit::saveSignal); |
|
|
|
|
|
|
|
|
|
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); |
|
|
|
|
}); |
|
|
|
|
QObject::connect(remove_btn, &QToolButton::clicked, [this]() { emit remove(sig); }); |
|
|
|
|
QObject::connect(form, &SignalForm::changed, [this]() { save_timer->start(); }); |
|
|
|
|
QObject::connect(form, &SignalForm::changed, this, &SignalEdit::saveSignal); |
|
|
|
|
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -133,8 +136,6 @@ void SignalEdit::setSignal(const QString &message_id, const Signal *signal) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SignalEdit::saveSignal() { |
|
|
|
|
if (!sig || !form->changed_by_user) return; |
|
|
|
|
|
|
|
|
|
Signal s = *sig; |
|
|
|
|
s.name = form->name->text().toStdString(); |
|
|
|
|
s.size = form->size->text().toInt(); |
|
|
|
@ -160,8 +161,9 @@ void SignalEdit::saveSignal() { |
|
|
|
|
s.lsb = bigEndianStartBitsIndex(bigEndianBitIndex(s.start_bit) + s.size - 1); |
|
|
|
|
s.msb = s.start_bit; |
|
|
|
|
} |
|
|
|
|
if (s != *sig) |
|
|
|
|
if (s != *sig) { |
|
|
|
|
emit save(this->sig, s); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SignalEdit::setChartOpened(bool opened) { |
|
|
|
@ -171,7 +173,6 @@ void SignalEdit::setChartOpened(bool opened) { |
|
|
|
|
|
|
|
|
|
void SignalEdit::updateForm(bool visible) { |
|
|
|
|
if (visible && sig) { |
|
|
|
|
form->changed_by_user = false; |
|
|
|
|
if (form->name->text() != sig->name.c_str()) { |
|
|
|
|
form->name->setText(sig->name.c_str()); |
|
|
|
|
} |
|
|
|
@ -182,7 +183,6 @@ void SignalEdit::updateForm(bool visible) { |
|
|
|
|
form->msb->setText(QString::number(sig->msb)); |
|
|
|
|
form->lsb->setText(QString::number(sig->lsb)); |
|
|
|
|
form->size->setValue(sig->size); |
|
|
|
|
form->changed_by_user = true; |
|
|
|
|
} |
|
|
|
|
form->setVisible(visible); |
|
|
|
|
icon->setText(visible ? "▼ " : "> "); |
|
|
|
|