diff options
author | Martin Kampas <martin.kampas@jolla.com> | 2016-10-03 10:16:11 +0200 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2016-10-07 07:02:33 +0000 |
commit | cadd2726bfc358bc03dacfaf696d06763db50c99 (patch) | |
tree | 18a489cae9378010982e9c301e60de0351078f5c | |
parent | 7d748075a5dbf1fef4a8867820012229e94f1e44 (diff) |
Bench: Add --ping option
Change-Id: Ib71e33327df60313c22215bcf9c24a0531e171d6
Reviewed-by: Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>
-rw-r--r-- | src/bench/main.cpp | 18 | ||||
-rw-r--r-- | src/bench/options.cpp | 11 | ||||
-rw-r--r-- | src/bench/options.h | 4 |
3 files changed, 33 insertions, 0 deletions
diff --git a/src/bench/main.cpp b/src/bench/main.cpp index 651b83b..ed0b2a8 100644 --- a/src/bench/main.cpp +++ b/src/bench/main.cpp @@ -195,15 +195,23 @@ void Application::parseArguments(const QStringList &arguments, Options *options) parser.addOption(noRemoteOption); QCommandLineOption remoteOnlyOption("remoteonly", "talk to a running bench, do nothing if none is running."); parser.addOption(remoteOnlyOption); + QCommandLineOption pingOption("ping", "just check if there is a bench running and accepting remote connections."); + parser.addOption(pingOption); parser.process(arguments); options->setNoRemote(parser.isSet(noRemoteOption)); options->setRemoteOnly(parser.isSet(remoteOnlyOption)); + options->setPing(parser.isSet(pingOption)); if (options->noRemote() && options->remoteOnly()) { qWarning() << "Options --noremote and --remoteonly cannot be used together"; parser.showHelp(-1); } + if (options->noRemote() && options->ping()) { + qWarning() << "Options --noremote and --ping cannot be used together"; + parser.showHelp(-1); + } + options->setPluginPath(parser.value(pluginPathOption)); options->setImportPaths(parser.values(importPathOption)); @@ -284,6 +292,11 @@ MasterApplication::MasterApplication(int &argc, char **argv) Options options; parseArguments(arguments(), &options); + if (options.ping()) { + QTimer::singleShot(0, [] { QCoreApplication::exit(1); }); + return; + } + if (options.remoteOnly()) { QTimer::singleShot(0, this, &QCoreApplication::quit); return; @@ -430,6 +443,11 @@ SlaveApplication::SlaveApplication(int &argc, char **argv) Options options; parseArguments(arguments(), &options); + if (options.ping()) { + QTimer::singleShot(0, &QCoreApplication::quit); + return; + } + if (!options.remoteOnly() && !options.hasNoninteractiveOptions()) qInfo() << "Another instance running. Activating..."; diff --git a/src/bench/options.cpp b/src/bench/options.cpp index 054022f..87cc83f 100644 --- a/src/bench/options.cpp +++ b/src/bench/options.cpp @@ -35,6 +35,7 @@ Options::Options(QObject *parent) : QObject(parent) , m_noRemote(false) , m_remoteOnly(false) + , m_ping(false) , m_stayOnTop(false) { @@ -71,6 +72,16 @@ void Options::setRemoteOnly(bool remoteOnly) m_remoteOnly = remoteOnly; } +bool Options::ping() const +{ + return m_ping; +} + +void Options::setPing(bool ping) +{ + m_ping = ping; +} + QString Options::activeDocument() const { return m_activeDocument; diff --git a/src/bench/options.h b/src/bench/options.h index 781abb1..ee98e99 100644 --- a/src/bench/options.h +++ b/src/bench/options.h @@ -55,6 +55,9 @@ public: bool remoteOnly() const; void setRemoteOnly(bool remoteOnly); + bool ping() const; + void setPing(bool ping); + QString activeDocument() const; void setActiveDocument(const QString &activeDocument); @@ -81,6 +84,7 @@ public: private: bool m_noRemote; bool m_remoteOnly; + bool m_ping; QString m_activeDocument; QString m_workspace; QString m_pluginPath; |