mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-10-01 03:43:51 +08:00
Cabana: drag to adjust signal size (#26172)
* drag to adjust signal size
* rename
* override setSelection
* use signal color as selection color while resing
* helper funtion
* hide tooltip if not in signal
* cleanup
* cabana: remove unused metatype (#26175)
remove unused metatype
* cabana: improve signal highlight on hover (#26161)
* just change font color
* merge master
* cleanup
old-commit-hash: d6a0f1c25a
This commit is contained in:
@@ -12,10 +12,11 @@ public:
|
||||
BinaryItemDelegate(QObject *parent);
|
||||
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
||||
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
||||
void setSelectionColor(const QColor &color) { selection_color = color; }
|
||||
|
||||
private:
|
||||
QFont small_font, hex_font;
|
||||
QColor highlight_color;
|
||||
QColor selection_color;
|
||||
};
|
||||
|
||||
class BinaryViewModel : public QAbstractTableModel {
|
||||
@@ -48,13 +49,6 @@ private:
|
||||
std::vector<Item> items;
|
||||
};
|
||||
|
||||
// the default QItemSelectionModel does not support our selection mode.
|
||||
class BinarySelectionModel : public QItemSelectionModel {
|
||||
public:
|
||||
BinarySelectionModel(QAbstractItemModel *model = nullptr) : QItemSelectionModel(model) {}
|
||||
void select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) override;
|
||||
};
|
||||
|
||||
class BinaryView : public QTableView {
|
||||
Q_OBJECT
|
||||
|
||||
@@ -66,15 +60,21 @@ public:
|
||||
const Signal *hoveredSignal() const { return hovered_sig; }
|
||||
|
||||
signals:
|
||||
void cellsSelected(int start_bit, int size);
|
||||
void signalHovered(const Signal *sig);
|
||||
void addSignal(int from, int size);
|
||||
void resizeSignal(const Signal *sig, int from, int size);
|
||||
|
||||
private:
|
||||
void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
void leaveEvent(QEvent *event) override;
|
||||
const Signal *getResizingSignal() const;
|
||||
|
||||
QString msg_id;
|
||||
QModelIndex anchor_index;
|
||||
BinaryViewModel *model;
|
||||
BinaryItemDelegate *delegate;
|
||||
const Signal *hovered_sig = nullptr;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user