summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/rbutilqt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/rbutilqt.cpp')
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 9c9aff7569..4698b3fc58 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -102,6 +102,7 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
102 connect(ui.action_About, SIGNAL(triggered()), this, SLOT(about())); 102 connect(ui.action_About, SIGNAL(triggered()), this, SLOT(about()));
103 connect(ui.action_Help, SIGNAL(triggered()), this, SLOT(help())); 103 connect(ui.action_Help, SIGNAL(triggered()), this, SLOT(help()));
104 connect(ui.action_Configure, SIGNAL(triggered()), this, SLOT(configDialog())); 104 connect(ui.action_Configure, SIGNAL(triggered()), this, SLOT(configDialog()));
105 connect(ui.actionE_xit, SIGNAL(triggered()), this, SLOT(shutdown()));
105 connect(ui.buttonChangeDevice, SIGNAL(clicked()), this, SLOT(configDialog())); 106 connect(ui.buttonChangeDevice, SIGNAL(clicked()), this, SLOT(configDialog()));
106 connect(ui.buttonRockbox, SIGNAL(clicked()), this, SLOT(installBtn())); 107 connect(ui.buttonRockbox, SIGNAL(clicked()), this, SLOT(installBtn()));
107 connect(ui.buttonBootloader, SIGNAL(clicked()), this, SLOT(installBootloaderBtn())); 108 connect(ui.buttonBootloader, SIGNAL(clicked()), this, SLOT(installBootloaderBtn()));
@@ -142,6 +143,16 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
142} 143}
143 144
144 145
146void RbUtilQt::shutdown(void)
147{
148 // restore default message handler to prevent trace accesses during
149 // object destruction -- the trace object could already be destroyed.
150 // Fixes segfaults on exit.
151 qInstallMsgHandler(0);
152 this->close();
153}
154
155
145void RbUtilQt::trace(void) 156void RbUtilQt::trace(void)
146{ 157{
147 SysTrace wnd(this); 158 SysTrace wnd(this);