diff options
Diffstat (limited to 'src/plugins/qnx')
19 files changed, 527 insertions, 31 deletions
diff --git a/src/plugins/qnx/blackberryabstractdeploystep.cpp b/src/plugins/qnx/blackberryabstractdeploystep.cpp index 7a3af3912f..2eab527a86 100644 --- a/src/plugins/qnx/blackberryabstractdeploystep.cpp +++ b/src/plugins/qnx/blackberryabstractdeploystep.cpp @@ -32,7 +32,9 @@ #include "blackberryabstractdeploystep.h" #include <projectexplorer/buildconfiguration.h> +#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/target.h> +#include <projectexplorer/task.h> #include <utils/qtcassert.h> #include <utils/qtcprocess.h> @@ -176,6 +178,13 @@ void BlackBerryAbstractDeployStep::emitOutputInfo(const ProjectExplorer::Process BuildStep::MessageOutput); } +void BlackBerryAbstractDeployStep::raiseError(const QString &errorMessage) +{ + emit addOutput(errorMessage, BuildStep::ErrorMessageOutput); + emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, errorMessage, Utils::FileName(), -1, + Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); +} + void BlackBerryAbstractDeployStep::processReadyReadStdOutput() { m_process->setReadChannel(QProcess::StandardOutput); diff --git a/src/plugins/qnx/blackberryabstractdeploystep.h b/src/plugins/qnx/blackberryabstractdeploystep.h index 6d07f4d095..5f8da4a53e 100644 --- a/src/plugins/qnx/blackberryabstractdeploystep.h +++ b/src/plugins/qnx/blackberryabstractdeploystep.h @@ -71,6 +71,8 @@ protected: void emitOutputInfo(const ProjectExplorer::ProcessParameters ¶ms, const QString& arguments); + void raiseError(const QString &errorMessage); + private slots: void processReadyReadStdOutput(); void processReadyReadStdError(); diff --git a/src/plugins/qnx/blackberryapplicationrunner.cpp b/src/plugins/qnx/blackberryapplicationrunner.cpp index e49fc6a9d5..c51895747a 100644 --- a/src/plugins/qnx/blackberryapplicationrunner.cpp +++ b/src/plugins/qnx/blackberryapplicationrunner.cpp @@ -33,6 +33,7 @@ #include "blackberrydeployconfiguration.h" #include "blackberryrunconfiguration.h" +#include "qnxconstants.h" #include <projectexplorer/target.h> #include <qt4projectmanager/qt4buildconfiguration.h> @@ -43,8 +44,6 @@ #include <QDir> namespace { -const char DEPLOY_CMD[] = "blackberry-deploy"; - qint64 parsePid(const QString &line) { QTC_ASSERT(line.startsWith(QLatin1String("result::")), return -1); @@ -103,7 +102,7 @@ BlackBerryApplicationRunner::BlackBerryApplicationRunner(bool debugMode, BlackBe Target *target = runConfiguration->target(); BuildConfiguration *buildConfig = target->activeBuildConfiguration(); m_environment = buildConfig->environment(); - m_deployCmd = m_environment.searchInPath(QLatin1String(DEPLOY_CMD)); + m_deployCmd = m_environment.searchInPath(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD)); m_device = BlackBerryDeviceConfiguration::device(target->kit()); m_barPackage = runConfiguration->barPackage(); diff --git a/src/plugins/qnx/blackberrycheckdevmodestep.cpp b/src/plugins/qnx/blackberrycheckdevmodestep.cpp new file mode 100644 index 0000000000..885d4c7a24 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestep.cpp @@ -0,0 +1,135 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "blackberrycheckdevmodestep.h" + +#include "blackberrycheckdevmodestepconfigwidget.h" +#include "blackberrydeviceconfiguration.h" +#include "qnxconstants.h" + +#include <projectexplorer/buildconfiguration.h> +#include <projectexplorer/target.h> +#include <ssh/sshconnection.h> + +using namespace Qnx; +using namespace Qnx::Internal; + +namespace { +const char ERROR_MESSAGE_START[] = "Error: "; +const char AUTHENTICATION_ERROR[] = "Authentication failed."; +} + +BlackBerryCheckDevModeStep::BlackBerryCheckDevModeStep(ProjectExplorer::BuildStepList *bsl) : + BlackBerryAbstractDeployStep(bsl, Core::Id(Constants::QNX_CHECK_DEVELOPMENT_MODE_BS_ID)) +{ + setDisplayName(tr("Check Development Mode")); +} + +BlackBerryCheckDevModeStep::BlackBerryCheckDevModeStep(ProjectExplorer::BuildStepList *bsl, BlackBerryCheckDevModeStep *bs) : + BlackBerryAbstractDeployStep(bsl, bs) +{ + setDisplayName(tr("Check Development Mode")); +} + +bool BlackBerryCheckDevModeStep::init() +{ + if (!BlackBerryAbstractDeployStep::init()) + return false; + + QString deployCmd = target()->activeBuildConfiguration()->environment().searchInPath(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD)); + if (deployCmd.isEmpty()) { + raiseError(tr("Could not find command '%1' in the build environment") + .arg(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD))); + return false; + } + + BlackBerryDeviceConfiguration::ConstPtr device = BlackBerryDeviceConfiguration::device(target()->kit()); + QString deviceHost = device ? device->sshParameters().host : QString(); + if (deviceHost.isEmpty()) { + raiseError(tr("No hostname specified for device")); + return false; + } + + QStringList args; + args << QLatin1String("-listDeviceInfo"); + args << deviceHost; + if (!device->sshParameters().password.isEmpty()) { + args << QLatin1String("-password"); + args << device->sshParameters().password; + } + + addCommand(deployCmd, args); + + return true; +} + +ProjectExplorer::BuildStepConfigWidget *BlackBerryCheckDevModeStep::createConfigWidget() +{ + return new BlackBerryCheckDevModeStepConfigWidget(); +} + +void BlackBerryCheckDevModeStep::stdOutput(const QString &line) +{ + handleErrorOutput(line); +} + +void BlackBerryCheckDevModeStep::stdError(const QString &line) +{ + handleErrorOutput(line); +} + +void BlackBerryCheckDevModeStep::handleErrorOutput(const QString &line) +{ + if (line.startsWith(QLatin1String(ERROR_MESSAGE_START))) { + if (line.contains(QLatin1String(AUTHENTICATION_ERROR))) + raiseError(tr("Authentication failed. Please make sure the password for the device is correct.")); + else + raiseError(line); + } +} + +QString BlackBerryCheckDevModeStep::password() const +{ + BlackBerryDeviceConfiguration::ConstPtr device = BlackBerryDeviceConfiguration::device(target()->kit()); + return device ? device->sshParameters().password : QString(); +} + +void BlackBerryCheckDevModeStep::processStarted(const ProjectExplorer::ProcessParameters ¶ms) +{ + QString arguments = params.prettyArguments(); + if (!password().isEmpty()) { + const QString passwordLine = QLatin1String(" -password ") + password(); + const QString hiddenPasswordLine = QLatin1String(" -password <hidden>"); + arguments.replace(passwordLine, hiddenPasswordLine); + } + + emitOutputInfo(params, arguments); +} diff --git a/src/plugins/qnx/blackberrycheckdevmodestep.h b/src/plugins/qnx/blackberrycheckdevmodestep.h new file mode 100644 index 0000000000..e99be40cf4 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestep.h @@ -0,0 +1,68 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEP_H +#define QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEP_H + +#include "blackberryabstractdeploystep.h" + +namespace Qnx { +namespace Internal { + +class BlackBerryCheckDevModeStep : public BlackBerryAbstractDeployStep +{ + Q_OBJECT + friend class BlackBerryCheckDevModeStepFactory; + +public: + explicit BlackBerryCheckDevModeStep(ProjectExplorer::BuildStepList *bsl); + + bool init(); + ProjectExplorer::BuildStepConfigWidget *createConfigWidget(); + + void stdOutput(const QString &line); + void stdError(const QString &line); + +protected: + BlackBerryCheckDevModeStep(ProjectExplorer::BuildStepList *bsl, BlackBerryCheckDevModeStep *bs); + + void processStarted(const ProjectExplorer::ProcessParameters ¶ms); + +private: + void handleErrorOutput(const QString &line); + + QString password() const; +}; + +} // namespace Internal +} // namespace Qnx + +#endif // QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEP_H diff --git a/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.cpp b/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.cpp new file mode 100644 index 0000000000..e3d934ad29 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.cpp @@ -0,0 +1,55 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "blackberrycheckdevmodestepconfigwidget.h" + +using namespace Qnx; +using namespace Qnx::Internal; + +BlackBerryCheckDevModeStepConfigWidget::BlackBerryCheckDevModeStepConfigWidget() : + ProjectExplorer::BuildStepConfigWidget() +{ +} + +QString BlackBerryCheckDevModeStepConfigWidget::displayName() const +{ + return tr("<b>Check development mode</b>"); +} + +QString BlackBerryCheckDevModeStepConfigWidget::summaryText() const +{ + return displayName(); +} + +bool BlackBerryCheckDevModeStepConfigWidget::showWidget() const +{ + return false; +} diff --git a/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.h b/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.h new file mode 100644 index 0000000000..e1b52949a6 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestepconfigwidget.h @@ -0,0 +1,55 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPCONFIGWIDGET_H +#define QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPCONFIGWIDGET_H + +#include <projectexplorer/buildstep.h> + +namespace Qnx { +namespace Internal { + +class BlackBerryCheckDevModeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget +{ + Q_OBJECT +public: + explicit BlackBerryCheckDevModeStepConfigWidget(); + + QString displayName() const; + QString summaryText() const; + + bool showWidget() const; +}; + +} // namespace Internal +} // namespace Qnx + +#endif // QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPCONFIGWIDGET_H diff --git a/src/plugins/qnx/blackberrycheckdevmodestepfactory.cpp b/src/plugins/qnx/blackberrycheckdevmodestepfactory.cpp new file mode 100644 index 0000000000..666159a934 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestepfactory.cpp @@ -0,0 +1,108 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "blackberrycheckdevmodestepfactory.h" + +#include "blackberrycheckdevmodestep.h" +#include "blackberrydeviceconfigurationfactory.h" +#include "qnxconstants.h" + +#include <projectexplorer/buildsteplist.h> +#include <projectexplorer/kitinformation.h> +#include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/target.h> + +using namespace Qnx; +using namespace Qnx::Internal; + +BlackBerryCheckDevModeStepFactory::BlackBerryCheckDevModeStepFactory(QObject *parent) : + ProjectExplorer::IBuildStepFactory(parent) +{ +} + +QList<Core::Id> BlackBerryCheckDevModeStepFactory::availableCreationIds(ProjectExplorer::BuildStepList *parent) const +{ + if (parent->id() != ProjectExplorer::Constants::BUILDSTEPS_DEPLOY) + return QList<Core::Id>(); + + Core::Id deviceType = ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(parent->target()->kit()); + if (deviceType != BlackBerryDeviceConfigurationFactory::deviceType()) + return QList<Core::Id>(); + + return QList<Core::Id>() << Core::Id(Constants::QNX_CHECK_DEVELOPMENT_MODE_BS_ID); +} + +QString BlackBerryCheckDevModeStepFactory::displayNameForId(const Core::Id id) const +{ + if (id == Constants::QNX_CHECK_DEVELOPMENT_MODE_BS_ID) + return tr("Check Development Mode"); + return QString(); +} + +bool BlackBerryCheckDevModeStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const +{ + return availableCreationIds(parent).contains(id); +} + +ProjectExplorer::BuildStep *BlackBerryCheckDevModeStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id) +{ + if (!canCreate(parent, id)) + return 0; + return new BlackBerryCheckDevModeStep(parent); +} + +bool BlackBerryCheckDevModeStepFactory::canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const +{ + return canCreate(parent, ProjectExplorer::idFromMap(map)); +} + +ProjectExplorer::BuildStep *BlackBerryCheckDevModeStepFactory::restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) +{ + if (!canRestore(parent, map)) + return 0; + BlackBerryCheckDevModeStep *bs = new BlackBerryCheckDevModeStep(parent); + if (bs->fromMap(map)) + return bs; + delete bs; + return 0; +} + +bool BlackBerryCheckDevModeStepFactory::canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const +{ + return canCreate(parent, product->id()); +} + +ProjectExplorer::BuildStep *BlackBerryCheckDevModeStepFactory::clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) +{ + if (!canClone(parent, product)) + return 0; + return new BlackBerryCheckDevModeStep(parent, static_cast<BlackBerryCheckDevModeStep *>(product)); +} diff --git a/src/plugins/qnx/blackberrycheckdevmodestepfactory.h b/src/plugins/qnx/blackberrycheckdevmodestepfactory.h new file mode 100644 index 0000000000..7c26d20130 --- /dev/null +++ b/src/plugins/qnx/blackberrycheckdevmodestepfactory.h @@ -0,0 +1,64 @@ +/************************************************************************** +** +** Copyright (C) 2011 - 2013 Research In Motion +** +** Contact: Research In Motion (blackberry-qt@qnx.com) +** Contact: KDAB (info@kdab.com) +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPFACTORY_H +#define QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPFACTORY_H + +#include <projectexplorer/buildstep.h> + +namespace Qnx { +namespace Internal { + +class BlackBerryCheckDevModeStepFactory : public ProjectExplorer::IBuildStepFactory +{ + Q_OBJECT +public: + explicit BlackBerryCheckDevModeStepFactory(QObject *parent = 0); + + QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const; + QString displayNameForId(const Core::Id id) const; + + bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const; + ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id); + + bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const; + ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, + const QVariantMap &map); + + bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const; + ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, + ProjectExplorer::BuildStep *product); +}; + +} // namespace Internal +} // namespace Qnx + +#endif // QNX_INTERNAL_BLACKBERRYCHECKDEVMODESTEPFACTORY_H diff --git a/src/plugins/qnx/blackberrycreatepackagestep.cpp b/src/plugins/qnx/blackberrycreatepackagestep.cpp index 9126d64a9b..a7c97e82d9 100644 --- a/src/plugins/qnx/blackberrycreatepackagestep.cpp +++ b/src/plugins/qnx/blackberrycreatepackagestep.cpp @@ -153,13 +153,6 @@ QString BlackBerryCreatePackageStep::debugToken() const return device->debugToken(); } -void BlackBerryCreatePackageStep::raiseError(const QString &errorMessage) -{ - emit addOutput(errorMessage, BuildStep::ErrorMessageOutput); - emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, errorMessage, Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); -} - bool BlackBerryCreatePackageStep::prepareAppDescriptorFile(const QString &appDescriptorPath, const QString &preparedFilePath) { BlackBerryQtVersion *qtVersion = dynamic_cast<BlackBerryQtVersion *>(QtSupport::QtKitInformation::qtVersion(target()->kit())); diff --git a/src/plugins/qnx/blackberrycreatepackagestep.h b/src/plugins/qnx/blackberrycreatepackagestep.h index bb4cad4dbc..e43f4df9c2 100644 --- a/src/plugins/qnx/blackberrycreatepackagestep.h +++ b/src/plugins/qnx/blackberrycreatepackagestep.h @@ -57,8 +57,6 @@ public: protected: BlackBerryCreatePackageStep(ProjectExplorer::BuildStepList *bsl, BlackBerryCreatePackageStep *bs); - void raiseError(const QString &errorMessage); - private: bool prepareAppDescriptorFile(const QString &appDescriptorPath, const QString &preparedFilePath); }; diff --git a/src/plugins/qnx/blackberrydebugtokenuploader.cpp b/src/plugins/qnx/blackberrydebugtokenuploader.cpp index cb336a09ce..c87d066727 100644 --- a/src/plugins/qnx/blackberrydebugtokenuploader.cpp +++ b/src/plugins/qnx/blackberrydebugtokenuploader.cpp @@ -31,8 +31,9 @@ #include "blackberrydebugtokenuploader.h" +#include "qnxconstants.h" + namespace { -static const char PROCESS_NAME[] = "blackberry-deploy"; static const char ERR_NO_ROUTE_HOST[] = "Cannot connect"; static const char ERR_AUTH_FAILED[] = "Authentication failed"; static const char ERR_DEVELOPMENT_MODE_DISABLED[] = "Device is not in the Development Mode"; @@ -42,7 +43,7 @@ namespace Qnx { namespace Internal { BlackBerryDebugTokenUploader::BlackBerryDebugTokenUploader(QObject *parent) : - BlackBerryNdkProcess(QLatin1String(PROCESS_NAME), parent) + BlackBerryNdkProcess(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD), parent) { addErrorStringMapping(QLatin1String(ERR_NO_ROUTE_HOST), NoRouteToHost); addErrorStringMapping(QLatin1String(ERR_AUTH_FAILED), AuthenticationFailed); diff --git a/src/plugins/qnx/blackberrydeployconfigurationfactory.cpp b/src/plugins/qnx/blackberrydeployconfigurationfactory.cpp index a5b82008af..f8382b2b6c 100644 --- a/src/plugins/qnx/blackberrydeployconfigurationfactory.cpp +++ b/src/plugins/qnx/blackberrydeployconfigurationfactory.cpp @@ -32,6 +32,7 @@ #include "blackberrydeployconfigurationfactory.h" #include "qnxconstants.h" +#include "blackberrycheckdevmodestep.h" #include "blackberrydeployconfiguration.h" #include "blackberrycreatepackagestep.h" #include "blackberrydeploystep.h" @@ -92,8 +93,9 @@ ProjectExplorer::DeployConfiguration *BlackBerryDeployConfigurationFactory::crea return 0; BlackBerryDeployConfiguration *dc = new BlackBerryDeployConfiguration(parent); - dc->stepList()->insertStep(0, new BlackBerryCreatePackageStep(dc->stepList())); - dc->stepList()->insertStep(1, new BlackBerryDeployStep(dc->stepList())); + dc->stepList()->insertStep(0, new BlackBerryCheckDevModeStep(dc->stepList())); + dc->stepList()->insertStep(1, new BlackBerryCreatePackageStep(dc->stepList())); + dc->stepList()->insertStep(2, new BlackBerryDeployStep(dc->stepList())); return dc; } diff --git a/src/plugins/qnx/blackberrydeploystep.cpp b/src/plugins/qnx/blackberrydeploystep.cpp index 2086185fb3..ebb001ca4d 100644 --- a/src/plugins/qnx/blackberrydeploystep.cpp +++ b/src/plugins/qnx/blackberrydeploystep.cpp @@ -49,8 +49,6 @@ using namespace Qnx; using namespace Qnx::Internal; namespace { -const char DEPLOY_CMD[] = "blackberry-deploy"; - int parseProgress(const QString &line) { const QString startOfLine = QLatin1String("Info: Progress "); @@ -90,10 +88,10 @@ bool BlackBerryDeployStep::init() if (!BlackBerryAbstractDeployStep::init()) return false; - QString deployCmd = target()->activeBuildConfiguration()->environment().searchInPath(QLatin1String(DEPLOY_CMD)); + QString deployCmd = target()->activeBuildConfiguration()->environment().searchInPath(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD)); if (deployCmd.isEmpty()) { raiseError(tr("Could not find deploy command '%1' in the build environment") - .arg(QLatin1String(DEPLOY_CMD))); + .arg(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD))); return false; } @@ -189,10 +187,3 @@ QString BlackBerryDeployStep::password() const return device->sshParameters().password; return QString(); } - -void BlackBerryDeployStep::raiseError(const QString &errorMessage) -{ - emit addOutput(errorMessage, BuildStep::ErrorMessageOutput); - emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, errorMessage, Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); -} diff --git a/src/plugins/qnx/blackberrydeploystep.h b/src/plugins/qnx/blackberrydeploystep.h index 358f88f432..732f6c73c2 100644 --- a/src/plugins/qnx/blackberrydeploystep.h +++ b/src/plugins/qnx/blackberrydeploystep.h @@ -58,8 +58,6 @@ protected: void stdOutput(const QString &line); void processStarted(const ProjectExplorer::ProcessParameters ¶ms); - void raiseError(const QString &errorMessage); - private: QString deviceHost() const; QString password() const; diff --git a/src/plugins/qnx/qnx.pro b/src/plugins/qnx/qnx.pro index 9509995881..ad6dff7435 100644 --- a/src/plugins/qnx/qnx.pro +++ b/src/plugins/qnx/qnx.pro @@ -74,7 +74,10 @@ SOURCES += qnxplugin.cpp \ blackberrydebugtokenuploader.cpp \ blackberrydebugtokenreader.cpp \ blackberryndkprocess.cpp \ - blackberrydeviceprocesssupport.cpp + blackberrydeviceprocesssupport.cpp \ + blackberrycheckdevmodestepfactory.cpp \ + blackberrycheckdevmodestep.cpp \ + blackberrycheckdevmodestepconfigwidget.cpp HEADERS += qnxplugin.h\ qnxconstants.h \ @@ -145,7 +148,10 @@ HEADERS += qnxplugin.h\ blackberrydebugtokenuploader.h \ blackberrydebugtokenreader.h \ blackberryndkprocess.h \ - blackberrydeviceprocesssupport.h + blackberrydeviceprocesssupport.h \ + blackberrycheckdevmodestepfactory.h \ + blackberrycheckdevmodestep.h \ + blackberrycheckdevmodestepconfigwidget.h FORMS += \ blackberrydeviceconfigurationwizardsetuppage.ui \ diff --git a/src/plugins/qnx/qnx.qbs b/src/plugins/qnx/qnx.qbs index 41f699c2e5..5c41359e97 100644 --- a/src/plugins/qnx/qnx.qbs +++ b/src/plugins/qnx/qnx.qbs @@ -37,6 +37,12 @@ QtcPlugin { "blackberryabstractdeploystep.h", "blackberryapplicationrunner.cpp", "blackberryapplicationrunner.h", + "blackberrycheckdevmodestep.cpp", + "blackberrycheckdevmodestep.h", + "blackberrycheckdevmodestepconfigwidget.cpp", + "blackberrycheckdevmodestepconfigwidget.h", + "blackberrycheckdevmodestepfactory.cpp", + "blackberrycheckdevmodestepfactory.h", "blackberryconnect.cpp", "blackberryconnect.h", "blackberrycreatepackagestep.cpp", diff --git a/src/plugins/qnx/qnxconstants.h b/src/plugins/qnx/qnxconstants.h index 54c4dba4d5..76c5713ed7 100644 --- a/src/plugins/qnx/qnxconstants.h +++ b/src/plugins/qnx/qnxconstants.h @@ -69,6 +69,7 @@ const char QNX_QNX_RUNCONFIGURATION_PREFIX[] = "Qt4ProjectManager.QNX.QNXRunConf const char QNX_CREATE_PACKAGE_BS_ID[] = "Qt4ProjectManager.QnxCreatePackageBuildStep"; const char QNX_DEPLOY_PACKAGE_BS_ID[] = "Qt4ProjectManager.QnxDeployPackageBuildStep"; +const char QNX_CHECK_DEVELOPMENT_MODE_BS_ID[] = "Qt4ProjectManager.QnxCheckDevelopmentModeBuildStep"; const char QNX_PROFILEPATH_KEY[] = "Qt4ProjectManager.QnxRunConfiguration.ProFilePath"; @@ -103,6 +104,9 @@ const char QNX_TASK_CATEGORY_BARDESCRIPTOR[] = "Task.Category.BarDescriptor"; const char QNX_KEY_AUTHOR[] = "author"; const char QNX_KEY_PATH[] = "path"; const char QNX_KEY_ACTIVE[] = "active"; + +const char QNX_BLACKBERRY_DEPLOY_CMD[] = "blackberry-deploy"; + } // namespace Constants } // namespace Qnx diff --git a/src/plugins/qnx/qnxplugin.cpp b/src/plugins/qnx/qnxplugin.cpp index 02f2d456ce..71df9e7982 100644 --- a/src/plugins/qnx/qnxplugin.cpp +++ b/src/plugins/qnx/qnxplugin.cpp @@ -49,6 +49,7 @@ #include "bardescriptoreditorfactory.h" #include "bardescriptormagicmatcher.h" #include "blackberrykeyspage.h" +#include "blackberrycheckdevmodestepfactory.h" #include <coreplugin/icore.h> #include <coreplugin/mimedatabase.h> @@ -80,6 +81,7 @@ bool QNXPlugin::initialize(const QStringList &arguments, QString *errorString) addAutoReleasedObject(new BlackBerryRunControlFactory); addAutoReleasedObject(new BlackBerryNDKSettingsPage); addAutoReleasedObject(new BlackBerryKeysPage); + addAutoReleasedObject(new BlackBerryCheckDevModeStepFactory); // Handles QNX addAutoReleasedObject(new QnxQtVersionFactory); |