on xenial help sign in
Make unity8 and unity8-dash handle termination signals

This way the app gracefully exists, making things like "flush qml debugging when app finishes" work Approved by: Unity8 CI Bot, Gerry Boland

commit1da77ea0087c1a601035a9e701624012b0e9ce05 authorAlbert Astals Cid <albert.astals@canonical.com> dateFri 27 May 2016, 13:53 (10 years ago) parenteabd11beb17bc9
8 files changed+17−3
src/CMakeLists.txt+1 src/Dash/CMakeLists.txt+1 src/Dash/main.cpp+6 tools/unix-signal-handler.cpp → src/UnixSignalHandler.cpp+1−1 tools/unix-signal-handler.h → src/UnixSignalHandler.h src/main.cpp+6 tools/CMakeLists.txt+1−1 tools/scopetool.cpp+1−1
src/CMakeLists.txt+1
@@ -23,6 +23,7 @@ set(SOURCE_FILES
2323 ShellApplication.cpp
2424 ShellView.cpp
2525 UnityCommandLineParser.cpp
26+ UnixSignalHandler.cpp
2627 ${QML_FILES} # This is to make qml and image files appear in the IDE's project tree
2728)
2829
src/Dash/CMakeLists.txt+1
@@ -1,6 +1,7 @@
11set(DASH_SRCS
22 main.cpp
33 ../CachingNetworkManagerFactory.cpp
4+ ../UnixSignalHandler.cpp
45)
56
67if (ENABLE_TOUCH_EMULATION)
src/Dash/main.cpp+6
@@ -32,6 +32,7 @@
3232 #include "../MouseTouchAdaptor.h"
3333#endif
3434#include "../CachingNetworkManagerFactory.h"
35+#include "../UnixSignalHandler.h"
3536
3637int main(int argc, const char *argv[])
3738{
@@ -116,6 +117,11 @@ int main(int argc, const char *argv[])
116117 view->setSource(source);
117118 view->show();
118119
120+ UnixSignalHandler signalHandler([]{
121+ QGuiApplication::exit(0);
122+ });
123+ signalHandler.setupUnixSignalHandlers();
124+
119125 int result = application->exec();
120126
121127 delete view;
tools/unix-signal-handler.cpp → src/UnixSignalHandler.cpprenamed+1−1
@@ -16,7 +16,7 @@
1616 * Author: Marcus Tomlinson <marcus.tomlinson@canonical.com>
1717 */
1818
19−#include "unix-signal-handler.h"
19+#include "UnixSignalHandler.h"
2020
2121#include <QDebug>
2222
tools/unix-signal-handler.h → src/UnixSignalHandler.hrenamed

The content is the same.

src/main.cpp+6
@@ -17,6 +17,7 @@
1717// local
1818#include "ShellApplication.h"
1919#include "qmldebuggerutils.h"
20+#include "UnixSignalHandler.h"
2021
2122int main(int argc, const char *argv[])
2223{
@@ -32,6 +33,11 @@ int main(int argc, const char *argv[])
3233
3334 ShellApplication *application = new ShellApplication(argc, (char**)argv, isMirServer);
3435
36+ UnixSignalHandler signalHandler([]{
37+ QGuiApplication::exit(0);
38+ });
39+ signalHandler.setupUnixSignalHandlers();
40+
3541 int result = application->exec();
3642
3743 application->destroyResources();
tools/CMakeLists.txt+1−1
@@ -1,7 +1,7 @@
11add_executable(${SCOPE_TOOL}
22 scopetool.cpp
33 registry-tracker.cpp
4− unix-signal-handler.cpp
4+ ../src/UnixSignalHandler.cpp
55 )
66
77qt5_use_modules(${SCOPE_TOOL} Qml Quick)
tools/scopetool.cpp+1−1
@@ -32,7 +32,7 @@
3232// local
3333#include <paths.h>
3434#include "registry-tracker.h"
35−#include "unix-signal-handler.h"
35+#include "../src/UnixSignalHandler.h"
3636
3737
3838int main(int argc, char *argv[])