summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/blackberryruncontrol.cpp
diff options
context:
space:
mode:
authorTobias Nätterlund <tobias.naetterlund.qnx@kdab.com>2012-06-29 07:23:13 +0200
committerDaniel Teske <daniel.teske@nokia.com>2012-07-13 15:37:34 +0200
commita7ac2bb559fb717b616548ef3cc6332f1bdd46eb (patch)
tree063c170c5ae35cd769e51aa07a5c2fad8ec78fcc /src/plugins/qnx/blackberryruncontrol.cpp
parentcbce4389a540370169a874301450081eb6dbf675 (diff)
downloadqt-creator-a7ac2bb559fb717b616548ef3cc6332f1bdd46eb.tar.gz
New QNX plugin.
This plugin adds support for cross-compiling, deploying, running and debugging on a PlayBook or QNX Neutrino device. Change-Id: I0da7ccee40bd7ce4c0d6bdc6884d48ef23167dac Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/qnx/blackberryruncontrol.cpp')
-rw-r--r--src/plugins/qnx/blackberryruncontrol.cpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/plugins/qnx/blackberryruncontrol.cpp b/src/plugins/qnx/blackberryruncontrol.cpp
new file mode 100644
index 0000000000..b53c658de3
--- /dev/null
+++ b/src/plugins/qnx/blackberryruncontrol.cpp
@@ -0,0 +1,99 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (C) 2011 - 2012 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at info@qt.nokia.com.
+**
+**************************************************************************/
+
+#include "blackberryruncontrol.h"
+#include "blackberryapplicationrunner.h"
+#include "blackberryrunconfiguration.h"
+#include "blackberryconnect.h"
+
+#include <QIcon>
+#include <QTimer>
+
+using namespace Qnx;
+using namespace Qnx::Internal;
+
+BlackBerryRunControl::BlackBerryRunControl(BlackBerryRunConfiguration *runConfiguration)
+ : ProjectExplorer::RunControl(runConfiguration, ProjectExplorer::NormalRunMode)
+{
+ m_runner = new BlackBerryApplicationRunner(false, runConfiguration, this);
+ m_connector = BlackBerryConnect::instance(runConfiguration);
+
+ connect(m_runner, SIGNAL(started()), this, SIGNAL(started()));
+ connect(m_runner, SIGNAL(started()), m_connector, SLOT(connectToDevice()));
+ connect(m_runner, SIGNAL(finished()), this, SIGNAL(finished()));
+ connect(m_runner, SIGNAL(finished()), m_connector, SLOT(disconnectFromDevice()));
+ connect(m_runner, SIGNAL(output(QString,Utils::OutputFormat)),
+ this, SLOT(appendMessage(QString,Utils::OutputFormat)));
+ connect(m_runner, SIGNAL(startFailed(QString)), this, SLOT(handleStartFailed(QString)));
+
+ connect(m_connector, SIGNAL(connected()), this, SLOT(launchTailProcess()));
+ connect(m_connector, SIGNAL(output(QString,Utils::OutputFormat)),
+ this, SLOT(appendMessage(QString,Utils::OutputFormat)));
+}
+
+BlackBerryRunControl::~BlackBerryRunControl()
+{
+ BlackBerryConnect::cleanup(m_connector);
+}
+
+void BlackBerryRunControl::start()
+{
+ m_runner->start();
+}
+
+ProjectExplorer::RunControl::StopResult BlackBerryRunControl::stop()
+{
+ return m_runner->stop();
+}
+
+bool BlackBerryRunControl::isRunning() const
+{
+ return m_runner->isRunning();
+}
+
+QIcon BlackBerryRunControl::icon() const
+{
+ return QIcon(ProjectExplorer::Constants::ICON_RUN_SMALL);
+}
+
+void BlackBerryRunControl::handleStartFailed(const QString &message)
+{
+ appendMessage(message, Utils::StdErrFormat);
+}
+
+void BlackBerryRunControl::launchTailProcess()
+{
+ // Delay the launch of "tail" to ensure the blackberry-connect
+ // connection has been properly established
+ QTimer::singleShot(500, m_runner, SLOT(tailApplicationLog()));
+}