aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kampas <martin.kampas@jolla.com>2016-10-03 10:16:11 +0200
committerJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-10-07 07:02:33 +0000
commitcadd2726bfc358bc03dacfaf696d06763db50c99 (patch)
tree18a489cae9378010982e9c301e60de0351078f5c
parent7d748075a5dbf1fef4a8867820012229e94f1e44 (diff)
Bench: Add --ping option
Change-Id: Ib71e33327df60313c22215bcf9c24a0531e171d6 Reviewed-by: Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>
-rw-r--r--src/bench/main.cpp18
-rw-r--r--src/bench/options.cpp11
-rw-r--r--src/bench/options.h4
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;