From 25d8f90950ad1dc3df56a4187bcac57e6203f1b4 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 23 Oct 2016 10:39:40 +0000 Subject: do not use exit call directly git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6801 90c681e8-e032-0410-971d-27865f9a5e38 --- src/app/qmmpstarter.cpp | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) (limited to 'src/app/qmmpstarter.cpp') diff --git a/src/app/qmmpstarter.cpp b/src/app/qmmpstarter.cpp index ddbeabd56..4b5fcadaf 100644 --- a/src/app/qmmpstarter.cpp +++ b/src/app/qmmpstarter.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,8 @@ QMMPStarter::QMMPStarter() : QObject() m_player = 0; m_core = 0; m_ui = 0; + m_finished = false; + m_exit_code = EXIT_SUCCESS; #ifdef Q_OS_WIN m_named_mutex = 0; #endif @@ -70,12 +73,14 @@ QMMPStarter::QMMPStarter() : QObject() if(commands.keys().contains("--help")) { printUsage(); - exit(0); + m_finished = true; + return; } if(commands.keys().contains("--version")) { printVersion(); - exit(0); + m_finished = true; + return; } if(!commands.isEmpty()) @@ -86,7 +91,9 @@ QMMPStarter::QMMPStarter() : QObject() arg != "--no-start") { cout << qPrintable(tr("Unknown command")) << endl; - exit(0); + m_exit_code = EXIT_FAILURE; + m_finished = true; + return; } } } @@ -110,7 +117,9 @@ QMMPStarter::QMMPStarter() : QObject() if(!m_socket->isValid()) //invalid connection { qWarning("QMMPStarter: unable to connect to server"); - exit(0); + m_exit_code = EXIT_FAILURE; + m_finished = true; + return; } writeCommand(); } @@ -128,25 +137,32 @@ QMMPStarter::QMMPStarter() : QObject() if(!QLocalServer::removeServer(UDS_PATH)) { qWarning("QMMPStarter: unable to remove invalid socket file"); - exit(1); + m_exit_code = EXIT_FAILURE; + m_finished = true; return; } qWarning("QMMPStarter: removed invalid socket file"); if(noStart) - exit(0); + { + m_exit_code = EXIT_FAILURE; + m_finished = true; + return; + } else if(m_server->listen (UDS_PATH)) startPlayer(); else { qWarning("QMMPStarter: server error: %s", qPrintable(m_server->errorString())); - exit(1); + m_exit_code = EXIT_FAILURE; + m_finished = true; + return; } } else writeCommand(); } else - exit(0); + m_finished = true; #endif } @@ -160,6 +176,16 @@ QMMPStarter::~QMMPStarter() #endif } +bool QMMPStarter::isFinished() const +{ + return m_finished; +} + +int QMMPStarter::exitCode() const +{ + return m_exit_code; +} + void QMMPStarter::startPlayer() { connect(m_server, SIGNAL(newConnection()), SLOT(readCommand())); @@ -196,7 +222,8 @@ void QMMPStarter::startPlayer() else { qWarning("QMMPStarter: no user interface found"); - exit(1); + m_finished = true; + m_exit_code = EXIT_FAILURE; return; } connect(qApp, SIGNAL(aboutToQuit()), SLOT(savePosition())); @@ -245,7 +272,7 @@ void QMMPStarter::writeCommand() printUsage(); #endif - exit(0); + m_finished = true; } void QMMPStarter::readCommand() -- cgit v1.2.3-13-gbd6f