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

commit3190fb9f305c8a5356091eb77adaa1a6784aadbc authorAlbert Astals Cid <albert.astals@canonical.com> dateWed 4 May 2016, 11:19 (10 years ago) parent7b76a57
8 files changed+16−2
src/CMakeLists.txt+1 src/Dash/CMakeLists.txt+1 src/Dash/main.cpp+6 src/main.cpp+6 tools/unix-signal-handler.cpp → src/unix-signal-handler.cpp tools/unix-signal-handler.h → src/unix-signal-handler.h tools/CMakeLists.txt+1−1 tools/scopetool.cpp+1−1
src/CMakeLists.txt+1
@@ -24,6 +24,7 @@ set(SOURCE_FILES
2424 ShellApplication.cpp
2525 ShellView.cpp
2626 UnityCommandLineParser.cpp
27+ unix-signal-handler.cpp
2728 ${QML_FILES} # This is to make qml and image files appear in the IDE's project tree
2829)
2930
src/Dash/CMakeLists.txt+1
@@ -1,6 +1,7 @@
11set(DASH_SRCS
22 main.cpp
33 ../CachingNetworkManagerFactory.cpp
4+ ../unix-signal-handler.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 "../unix-signal-handler.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 signal_handler([]{
121+ QGuiApplication::exit(0);
122+ });
123+ signal_handler.setupUnixSignalHandlers();
124+
119125 int result = application->exec();
120126
121127 delete view;
src/main.cpp+6
@@ -17,6 +17,7 @@
1717// local
1818#include "ShellApplication.h"
1919#include "qmldebuggerutils.h"
20+#include "unix-signal-handler.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 signal_handler([]{
37+ QGuiApplication::exit(0);
38+ });
39+ signal_handler.setupUnixSignalHandlers();
40+
3541 int result = application->exec();
3642
3743 application->destroyResources();
tools/unix-signal-handler.cpp → src/unix-signal-handler.cpprenamed

The content is the same.

tools/unix-signal-handler.h → src/unix-signal-handler.hrenamed

The content is the same.

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/unix-signal-handler.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/unix-signal-handler.h"
3636
3737
3838int main(int argc, char *argv[])