From 530f3b3aa10aafaf22da10e53d3d243df26bf174 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 20 Sep 2018 01:00:10 +0200 Subject: [PATCH] Make it possible to switch camera angles by clicking on the preview displays. --- jpeg_frame_view.cpp | 9 +++++++++ jpeg_frame_view.h | 5 +++++ mainwindow.cpp | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/jpeg_frame_view.cpp b/jpeg_frame_view.cpp index 5ef2f0b..8e22f62 100644 --- a/jpeg_frame_view.cpp +++ b/jpeg_frame_view.cpp @@ -10,6 +10,8 @@ #include #include +#include + #include #include #include @@ -310,3 +312,10 @@ void JPEGFrameView::setDecodedFrame(std::shared_ptr frame) update(); }); } + +void JPEGFrameView::mousePressEvent(QMouseEvent *event) +{ + if (event->type() == QEvent::MouseButtonPress && event->button() == Qt::LeftButton) { + emit clicked(); + } +} diff --git a/jpeg_frame_view.h b/jpeg_frame_view.h index 5d97b07..2f31c1b 100644 --- a/jpeg_frame_view.h +++ b/jpeg_frame_view.h @@ -43,10 +43,15 @@ public: update_frame(); } + void mousePressEvent(QMouseEvent *event) override; + unsigned get_stream_idx() const { return stream_idx; } void setDecodedFrame(std::shared_ptr frame); +signals: + void clicked(); + protected: void initializeGL() override; void resizeGL(int width, int height) override; diff --git a/mainwindow.cpp b/mainwindow.cpp index 0e73b99..b1fa281 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -60,18 +60,22 @@ MainWindow::MainWindow() QShortcut *preview_1 = new QShortcut(QKeySequence(Qt::Key_1), this); connect(preview_1, &QShortcut::activated, ui->preview_1_btn, &QPushButton::click); + connect(ui->input1_display, &JPEGFrameView::clicked, ui->preview_1_btn, &QPushButton::click); connect(ui->preview_1_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(0); }); QShortcut *preview_2 = new QShortcut(QKeySequence(Qt::Key_2), this); connect(preview_2, &QShortcut::activated, ui->preview_2_btn, &QPushButton::click); + connect(ui->input2_display, &JPEGFrameView::clicked, ui->preview_2_btn, &QPushButton::click); connect(ui->preview_2_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(1); }); QShortcut *preview_3 = new QShortcut(QKeySequence(Qt::Key_3), this); connect(preview_3, &QShortcut::activated, ui->preview_3_btn, &QPushButton::click); + connect(ui->input3_display, &JPEGFrameView::clicked, ui->preview_3_btn, &QPushButton::click); connect(ui->preview_3_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(2); }); QShortcut *preview_4 = new QShortcut(QKeySequence(Qt::Key_4), this); connect(preview_4, &QShortcut::activated, ui->preview_4_btn, &QPushButton::click); + connect(ui->input4_display, &JPEGFrameView::clicked, ui->preview_4_btn, &QPushButton::click); connect(ui->preview_4_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(3); }); connect(ui->playlist_duplicate_btn, &QPushButton::clicked, this, &MainWindow::playlist_duplicate); -- 2.39.2