|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <QScrollArea>
|
|
|
|
#include <QTabBar>
|
|
|
|
#include <QVBoxLayout>
|
|
|
|
|
|
|
|
#include "tools/cabana/binaryview.h"
|
|
|
|
#include "tools/cabana/historylog.h"
|
|
|
|
#include "tools/cabana/signaledit.h"
|
|
|
|
|
|
|
|
class TitleFrame : public QFrame {
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
TitleFrame(QWidget *parent) : QFrame(parent) {}
|
|
|
|
void mouseDoubleClickEvent(QMouseEvent *e) { emit doubleClicked(); }
|
|
|
|
signals:
|
|
|
|
void doubleClicked();
|
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
|
|
|
void binaryViewMoved(bool in);
|
|
|
|
|
|
|
|
private:
|
|
|
|
void showTabBarContextMenu(const QPoint &pt);
|
|
|
|
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();
|
|
|
|
void moveBinaryView();
|
|
|
|
|
|
|
|
QString msg_id;
|
|
|
|
QLabel *name_label, *time_label, *warning_label;
|
|
|
|
QWidget *warning_widget;
|
|
|
|
QPushButton *edit_btn;
|
|
|
|
QWidget *signals_container;
|
|
|
|
QTabBar *tabbar;
|
|
|
|
QHBoxLayout *main_layout;
|
|
|
|
QVBoxLayout *right_column;
|
|
|
|
bool binview_in_left_col = false;
|
|
|
|
QWidget *binary_view_container;
|
|
|
|
QPushButton *split_btn;
|
|
|
|
HistoryLog *history_log;
|
|
|
|
BinaryView *binary_view;
|
|
|
|
ScrollArea *scroll;
|
|
|
|
};
|