From ec3cf46cec1e2f556d201fccad808dbdd2c84f66 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Sat, 14 May 2016 20:52:28 +0200 Subject: Quit IRC sanely on exit detach/update and put "Updating..." into quit message with exit update --- src/crsm.cpp | 21 +++++++++++++++++---- 1 file 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) -- cgit v1.2.3-54-g00ecf