diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2016-05-14 20:52:28 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2016-05-14 21:28:06 +0200 |
| commit | ec3cf46cec1e2f556d201fccad808dbdd2c84f66 (patch) | |
| tree | a0471112f0cf76a19bbdee5504cadf7f6bbfc971 /src | |
| parent | a378a0d752e9ef77bd72a77155b83d75c9dc2a86 (diff) | |
| download | manager-ec3cf46cec1e2f556d201fccad808dbdd2c84f66.tar.gz manager-ec3cf46cec1e2f556d201fccad808dbdd2c84f66.zip | |
Quit IRC sanely on exit detach/update and put "Updating..." into quit
message with exit update
Diffstat (limited to 'src')
| -rw-r--r-- | src/crsm.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp index 9f65b59..6649416 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -333,7 +333,7 @@ void CRSM::scenarioFinished() { writeFiles(); if(processManager != nullptr) processManager->exit(); - if(connection != 0) + if(connection != nullptr) { connection->quit(Config.IRC.QuitMessage); connect(connection, SIGNAL(disconnected()), QCoreApplication::instance(), SLOT(quit())); @@ -2809,14 +2809,27 @@ CMD_FUNCTION_IMPL(exit) CMD_FUNCTION_IMPL(exitDetach) Config.Auto.ProcessManager.ReattachId = processManager->ID(); writeFiles(true); - connection->quit(Config.IRC.QuitMessage); - QCoreApplication::quit(); + if(connection != nullptr) + { + QString quitMsg = Config.IRC.QuitMessage; + if(!args.isEmpty()) + { + quitMsg = args; + } + connect(connection, SIGNAL(disconnected()), QCoreApplication::instance(), SLOT(quit())); + connection->quit(quitMsg); + QTimer::singleShot(1000, QCoreApplication::instance(), SLOT(quit())); + } + else + { + QCoreApplication::quit(); + } return Success; } CMD_FUNCTION_IMPL(exitUpdate) writeToServer("Der Server Manager wird upgedatet. Befehle funktionieren temporär nicht.\n"); - return exitDetach(cmd, args, client, userType); + return exitDetach(cmd, "Updating...", client, userType); } CMD_FUNCTION_IMPL(exitAfter) |
