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

WIP: try to properly destroy mpv

parent 371bc936
Branches
Étiquettes
1 requête de fusion!186Add the Qt window module as an alternative to the SDL2 module
...@@ -7,4 +7,15 @@ MainWindow::MainWindow(struct module_qt_window_s *qt_window, QWidget *parent) ...@@ -7,4 +7,15 @@ MainWindow::MainWindow(struct module_qt_window_s *qt_window, QWidget *parent)
connect(qt_window->mpv_widget, &MpvWidget::titleChanged, this, &MainWindow::updateWindowTitle); connect(qt_window->mpv_widget, &MpvWidget::titleChanged, this, &MainWindow::updateWindowTitle);
setCentralWidget(qt_window->mpv_widget); setCentralWidget(qt_window->mpv_widget);
setFocusPolicy(Qt::StrongFocus); setFocusPolicy(Qt::StrongFocus);
connect(this, &MainWindow::emitCloseMpv, this, &MainWindow::__closeMpv, Qt::QueuedConnection);
}
void MainWindow::closeMpv(bool* exited) noexcept {
emit emitCloseMpv(exited);
}
void MainWindow::__closeMpv(bool* exited){
delete centralWidget();
*exited = true;
} }
...@@ -15,4 +15,13 @@ public slots: ...@@ -15,4 +15,13 @@ public slots:
inline void updateWindowTitle(QString str) noexcept { inline void updateWindowTitle(QString str) noexcept {
setWindowTitle(str); setWindowTitle(str);
} }
signals:
void emitCloseMpv(bool*);
private slots:
void __closeMpv(bool*);
public:
void closeMpv(bool*) noexcept;
}; };
...@@ -10,7 +10,7 @@ class MpvWidget Q_DECL_FINAL : public QOpenGLWidget { ...@@ -10,7 +10,7 @@ class MpvWidget Q_DECL_FINAL : public QOpenGLWidget {
Q_OBJECT Q_OBJECT
public: public:
MpvWidget(struct queue *queue, lkt_db *db, struct module_reg *reg, QWidget *parent); MpvWidget(struct queue *queue, lkt_db *db, struct module_reg *reg, QWidget *parent);
virtual ~MpvWidget() override; ~MpvWidget() override;
void command(const QVariant &params); void command(const QVariant &params);
void setProperty(const QString &name, const QVariant &value); void setProperty(const QString &name, const QVariant &value);
QVariant getProperty(const QString &name) const; QVariant getProperty(const QString &name) const;
......
...@@ -65,6 +65,10 @@ ___module_qt_window_toggle_pause(struct module_qt_window_s *win) ...@@ -65,6 +65,10 @@ ___module_qt_window_toggle_pause(struct module_qt_window_s *win)
bool bool
___module_qt_window_close(struct module_qt_window_s *win) ___module_qt_window_close(struct module_qt_window_s *win)
{ {
delete(win->main_window); bool exited = false;
win->main_window->closeMpv(&exited);
while (!exited)
sleep(1);
delete win->main_window;
return true; return true;
} }
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