bool QnxRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const { if (mode != ProjectExplorer::Constants::NORMAL_RUN_MODE && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE && mode != ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { return false; } if (!runConfiguration->isEnabled() || !runConfiguration->id().name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX)) { return false; } const QnxDeviceConfiguration::ConstPtr dev = DeviceKitInformation::device(runConfiguration->target()->kit()) .dynamicCast<const QnxDeviceConfiguration>(); if (dev.isNull()) return false; if (mode == ProjectExplorer::Constants::DEBUG_RUN_MODE || mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { auto aspect = runConfiguration->extraAspect<DebuggerRunConfigurationAspect>(); int portsUsed = aspect ? aspect->portsUsedByDebugger() : 0; return portsUsed <= dev->freePorts().count(); } return true; }
bool QnxRunControlFactory::canRun(RunConfiguration *runConfiguration, RunMode mode) const { if (mode != NormalRunMode && mode != DebugRunMode && mode != QmlProfilerRunMode) return false; if (!runConfiguration->isEnabled() || !runConfiguration->id().name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX)) { return false; } const QnxRunConfiguration * const rc = qobject_cast<QnxRunConfiguration *>(runConfiguration); const QnxDeviceConfiguration::ConstPtr dev = DeviceKitInformation::device(runConfiguration->target()->kit()) .dynamicCast<const QnxDeviceConfiguration>(); if (dev.isNull()) return false; if (mode == DebugRunMode || mode == QmlProfilerRunMode) return rc->portsUsedByDebuggers() <= dev->freePorts().count(); return true; }