Files
openpilot-evo/tools/cabana/detailwidget.h
T
Dean Lee 9f47b3b517 Cabana: no popup when adding a new signal. (#26155)
* merge master

* GM: make loopback updated check more explicit

This previously checked if parser_pyx filled the defaultdict, now it checks the values in the list (same either way)

* merge master

* continue

* continue

* check for duplicate name

* check duplicate signal name in saveSignal

* check signal size

* size*8

* cleanup

* check size after push_back

* install qlog handler at end

* remove todo

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 80c565d9fe9b10a05e34ae867f7711389ae240d1
2022-10-23 13:38:38 -07:00

61 lines
1.4 KiB
C++

#pragma once
#include <QScrollArea>
#include <QTabBar>
#include "tools/cabana/binaryview.h"
#include "tools/cabana/historylog.h"
#include "tools/cabana/signaledit.h"
class EditMessageDialog : public QDialog {
Q_OBJECT
public:
EditMessageDialog(const QString &msg_id, const QString &title, int size, QWidget *parent);
QLineEdit *name_edit;
QSpinBox *size_spin;
};
class ScrollArea : public QScrollArea {
Q_OBJECT
public:
ScrollArea(QWidget *parent) : QScrollArea(parent) {}
bool eventFilter(QObject *obj, QEvent *ev) override;
void setWidget(QWidget *w);
};
class DetailWidget : public QWidget {
Q_OBJECT
public:
DetailWidget(QWidget *parent);
void setMessage(const QString &message_id);
void dbcMsgChanged(int show_form_idx = -1);
signals:
void showChart(const QString &msg_id, const Signal *sig);
void removeChart(const Signal *sig);
private:
void addSignal(int start_bit, int to);
void resizeSignal(const Signal *sig, int from, int to);
void saveSignal(const Signal *sig, const Signal &new_sig);
void removeSignal(const Signal *sig);
void editMsg();
void showForm();
void updateState();
QString msg_id;
QLabel *name_label, *time_label, *warning_label;
QWidget *warning_widget;
QPushButton *edit_btn;
QWidget *signals_container;
QTabBar *tabbar;
QStringList messages;
HistoryLog *history_log;
BinaryView *binary_view;
ScrollArea *scroll;
};