Skip to content

Commit 1943117

Browse files
author
Brian Kendall
committed
Can now be cleanly terminated using taskkill
1 parent c6c48c9 commit 1943117

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ int main(int argc, char *argv[])
99
{
1010
QApplication a(argc, argv);
1111
QMainWidget *mainWidget;
12-
//ControllerWindow w;
13-
//w.show();
1412

1513
if (!SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS)) {
1614
qWarning() << "Warning: failed to set process priority. Error:" << GetLastError();
@@ -22,6 +20,10 @@ int main(int argc, char *argv[])
2220

2321
int result = a.exec();
2422

23+
qDebug() << "Shutting down...";
24+
mainWidget->deinitialize();
2525
delete mainWidget;
26+
27+
qDebug() << "Done";
2628
return result;
2729
}

qmainwidget.cpp

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ QMainWidget::QMainWidget(QWidget *parent) :
4545
controllerRemapper->start();
4646
}
4747

48+
void QMainWidget::deinitialize()
49+
{
50+
if (controllerWindow) {
51+
controllerWindow->close();
52+
}
53+
54+
controllerRemapper->exit(0);
55+
controllerRemapper->wait(5000);
56+
}
57+
4858
void QMainWidget::createTrayIcon()
4959
{
5060
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
@@ -53,7 +63,7 @@ void QMainWidget::createTrayIcon()
5363
QAction *quitAction = new QAction("Shutdown xboxToVJoy", this);
5464

5565
connect(windowAction, SIGNAL(triggered()), this, SLOT(showControllerWindow()));
56-
connect(quitAction, SIGNAL(triggered()), this, SLOT(quit()));
66+
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
5767

5868
menu->addAction(windowAction);
5969
menu->addSeparator();
@@ -66,17 +76,6 @@ void QMainWidget::createTrayIcon()
6676
trayIcon->show();
6777
}
6878

69-
void QMainWidget::quit()
70-
{
71-
if (controllerWindow) {
72-
controllerWindow->close();
73-
}
74-
75-
controllerRemapper->exit(0);
76-
controllerRemapper->wait(5000);
77-
qApp->quit();
78-
}
79-
8079
void QMainWidget::error(QString msg)
8180
{
8281
QMessageBox msgBox;
@@ -104,3 +103,8 @@ void QMainWidget::controllerWindowDestroyed()
104103
controllerWindow = NULL;
105104
}
106105

106+
void QMainWidget::closeEvent(QCloseEvent *event)
107+
{
108+
qApp->quit();
109+
event->ignore();
110+
}

qmainwidget.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define QMAINWIDGET_H
33

44
#include <QWidget>
5+
#include <QCloseEvent>
56
#include "controllerremapper.h"
67
#include "controllerwindow.h"
78

@@ -10,18 +11,19 @@ class QMainWidget : public QWidget
1011
Q_OBJECT
1112
public:
1213
explicit QMainWidget(QWidget *parent = 0);
14+
void deinitialize();
1315

1416
signals:
1517

1618
public slots:
17-
void quit();
1819
void error(QString msg);
1920
void showControllerWindow();
2021
void controllerWindowDestroyed();
2122

2223
private:
2324
void createTrayIcon();
2425
void startControllerMapperThread();
26+
void closeEvent(QCloseEvent *event);
2527

2628
ControllerRemapper *controllerRemapper;
2729
ControllerWindow *controllerWindow;

0 commit comments

Comments
 (0)