From 39bd0a449c88cf1365c8cce810df973f533c01e2 Mon Sep 17 00:00:00 2001 From: Dan Beer Date: Tue, 11 Oct 2022 08:33:18 -0500 Subject: [PATCH 1/3] Updated signal call to close when CTRL+C invoked in terminal. --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 8d6aaf2..2d64b72 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,7 +84,7 @@ int main(int argc, char **argv) swri_console::ConsoleMaster master(argc, argv); master.createNewWindow(); - app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit())); + app.connect(&app, SIGNAL(destroyed(QObject*)), &app, SLOT(objectDestroyed())); int result = app.exec(); return result; } From 0de475348d4561e7961b7c2c1500da1536998ba8 Mon Sep 17 00:00:00 2001 From: Dan Beer Date: Tue, 11 Oct 2022 09:25:54 -0500 Subject: [PATCH 2/3] Removed QOjbect pointer added in error. --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 2d64b72..975f423 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,7 +84,7 @@ int main(int argc, char **argv) swri_console::ConsoleMaster master(argc, argv); master.createNewWindow(); - app.connect(&app, SIGNAL(destroyed(QObject*)), &app, SLOT(objectDestroyed())); + app.connect(&app, SIGNAL(destroyed()), &app, SLOT(objectDestroyed())); int result = app.exec(); return result; } From 5fd3a4b763df3fdb7d02e1465b7ca6d777b329bc Mon Sep 17 00:00:00 2001 From: Dan Beer Date: Tue, 11 Oct 2022 09:34:15 -0500 Subject: [PATCH 3/3] Replaced previous method of closing to make use of signalhanlder function. --- src/main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 975f423..5256993 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -73,6 +74,12 @@ void loadFonts() } } +void sigHandler(int s) +{ + std::signal(s, SIG_DFL); + qApp->quit(); +} + int main(int argc, char **argv) { QApplication app(argc, argv); @@ -84,7 +91,10 @@ int main(int argc, char **argv) swri_console::ConsoleMaster master(argc, argv); master.createNewWindow(); - app.connect(&app, SIGNAL(destroyed()), &app, SLOT(objectDestroyed())); + + std::signal(SIGINT, sigHandler); + std::signal(SIGTERM, sigHandler); + int result = app.exec(); return result; }