bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps) { Q_UNUSED(earlierSteps); IDevice::ConstPtr device = DeviceKitInformation::device(target()->kit()); if (!device) { Core::Id deviceTypeId = DeviceTypeKitInformation::deviceTypeId(target()->kit()); IDeviceFactory *factory = IDeviceFactory::find(deviceTypeId); if (!factory || !factory->canCreate()) { emit addOutput(tr("No device configured."), BuildStep::ErrorMessageOutput); return false; } QMessageBox msgBox(QMessageBox::Question, tr("Set Up Device"), tr("There is no device set up for this kit. Do you want to add a device?"), QMessageBox::Yes|QMessageBox::No); msgBox.setDefaultButton(QMessageBox::Yes); if (msgBox.exec() == QMessageBox::No) { emit addOutput(tr("No device configured."), BuildStep::ErrorMessageOutput); return false; } IDevice::Ptr newDevice = factory->create(deviceTypeId); if (newDevice.isNull()) { emit addOutput(tr("No device configured."), BuildStep::ErrorMessageOutput); return false; } DeviceManager *dm = DeviceManager::instance(); dm->addDevice(newDevice); DeviceKitInformation::setDevice(target()->kit(), newDevice); } return true; }
void DeviceSettingsWidget::addDevice() { DeviceFactorySelectionDialog d; if (d.exec() != QDialog::Accepted) return; IDevice::Ptr device = d.selectedFactory()->create(); if (device.isNull()) return; m_deviceManager->addDevice(device); m_ui->removeConfigButton->setEnabled(true); m_ui->configurationComboBox->setCurrentIndex(m_deviceManagerModel->indexOf(device)); }
IDevice::Ptr GenericLinuxDeviceConfigurationWizard::device() { SshConnectionParameters sshParams; sshParams.options &= ~SshConnectionOptions(SshEnableStrictConformanceChecks); // For older SSH servers. sshParams.url = d->setupPage.url(); sshParams.timeout = 10; sshParams.authenticationType = d->setupPage.authenticationType(); if (sshParams.authenticationType == SshConnectionParameters::AuthenticationTypePublicKey) sshParams.privateKeyFile = d->setupPage.privateKeyFilePath(); IDevice::Ptr device = LinuxDevice::create(d->setupPage.configurationName(), Core::Id(Constants::GenericLinuxOsType), IDevice::Hardware); device->setFreePorts(Utils::PortList::fromString(QLatin1String("10000-10100"))); device->setSshParameters(sshParams); return device; }