cabana: more compact form (#26985)

pull/26988/head
Dean Lee 2 years ago committed by GitHub
parent a43a243b6e
commit 2ef127ebc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 52
      tools/cabana/signaledit.cc
  2. 2
      tools/cabana/signaledit.h

@ -9,50 +9,56 @@
// SignalForm
SignalForm::SignalForm(QWidget *parent) : QWidget(parent) {
QFormLayout *form_layout = new QFormLayout(this);
auto double_validator = new QDoubleValidator(this);
QVBoxLayout *main_layout = new QVBoxLayout(this);
QFormLayout *form_layout = new QFormLayout();
main_layout->addLayout(form_layout);
name = new QLineEdit();
name->setValidator(new QRegExpValidator(QRegExp("^(\\w+)"), name));
form_layout->addRow(tr("Name"), name);
QHBoxLayout *hl = new QHBoxLayout(this);
size = new QSpinBox();
size->setMinimum(1);
form_layout->addRow(tr("Size"), size);
hl->addWidget(size);
endianness = new QComboBox();
endianness->addItems({"Little", "Big"});
form_layout->addRow(tr("Endianness"), endianness);
form_layout->addRow(tr("lsb"), lsb = new QLabel());
form_layout->addRow(tr("msb"), msb = new QLabel());
endianness->addItems({"Little Endianness", "Big Endianness"});
hl->addWidget(endianness);
sign = new QComboBox();
sign->addItems({"Signed", "Unsigned"});
form_layout->addRow(tr("sign"), sign);
auto double_validator = new QDoubleValidator(this);
hl->addWidget(sign);
form_layout->addRow(tr("Size"), hl);
offset = new QLineEdit();
offset->setValidator(double_validator);
form_layout->addRow(tr("Offset"), offset);
factor = new QLineEdit();
factor->setValidator(double_validator);
form_layout->addRow(tr("Factor"), factor);
offset = new QLineEdit();
offset->setValidator(double_validator);
form_layout->addRow(tr("Offset"), offset);
expand_btn = new QToolButton(this);
expand_btn->setText(tr("more..."));
main_layout->addWidget(expand_btn, 0, Qt::AlignRight);
// TODO: parse the following parameters in opendbc
QWidget *extra_container = new QWidget(this);
QFormLayout *extra_layout = new QFormLayout(extra_container);
unit = new QLineEdit();
form_layout->addRow(tr("Unit"), unit);
extra_layout->addRow(tr("Unit"), unit);
comment = new QLineEdit();
form_layout->addRow(tr("Comment"), comment);
extra_layout->addRow(tr("Comment"), comment);
min_val = new QLineEdit();
min_val->setValidator(double_validator);
form_layout->addRow(tr("Minimum value"), min_val);
extra_layout->addRow(tr("Minimum value"), min_val);
max_val = new QLineEdit();
max_val->setValidator(double_validator);
form_layout->addRow(tr("Maximum value"), max_val);
extra_layout->addRow(tr("Maximum value"), max_val);
val_desc = new QLineEdit();
form_layout->addRow(tr("Value descriptions"), val_desc);
extra_layout->addRow(tr("Value descriptions"), val_desc);
main_layout->addWidget(extra_container);
extra_container->setVisible(false);
QObject::connect(name, &QLineEdit::editingFinished, this, &SignalForm::textBoxEditingFinished);
QObject::connect(factor, &QLineEdit::editingFinished, this, &SignalForm::textBoxEditingFinished);
@ -60,6 +66,10 @@ SignalForm::SignalForm(QWidget *parent) : QWidget(parent) {
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(expand_btn, &QToolButton::clicked, [=]() {
extra_container->setVisible(!extra_container->isVisible());
expand_btn->setText(extra_container->isVisible() ? tr("less...") : tr("more..."));
});
}
void SignalForm::textBoxEditingFinished() {
@ -180,8 +190,6 @@ void SignalEdit::updateForm(bool visible) {
form->sign->setCurrentIndex(sig->is_signed ? 0 : 1);
form->factor->setText(QString::number(sig->factor));
form->offset->setText(QString::number(sig->offset));
form->msb->setText(QString::number(sig->msb));
form->lsb->setText(QString::number(sig->lsb));
form->size->setValue(sig->size);
}
form->setVisible(visible);

@ -17,9 +17,9 @@ public:
void textBoxEditingFinished();
QLineEdit *name, *unit, *comment, *val_desc, *offset, *factor, *min_val, *max_val;
QLabel *lsb, *msb;
QSpinBox *size;
QComboBox *sign, *endianness;
QToolButton *expand_btn;
signals:
void changed();

Loading…
Cancel
Save