From 016ff0f59d6be36b09a74dd8c3b00b083e3df92d Mon Sep 17 00:00:00 2001 From: manjaro-xfce Date: Fri, 12 Apr 2024 18:16:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3stdio=E5=B0=81=E8=A3=85?= =?UTF-8?q?=E5=99=A8=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp | 14 +++++++++++++- modules/wrappers/wrapper_stdio/dlgwrpstdio.h | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp b/modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp index 7ded4d3..a0ac23e 100644 --- a/modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp +++ b/modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp @@ -69,7 +69,7 @@ void DlgWrpStdio::run() { m_plistenThd = new listen_thread(this); connect(m_plistenThd,&listen_thread::quit_app, - this,&DlgWrpStdio::close); + this,&DlgWrpStdio::slot_quit,Qt::QueuedConnection); connect(m_plistenThd,&listen_thread::new_package, this,&DlgWrpStdio::slot_newPackage ); @@ -314,3 +314,15 @@ void DlgWrpStdio::saveIni() QString plainTextEdit_extraEnv = ui->plainTextEdit_extraEnv->toPlainText(); settings.setValue("settings/plainTextEdit_extraEnv",plainTextEdit_extraEnv); } + +void DlgWrpStdio::slot_quit() +{ + if (m_process) + { + m_process->terminate(); + m_process->waitForFinished(1000); + m_process->kill(); + m_process->waitForFinished(1000); + } + close(); +} diff --git a/modules/wrappers/wrapper_stdio/dlgwrpstdio.h b/modules/wrappers/wrapper_stdio/dlgwrpstdio.h index 165a027..738df7d 100644 --- a/modules/wrappers/wrapper_stdio/dlgwrpstdio.h +++ b/modules/wrappers/wrapper_stdio/dlgwrpstdio.h @@ -31,8 +31,9 @@ private slots: void slot_readyReadStandardOutput(); void slot_readyReadStandardError(); void slot_sended(qint64 ); - void slot_started( ); + void slot_started(); void slot_stopped(); + void slot_quit(); void on_pushButton_start_clicked(); void on_toolButton_path_clicked(); void on_toolButton_workingDir_clicked(); -- GitLab