summaryrefslogtreecommitdiffstats
path: root/src/crsm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crsm.cpp')
-rw-r--r--src/crsm.cpp21
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)