promote the gleswidget to centralwidget via the .ui file
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
#include <QOpenGLFunctions>
|
#include <QOpenGLFunctions>
|
||||||
#include <QOpenGLWidget>
|
#include <QOpenGLWidget>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@@ -16,7 +18,7 @@ public:
|
|||||||
void initializeGL() override;
|
void initializeGL() override;
|
||||||
void paintGL() override;
|
void paintGL() override;
|
||||||
GLESWidget(QWidget* parent = nullptr)
|
GLESWidget(QWidget* parent = nullptr)
|
||||||
: QOpenGLWidget(parent)
|
: QOpenGLWidget(parent), QOpenGLFunctions()
|
||||||
{
|
{
|
||||||
setMinimumSize(16, 16);
|
setMinimumSize(16, 16);
|
||||||
}
|
}
|
||||||
|
@@ -42,22 +42,19 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
|
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
video_setblit(qt_blit);
|
video_setblit(qt_blit);
|
||||||
|
ui->glesWidget->setMouseTracking(true);
|
||||||
|
|
||||||
this->hw_widget = new GLESWidget(this);
|
connect(this, &MainWindow::blitToWidget, ui->glesWidget, &GLESWidget::qt_real_blit);
|
||||||
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::showMessageForNonQtThread, this, &MainWindow::showMessage_, Qt::BlockingQueuedConnection);
|
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) {
|
connect(this, &MainWindow::setMouseCapture, this, [this](bool state) {
|
||||||
mouse_capture = state ? 1 : 0;
|
mouse_capture = state ? 1 : 0;
|
||||||
qt_mouse_capture(mouse_capture);
|
qt_mouse_capture(mouse_capture);
|
||||||
if (mouse_capture) hw_widget->grabMouse();
|
if (mouse_capture) ui->glesWidget->grabMouse();
|
||||||
else hw_widget->releaseMouse();
|
else ui->glesWidget->releaseMouse();
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(this, &MainWindow::setFullscreen, this, [this](bool state) {
|
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) {
|
connect(this, &MainWindow::resizeContents, this, [this](int w, int h) {
|
||||||
this->hw_widget->resize(w, h);
|
ui->glesWidget->resize(w, h);
|
||||||
this->resize(w, h + menuBar()->height() + statusBar()->height());
|
resize(w, h + menuBar()->height() + statusBar()->height());
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(ui->menubar, &QMenuBar::triggered, this, [] {
|
connect(ui->menubar, &QMenuBar::triggered, this, [] {
|
||||||
config_save();
|
config_save();
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(this, &MainWindow::updateStatusBarPanes, ui->machineStatus, &MachineStatus::refresh);
|
// connect(this, &MainWindow::updateStatusBarPanes, ui->machineStatus, &MachineStatus::refresh);
|
||||||
connect(this, &MainWindow::updateStatusBarActivity, ui->machineStatus, &MachineStatus::setActivity);
|
// connect(this, &MainWindow::updateStatusBarActivity, ui->machineStatus, &MachineStatus::setActivity);
|
||||||
connect(this, &MainWindow::updateStatusBarEmpty, ui->machineStatus, &MachineStatus::setEmpty);
|
// connect(this, &MainWindow::updateStatusBarEmpty, ui->machineStatus, &MachineStatus::setEmpty);
|
||||||
|
|
||||||
ui->actionKeyboard_requires_capture->setChecked(kbd_req_capture);
|
ui->actionKeyboard_requires_capture->setChecked(kbd_req_capture);
|
||||||
ui->actionRight_CTRL_is_left_ALT->setChecked(rctrl_is_lalt);
|
ui->actionRight_CTRL_is_left_ALT->setChecked(rctrl_is_lalt);
|
||||||
|
@@ -9,8 +9,6 @@ namespace Ui {
|
|||||||
class MainWindow;
|
class MainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
class GLESWidget;
|
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -49,17 +47,7 @@ protected:
|
|||||||
void keyPressEvent(QKeyEvent* event) override;
|
void keyPressEvent(QKeyEvent* event) override;
|
||||||
void keyReleaseEvent(QKeyEvent* event) override;
|
void keyReleaseEvent(QKeyEvent* event) override;
|
||||||
private:
|
private:
|
||||||
struct DeltaPos {
|
|
||||||
int x = 0;
|
|
||||||
int y = 0;
|
|
||||||
int z = 0;
|
|
||||||
};
|
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
DeltaPos mouseDelta;
|
|
||||||
QWindow* sdl_wrapped_window;
|
|
||||||
QWidget* sdl_wrapped_widget;
|
|
||||||
GLESWidget* hw_widget;
|
|
||||||
QTimer* sdl_timer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QT_MAINWINDOW_HPP
|
#endif // QT_MAINWINDOW_HPP
|
||||||
|
@@ -37,7 +37,7 @@
|
|||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="MachineStatus" name="machineStatus" native="true"/>
|
<widget class="GLESWidget" name="glesWidget"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -143,10 +143,9 @@
|
|||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>MachineStatus</class>
|
<class>GLESWidget</class>
|
||||||
<extends>QWidget</extends>
|
<extends>QOpenGLWidget</extends>
|
||||||
<header>qt_machinestatus.hpp</header>
|
<header>qt_gleswidget.hpp</header>
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
Reference in New Issue
Block a user