promote the gleswidget to centralwidget via the .ui file

This commit is contained in:
Joakim L. Gilje
2021-11-30 21:18:25 +01:00
parent 7e38ff7d4d
commit 6c2d7bef4a
4 changed files with 17 additions and 31 deletions

View File

@@ -1,3 +1,5 @@
#pragma once
#include <QOpenGLFunctions>
#include <QOpenGLWidget>
#include <QPainter>
@@ -16,7 +18,7 @@ public:
void initializeGL() override;
void paintGL() override;
GLESWidget(QWidget* parent = nullptr)
: QOpenGLWidget(parent)
: QOpenGLWidget(parent), QOpenGLFunctions()
{
setMinimumSize(16, 16);
}

View File

@@ -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);

View File

@@ -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

View File

@@ -37,7 +37,7 @@
<number>0</number>
</property>
<item>
<widget class="MachineStatus" name="machineStatus" native="true"/>
<widget class="GLESWidget" name="glesWidget"/>
</item>
</layout>
</widget>
@@ -143,10 +143,9 @@
</widget>
<customwidgets>
<customwidget>
<class>MachineStatus</class>
<extends>QWidget</extends>
<header>qt_machinestatus.hpp</header>
<container>1</container>
<class>GLESWidget</class>
<extends>QOpenGLWidget</extends>
<header>qt_gleswidget.hpp</header>
</customwidget>
</customwidgets>
<resources/>