diff --git a/src/tools/qmlprofilertool/commandlistener.cpp b/src/tools/qmlprofilertool/commandlistener.cpp index eb06a35a7f01f054e120813cb667f529854709da..1f23ea0b9548c343c98636bd6407d44a2e16a006 100644 --- a/src/tools/qmlprofilertool/commandlistener.cpp +++ b/src/tools/qmlprofilertool/commandlistener.cpp @@ -31,6 +31,7 @@ **************************************************************************/ #include "commandlistener.h" +#include "constants.h" #include <QTextStream> CommandListener::CommandListener(QObject *parent) @@ -46,7 +47,11 @@ void CommandListener::run() do { line = in.readLine(); line = line.trimmed(); - if (!line.isEmpty()) + if (!line.isEmpty()) { emit command(line); + if (line == QLatin1String(Constants::CMD_QUIT) + || line == QLatin1String(Constants::CMD_QUIT2)) + return; + } } while (!m_stopRequested && !line.isNull()); } diff --git a/src/tools/qmlprofilertool/constants.h b/src/tools/qmlprofilertool/constants.h new file mode 100644 index 0000000000000000000000000000000000000000..fa942d8ae2219807781457bf628094a36e6c6bab --- /dev/null +++ b/src/tools/qmlprofilertool/constants.h @@ -0,0 +1,18 @@ +#ifndef CONSTANTS_H +#define CONSTANTS_H + +namespace Constants { + +const char * const CMD_HELP ="help"; +const char * const CMD_HELP2 = "h"; +const char * const CMD_HELP3 = "?"; + +const char * const CMD_RECORD ="record"; +const char * const CMD_RECORD2 ="r"; + +const char * const CMD_QUIT ="quit"; +const char * const CMD_QUIT2 = "q"; + +} + +#endif // CONSTANTS_H diff --git a/src/tools/qmlprofilertool/main.cpp b/src/tools/qmlprofilertool/main.cpp index 9b03ad8adf23ad06c367bb2813aa6dcf37fa26e5..04287c167d5838d13f84b41ad162083b4ee2e1c0 100644 --- a/src/tools/qmlprofilertool/main.cpp +++ b/src/tools/qmlprofilertool/main.cpp @@ -47,8 +47,9 @@ int main(int argc, char *argv[]) listener.start(); int exitValue = app.exec(); - listener.terminate(); + // wait for listener to exit listener.wait(); + return exitValue; } diff --git a/src/tools/qmlprofilertool/qmlprofilerapplication.cpp b/src/tools/qmlprofilertool/qmlprofilerapplication.cpp index 8e8be8715b19583ae44e4ab55b6eeed220686cd7..6261f64ad0f4b393d7100464cbaf1f0a1c2cd75b 100644 --- a/src/tools/qmlprofilertool/qmlprofilerapplication.cpp +++ b/src/tools/qmlprofilertool/qmlprofilerapplication.cpp @@ -31,6 +31,7 @@ **************************************************************************/ #include "qmlprofilerapplication.h" +#include "constants.h" #include <utils/qtcassert.h> #include <QtCore/QStringList> #include <QtCore/QTextStream> @@ -204,11 +205,15 @@ QString QmlProfilerApplication::traceFileName() const void QmlProfilerApplication::userCommand(const QString &command) { QString cmd = command.trimmed(); - if (cmd == "help" || cmd == "h" || cmd == "?") { + if (cmd == Constants::CMD_HELP + || cmd == Constants::CMD_HELP2 + || cmd == Constants::CMD_HELP3) { printCommands(); - } else if (cmd == "r" || cmd == "record") { + } else if (cmd == Constants::CMD_RECORD + || cmd == Constants::CMD_RECORD2) { m_traceClient.setRecording(!m_traceClient.isRecording()); - } else if (cmd == "q" || cmd == "quit") { + } else if (cmd == Constants::CMD_QUIT + || cmd == Constants::CMD_QUIT2) { if (m_traceClient.isRecording()) { m_quitAfterSave = true; m_traceClient.setRecording(false); diff --git a/src/tools/qmlprofilertool/qmlprofilertool.pro b/src/tools/qmlprofilertool/qmlprofilertool.pro index 3e15c56d2d0b7945c30da665c6d129c30c94ff41..4e9b4abaae411dfdf62bfc737590ce99dac64881 100644 --- a/src/tools/qmlprofilertool/qmlprofilertool.pro +++ b/src/tools/qmlprofilertool/qmlprofilertool.pro @@ -19,6 +19,8 @@ SOURCES += main.cpp \ HEADERS += \ qmlprofilerapplication.h \ - commandlistener.h + commandlistener.h \ + constants.h +