Skip to content
Extraits de code Groupes Projets
Vérifiée Valider 24f66e15 rédigé par Elliu's avatar Elliu
Parcourir les fichiers

Add a MainWindow to have mouse and keyboard passed to MPV

parent 0e25a4b3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!186Add the Qt window module as an alternative to the SDL2 module
......@@ -151,6 +151,7 @@ set(lektor_module_SOURCES
src/module/qt_window/mpvwidget.cpp
src/module/qt_window/mpvwidget_interface.cpp
src/module/qt_window/qthelper.cpp
src/module/qt_window/mainwindow.cpp
src/module/thread.c
)
......
......@@ -3,15 +3,19 @@
#if defined( __cplusplus)
extern "C" {
class MpvWidget;
#define DECLARE_CPP_CLASS(c) class c;
#else
typedef struct MpvWidget MpvWidget;
#define DECLARE_CPP_CLASS(c) typedef struct c c;
#endif
DECLARE_CPP_CLASS(MpvWidget)
DECLARE_CPP_CLASS(MainWindow)
#undef DECLARE_CPP_CLASS
#include <lektor/common.h>
#include "thread.h"
struct module_qt_window_s {
MainWindow* main_window;
MpvWidget* mpv_widget;
/* Thread related */
......
#include "mainwindow.hh"
MainWindow::MainWindow(struct module_qt_window_s* qt_window, QWidget *parent) :
QMainWindow(parent)
{
qt_window->mpv_widget = new MpvWidget(qt_window->queue, qt_window->db, this);
}
#ifndef __LKT_MODULE_QT_WINDOW_MAINWINDOW__
#define __LKT_MODULE_QT_WINDOW_MAINWINDOW__
#include <QtWidgets/QWidget>
#include <QtGui>
#include <QMainWindow>
#include "../module_qt_window.h"
#include "mpvwidget.hh"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(struct module_qt_window_s *qt_window, QWidget *parent = 0);
};
#endif // __LKT_MODULE_QT_WINDOW_MAINWINDOW__
......@@ -20,8 +20,8 @@ static void *get_proc_address(void *ctx, const char *name) {
return reinterpret_cast<void *>(glctx->getProcAddress(QByteArray(name)));
}
MpvWidget::MpvWidget(struct queue *queue, lkt_db *db)
: QOpenGLWidget(),
MpvWidget::MpvWidget(struct queue *queue, lkt_db *db, QWidget* parent)
: QOpenGLWidget(parent),
m_queue(queue),
m_db(db)
{
......
......@@ -14,7 +14,7 @@ class MpvWidget Q_DECL_FINAL: public QOpenGLWidget
{
Q_OBJECT
public:
MpvWidget(struct queue *queue, lkt_db *db);
MpvWidget(struct queue *queue, lkt_db *db, QWidget* parent);
~MpvWidget();
void command(const QVariant& params);
void setProperty(const QString& name, const QVariant& value);
......
#include "mpvwidget_interface.h"
#include "mpvwidget.hh"
#include "mainwindow.hh"
#include <QApplication>
......@@ -12,8 +12,7 @@ ___create_mpv_widget(struct poller_thread_arg *arg){
int argc = 0;
QApplication a(argc, NULL);
setlocale(LC_NUMERIC, "C");
qt_window->mpv_widget = new MpvWidget(qt_window->queue, qt_window->db);
qt_window->mpv_widget->show();
qt_window->main_window = new MainWindow(qt_window);
a.exec();
return NULL;
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter