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)); }