From 6c2d7bef4a657e2f86649042c4dc65f827ee5390 Mon Sep 17 00:00:00 2001 From: "Joakim L. Gilje" Date: Tue, 30 Nov 2021 21:18:25 +0100 Subject: [PATCH] promote the gleswidget to centralwidget via the .ui file --- src/qt/qt_gleswidget.hpp | 4 +++- src/qt/qt_mainwindow.cpp | 23 ++++++++++------------- src/qt/qt_mainwindow.hpp | 12 ------------ src/qt/qt_mainwindow.ui | 9 ++++----- 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/qt/qt_gleswidget.hpp b/src/qt/qt_gleswidget.hpp index 76701c917..2ac888724 100644 --- a/src/qt/qt_gleswidget.hpp +++ b/src/qt/qt_gleswidget.hpp @@ -1,3 +1,5 @@ +#pragma once + #include #include #include @@ -16,7 +18,7 @@ public: void initializeGL() override; void paintGL() override; GLESWidget(QWidget* parent = nullptr) - : QOpenGLWidget(parent) + : QOpenGLWidget(parent), QOpenGLFunctions() { setMinimumSize(16, 16); } diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 44c07fc58..c7c643ce6 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -42,22 +42,19 @@ MainWindow::MainWindow(QWidget *parent) : ui->setupUi(this); video_setblit(qt_blit); + ui->glesWidget->setMouseTracking(true); - this->hw_widget = new GLESWidget(this); - this->hw_widget->setMouseTracking(true); - this->hw_widget->setGeometry(QRect(this->menuWidget() ? QPoint(0,this->menuWidget()->size().height()) : QPoint(0,0), QSize(640, 480))); - this->setCentralWidget(this->hw_widget); - connect(this, &MainWindow::blitToWidget, (GLESWidget*)this->hw_widget, &GLESWidget::qt_real_blit); + connect(this, &MainWindow::blitToWidget, ui->glesWidget, &GLESWidget::qt_real_blit); connect(this, &MainWindow::showMessageForNonQtThread, this, &MainWindow::showMessage_, Qt::BlockingQueuedConnection); - connect(this, &MainWindow::pollMouse, hw_widget, &GLESWidget::qt_mouse_poll); + connect(this, &MainWindow::pollMouse, ui->glesWidget, &GLESWidget::qt_mouse_poll); connect(this, &MainWindow::setMouseCapture, this, [this](bool state) { mouse_capture = state ? 1 : 0; qt_mouse_capture(mouse_capture); - if (mouse_capture) hw_widget->grabMouse(); - else hw_widget->releaseMouse(); + if (mouse_capture) ui->glesWidget->grabMouse(); + else ui->glesWidget->releaseMouse(); }); connect(this, &MainWindow::setFullscreen, this, [this](bool state) { @@ -67,17 +64,17 @@ MainWindow::MainWindow(QWidget *parent) : }); connect(this, &MainWindow::resizeContents, this, [this](int w, int h) { - this->hw_widget->resize(w, h); - this->resize(w, h + menuBar()->height() + statusBar()->height()); + ui->glesWidget->resize(w, h); + resize(w, h + menuBar()->height() + statusBar()->height()); }); connect(ui->menubar, &QMenuBar::triggered, this, [] { config_save(); }); - connect(this, &MainWindow::updateStatusBarPanes, ui->machineStatus, &MachineStatus::refresh); - connect(this, &MainWindow::updateStatusBarActivity, ui->machineStatus, &MachineStatus::setActivity); - connect(this, &MainWindow::updateStatusBarEmpty, ui->machineStatus, &MachineStatus::setEmpty); +// connect(this, &MainWindow::updateStatusBarPanes, ui->machineStatus, &MachineStatus::refresh); +// connect(this, &MainWindow::updateStatusBarActivity, ui->machineStatus, &MachineStatus::setActivity); +// connect(this, &MainWindow::updateStatusBarEmpty, ui->machineStatus, &MachineStatus::setEmpty); ui->actionKeyboard_requires_capture->setChecked(kbd_req_capture); ui->actionRight_CTRL_is_left_ALT->setChecked(rctrl_is_lalt); diff --git a/src/qt/qt_mainwindow.hpp b/src/qt/qt_mainwindow.hpp index 173caa8b1..d3356b8e6 100644 --- a/src/qt/qt_mainwindow.hpp +++ b/src/qt/qt_mainwindow.hpp @@ -9,8 +9,6 @@ namespace Ui { class MainWindow; } -class GLESWidget; - class MainWindow : public QMainWindow { Q_OBJECT @@ -49,17 +47,7 @@ protected: void keyPressEvent(QKeyEvent* event) override; void keyReleaseEvent(QKeyEvent* event) override; private: - struct DeltaPos { - int x = 0; - int y = 0; - int z = 0; - }; Ui::MainWindow *ui; - DeltaPos mouseDelta; - QWindow* sdl_wrapped_window; - QWidget* sdl_wrapped_widget; - GLESWidget* hw_widget; - QTimer* sdl_timer; }; #endif // QT_MAINWINDOW_HPP diff --git a/src/qt/qt_mainwindow.ui b/src/qt/qt_mainwindow.ui index 0e854a8f2..9c055ef62 100644 --- a/src/qt/qt_mainwindow.ui +++ b/src/qt/qt_mainwindow.ui @@ -37,7 +37,7 @@ 0 - + @@ -143,10 +143,9 @@ - MachineStatus - QWidget -
qt_machinestatus.hpp
- 1 + GLESWidget + QOpenGLWidget +
qt_gleswidget.hpp