Skip to content
Extraits de code Groupes Projets
Valider 9c3d01ac rédigé par Elliu's avatar Elliu
Parcourir les fichiers

WIP: try to properly destroy mpv

parent c1f87987
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #2647 en échec
Ce commit fait partie de la requête de fusion !186. Les commentaires créés ici seront créés dans le contexte de cette requête de fusion.
......@@ -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);
setCentralWidget(qt_window->mpv_widget);
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:
inline void updateWindowTitle(QString str) noexcept {
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 {
Q_OBJECT
public:
MpvWidget(struct queue *queue, lkt_db *db, struct module_reg *reg, QWidget *parent);
virtual ~MpvWidget() override;
~MpvWidget();
void command(const QVariant &params);
void setProperty(const QString &name, const QVariant &value);
QVariant getProperty(const QString &name) const;
......
......@@ -65,6 +65,10 @@ ___module_qt_window_toggle_pause(struct module_qt_window_s *win)
bool
___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;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter