Skip to content

Commit 6c73a92

Browse files
authored
ui/driverview: inherit from CameraWidget (commaai#29661)
1 parent 059cb01 commit 6c73a92

11 files changed

Lines changed: 25 additions & 77 deletions

File tree

selfdrive/ui/qt/offroad/driverview.cc

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,62 +3,33 @@
33
#include <algorithm>
44
#include <QPainter>
55

6-
#include "selfdrive/ui/qt/qt_window.h"
76
#include "selfdrive/ui/qt/util.h"
87

98
const int FACE_IMG_SIZE = 130;
109

11-
DriverViewWindow::DriverViewWindow(QWidget* parent) : QWidget(parent) {
12-
setAttribute(Qt::WA_OpaquePaintEvent);
13-
layout = new QStackedLayout(this);
14-
layout->setStackingMode(QStackedLayout::StackAll);
15-
16-
cameraView = new CameraWidget("camerad", VISION_STREAM_DRIVER, true, this);
17-
layout->addWidget(cameraView);
18-
19-
scene = new DriverViewScene(this);
20-
connect(cameraView, &CameraWidget::vipcThreadFrameReceived, scene, &DriverViewScene::frameUpdated);
21-
layout->addWidget(scene);
22-
layout->setCurrentWidget(scene);
23-
24-
QObject::connect(device(), &Device::interactiveTimeout, this, &DriverViewWindow::closeView);
25-
}
26-
27-
void DriverViewWindow::closeView() {
28-
if (isVisible()) {
29-
cameraView->stopVipcThread();
30-
emit done();
31-
}
32-
}
33-
34-
void DriverViewWindow::mouseReleaseEvent(QMouseEvent* e) {
35-
closeView();
36-
}
37-
38-
DriverViewScene::DriverViewScene(QWidget* parent) : QWidget(parent) {
10+
DriverViewWindow::DriverViewWindow(QWidget* parent) : CameraWidget("camerad", VISION_STREAM_DRIVER, true, parent) {
3911
face_img = loadPixmap("../assets/img_driver_face_static.png", {FACE_IMG_SIZE, FACE_IMG_SIZE});
12+
QObject::connect(device(), &Device::interactiveTimeout, this, &DriverViewWindow::done);
13+
QObject::connect(this, &CameraWidget::clicked, this, &DriverViewWindow::done);
4014
}
4115

42-
void DriverViewScene::showEvent(QShowEvent* event) {
43-
frame_updated = false;
16+
void DriverViewWindow::showEvent(QShowEvent* event) {
4417
params.putBool("IsDriverViewEnabled", true);
4518
device()->resetInteractiveTimeout(60);
19+
CameraWidget::showEvent(event);
4620
}
4721

48-
void DriverViewScene::hideEvent(QHideEvent* event) {
22+
void DriverViewWindow::hideEvent(QHideEvent* event) {
4923
params.putBool("IsDriverViewEnabled", false);
24+
stopVipcThread();
5025
}
5126

52-
void DriverViewScene::frameUpdated() {
53-
frame_updated = true;
54-
update();
55-
}
27+
void DriverViewWindow::paintGL() {
28+
CameraWidget::paintGL();
5629

57-
void DriverViewScene::paintEvent(QPaintEvent* event) {
5830
QPainter p(this);
59-
6031
// startup msg
61-
if (!frame_updated) {
32+
if (frames.empty()) {
6233
p.setPen(Qt::white);
6334
p.setRenderHint(QPainter::TextAntialiasing);
6435
p.setFont(InterFont(100, QFont::Bold));
@@ -70,7 +41,7 @@ void DriverViewScene::paintEvent(QPaintEvent* event) {
7041
cereal::DriverStateV2::Reader driver_state = sm["driverStateV2"].getDriverStateV2();
7142
cereal::DriverStateV2::DriverData::Reader driver_data;
7243

73-
is_rhd = driver_state.getWheelOnRightProb() > 0.5;
44+
bool is_rhd = driver_state.getWheelOnRightProb() > 0.5;
7445
driver_data = is_rhd ? driver_state.getRightDriverData() : driver_state.getLeftDriverData();
7546

7647
bool face_detected = driver_data.getFaceProb() > 0.7;
Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,21 @@
11
#pragma once
22

3-
#include <QStackedLayout>
4-
53
#include "selfdrive/ui/qt/widgets/cameraview.h"
64

7-
class DriverViewScene : public QWidget {
5+
class DriverViewWindow : public CameraWidget {
86
Q_OBJECT
97

108
public:
11-
explicit DriverViewScene(QWidget *parent);
9+
explicit DriverViewWindow(QWidget *parent);
1210

13-
public slots:
14-
void frameUpdated();
11+
signals:
12+
void done();
1513

1614
protected:
1715
void showEvent(QShowEvent *event) override;
1816
void hideEvent(QHideEvent *event) override;
19-
void paintEvent(QPaintEvent *event) override;
17+
void paintGL() override;
2018

21-
private:
2219
Params params;
2320
QPixmap face_img;
24-
bool is_rhd = false;
25-
bool frame_updated = false;
26-
};
27-
28-
class DriverViewWindow : public QWidget {
29-
Q_OBJECT
30-
31-
public:
32-
explicit DriverViewWindow(QWidget *parent);
33-
34-
signals:
35-
void done();
36-
37-
protected:
38-
void mouseReleaseEvent(QMouseEvent* e) override;
39-
void closeView();
40-
41-
CameraWidget *cameraView;
42-
DriverViewScene *scene;
43-
QStackedLayout *layout;
4421
};

selfdrive/ui/translations/main_de.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>Kamera startet</translation>

selfdrive/ui/translations/main_fr.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>démarrage de la caméra</translation>

selfdrive/ui/translations/main_ja.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>カメラを起動しています</translation>

selfdrive/ui/translations/main_ko.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>카메라 시작중</translation>

selfdrive/ui/translations/main_pt-BR.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>câmera iniciando</translation>

selfdrive/ui/translations/main_th.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>กำลังเปิดกล้อง</translation>

selfdrive/ui/translations/main_tr.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>kamera başlatılıyor</translation>

selfdrive/ui/translations/main_zh-CHS.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@
302302
</message>
303303
</context>
304304
<context>
305-
<name>DriverViewScene</name>
305+
<name>DriverViewWindow</name>
306306
<message>
307307
<source>camera starting</source>
308308
<translation>正在启动相机</translation>

0 commit comments

Comments
 (0)