bool BlackBerryRunControlFactory::canRun(ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode) const { Q_UNUSED(mode); BlackBerryRunConfiguration *rc = qobject_cast<BlackBerryRunConfiguration *>(runConfiguration); if (!rc) return false; BlackBerryDeviceConfiguration::ConstPtr device = BlackBerryDeviceConfiguration::device(rc->target()->kit()); if (!device) return false; // The device can only run the same application once, any subsequent runs will // not launch a second instance. Disable the Run button if the application is already // running on the device. if (m_activeRunControls.contains(rc->key())) { QPointer<ProjectExplorer::RunControl> activeRunControl = m_activeRunControls[rc->key()]; if (activeRunControl && activeRunControl.data()->isRunning()) return false; else m_activeRunControls.remove(rc->key()); } BlackBerryDeployConfiguration *activeDeployConf = qobject_cast<BlackBerryDeployConfiguration *>( rc->target()->activeDeployConfiguration()); return activeDeployConf != 0; }
ProjectExplorer::RunControl *BlackBerryRunControlFactory::create(ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode, QString *errorMessage) { BlackBerryRunConfiguration *rc = qobject_cast<BlackBerryRunConfiguration *>(runConfiguration); if (!rc) return 0; BlackBerryDeployConfiguration *activeDeployConf = qobject_cast<BlackBerryDeployConfiguration *>( rc->target()->activeDeployConfiguration()); if (!activeDeployConf) { if (errorMessage) *errorMessage = tr("No active deploy configuration"); return 0; } if (mode == ProjectExplorer::NormalRunMode) { BlackBerryRunControl *runControl = new BlackBerryRunControl(rc); m_activeRunControls[rc->key()] = runControl; return runControl; } Debugger::DebuggerRunControl * const runControl = Debugger::DebuggerPlugin::createDebugger(startParameters(rc), runConfiguration, errorMessage); if (!runControl) return 0; new BlackBerryDebugSupport(rc, runControl); m_activeRunControls[rc->key()] = runControl; return runControl; }
ProjectExplorer::RunControl *BlackBerryRunControlFactory::create( ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode) { BlackBerryRunConfiguration *rc = qobject_cast<BlackBerryRunConfiguration *>(runConfiguration); if (!rc) return 0; BlackBerryDeployConfiguration *activeDeployConf = qobject_cast<BlackBerryDeployConfiguration *>( rc->target()->activeDeployConfiguration()); if (!activeDeployConf) return 0; if (mode == ProjectExplorer::NormalRunMode) { BlackBerryRunControl *runControl = new BlackBerryRunControl(rc); m_activeRunControls[rc->key()] = QWeakPointer<ProjectExplorer::RunControl>(runControl); return runControl; } Debugger::DebuggerRunControl * const runControl = Debugger::DebuggerPlugin::createDebugger(startParameters(rc), runConfiguration); if (!runControl) return 0; new BlackBerryDebugSupport(rc, runControl); m_activeRunControls[rc->key()] = QWeakPointer<ProjectExplorer::RunControl>(runControl); return runControl; }