summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/blackberryruncontrol.cpp
diff options
context:
space:
mode:
authorEl Mehdi Fekari <mfekari@rim.com>2013-07-18 18:08:42 +0200
committerMehdi Fekari <mfekari@blackberry.com>2013-07-25 12:34:47 +0200
commit04c45c395b6bd74b31cf5a8d6920a4b700828053 (patch)
treed526f1ad1933595b35c247a7464963d0a6e28e4b /src/plugins/qnx/blackberryruncontrol.cpp
parent87b1ea2af7c80e3bd7e513b34f721cdbbee0ea1e (diff)
downloadqt-creator-04c45c395b6bd74b31cf5a8d6920a4b700828053.tar.gz
Qnx: Automatically connect to device when running an app
Task-number: QTCREATORBUG-9839 Change-Id: Iac6e6bd8d4f16d09c82658b9cd02518ee6300e1b Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/qnx/blackberryruncontrol.cpp')
-rw-r--r--src/plugins/qnx/blackberryruncontrol.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/plugins/qnx/blackberryruncontrol.cpp b/src/plugins/qnx/blackberryruncontrol.cpp
index a8d87b85c5..15a0766c40 100644
--- a/src/plugins/qnx/blackberryruncontrol.cpp
+++ b/src/plugins/qnx/blackberryruncontrol.cpp
@@ -32,6 +32,9 @@
#include "blackberryruncontrol.h"
#include "blackberryapplicationrunner.h"
#include "blackberryrunconfiguration.h"
+#include "blackberrydeviceconnectionmanager.h"
+
+#include <projectexplorer/target.h>
#include <QIcon>
#include <QTimer>
@@ -42,6 +45,7 @@ using namespace Qnx::Internal;
BlackBerryRunControl::BlackBerryRunControl(BlackBerryRunConfiguration *runConfiguration)
: ProjectExplorer::RunControl(runConfiguration, ProjectExplorer::NormalRunMode)
{
+ m_device = BlackBerryDeviceConfiguration::device(runConfiguration->target()->kit());
m_runner = new BlackBerryApplicationRunner(false, runConfiguration, this);
connect(m_runner, SIGNAL(started()), this, SIGNAL(started()));
@@ -53,7 +57,7 @@ BlackBerryRunControl::BlackBerryRunControl(BlackBerryRunConfiguration *runConfig
void BlackBerryRunControl::start()
{
- m_runner->start();
+ checkDeviceConnection();
}
ProjectExplorer::RunControl::StopResult BlackBerryRunControl::stop()
@@ -75,3 +79,32 @@ void BlackBerryRunControl::handleStartFailed(const QString &message)
{
appendMessage(message, Utils::StdErrFormat);
}
+
+void BlackBerryRunControl::handleDeviceConnected()
+{
+ m_runner->start();
+}
+
+void BlackBerryRunControl::displayConnectionOutput(Core::Id deviceId, const QString &output)
+{
+ if (deviceId != m_device->id())
+ return;
+
+ if (output.contains(QLatin1String("Info:")))
+ appendMessage(output, Utils::StdOutFormat);
+ else if (output.contains(QLatin1String("Error:")))
+ appendMessage(output, Utils::StdErrFormat);
+}
+
+void BlackBerryRunControl::checkDeviceConnection()
+{
+ if (!BlackBerryDeviceConnectionManager::instance()->isConnected(m_device->id())) {
+ connect(BlackBerryDeviceConnectionManager::instance(), SIGNAL(deviceConnected()),
+ this, SLOT(handleDeviceConnected()));
+ connect(BlackBerryDeviceConnectionManager::instance(), SIGNAL(connectionOutput(Core::Id,QString)),
+ this, SLOT(displayConnectionOutput(Core::Id,QString)));
+ BlackBerryDeviceConnectionManager::instance()->connectDevice(m_device->id());
+ } else {
+ m_runner->start();
+ }
+}