diff --git a/src/plugins/ios/CMakeLists.txt b/src/plugins/ios/CMakeLists.txt index 3edd94a617c..4f3fe75dc4e 100644 --- a/src/plugins/ios/CMakeLists.txt +++ b/src/plugins/ios/CMakeLists.txt @@ -2,7 +2,7 @@ add_qtc_plugin(Ios DEPENDS QmlDebug Qt5::Xml PLUGIN_DEPENDS Core Debugger ProjectExplorer QmakeProjectManager CMakeProjectManager SOURCES - createsimulatordialog.cpp createsimulatordialog.h createsimulatordialog.ui + createsimulatordialog.cpp createsimulatordialog.h ios.qrc iosbuildconfiguration.cpp iosbuildconfiguration.h iosbuildstep.cpp iosbuildstep.h diff --git a/src/plugins/ios/createsimulatordialog.cpp b/src/plugins/ios/createsimulatordialog.cpp index e190f6c251a..b973c7e7c06 100644 --- a/src/plugins/ios/createsimulatordialog.cpp +++ b/src/plugins/ios/createsimulatordialog.cpp @@ -24,38 +24,60 @@ ****************************************************************************/ #include "createsimulatordialog.h" -#include "ui_createsimulatordialog.h" + #include "simulatorcontrol.h" #include +#include #include +#include +#include +#include +#include +#include #include -#include -namespace Ios { -namespace Internal { - -using namespace std::placeholders; +namespace Ios::Internal { CreateSimulatorDialog::CreateSimulatorDialog(QWidget *parent) : QDialog(parent) - , m_ui(new Ui::CreateSimulatorDialog) { - m_ui->setupUi(this); - m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + resize(320, 160); + setWindowTitle(tr("Create Simulator")); - const auto enableOk = [this] { - m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled( - !m_ui->nameEdit->text().isEmpty() && - m_ui->deviceTypeCombo->currentIndex() > 0 && - m_ui->runtimeCombo->currentIndex() > 0); + m_nameEdit = new QLineEdit(this); + m_deviceTypeCombo = new QComboBox(this); + m_runtimeCombo = new QComboBox(this); + + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + + using namespace Utils::Layouting; + + Column { + Form { + tr("Simulator name:"), m_nameEdit, br, + tr("Device type:"), m_deviceTypeCombo, br, + tr("OS version:"), m_runtimeCombo, br, + }, + buttonBox + }.attachTo(this); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + const auto enableOk = [this, buttonBox] { + buttonBox->button(QDialogButtonBox::Ok)->setEnabled( + !m_nameEdit->text().isEmpty() && + m_deviceTypeCombo->currentIndex() > 0 && + m_runtimeCombo->currentIndex() > 0); }; - connect(m_ui->nameEdit, &QLineEdit::textChanged, this, enableOk); - connect(m_ui->runtimeCombo, &QComboBox::currentIndexChanged, this, enableOk); - connect(m_ui->deviceTypeCombo, &QComboBox::currentIndexChanged, this, [this, enableOk] { - populateRuntimes(m_ui->deviceTypeCombo->currentData().value()); + connect(m_nameEdit, &QLineEdit::textChanged, this, enableOk); + connect(m_runtimeCombo, &QComboBox::currentIndexChanged, this, enableOk); + connect(m_deviceTypeCombo, &QComboBox::currentIndexChanged, this, [this, enableOk] { + populateRuntimes(m_deviceTypeCombo->currentData().value()); enableOk(); }); @@ -74,7 +96,6 @@ CreateSimulatorDialog::CreateSimulatorDialog(QWidget *parent) CreateSimulatorDialog::~CreateSimulatorDialog() { m_futureSync.waitForFinished(); - delete m_ui; } /*! @@ -82,7 +103,7 @@ CreateSimulatorDialog::~CreateSimulatorDialog() */ QString CreateSimulatorDialog::name() const { - return m_ui->nameEdit->text(); + return m_nameEdit->text(); } /*! @@ -94,7 +115,7 @@ QString CreateSimulatorDialog::name() const */ RuntimeInfo CreateSimulatorDialog::runtime() const { - return m_ui->runtimeCombo->currentData().value(); + return m_runtimeCombo->currentData().value(); } /*! @@ -102,7 +123,7 @@ RuntimeInfo CreateSimulatorDialog::runtime() const */ DeviceTypeInfo CreateSimulatorDialog::deviceType() const { - return m_ui->deviceTypeCombo->currentData().value(); + return m_deviceTypeCombo->currentData().value(); } /*! @@ -110,30 +131,30 @@ DeviceTypeInfo CreateSimulatorDialog::deviceType() const */ void CreateSimulatorDialog::populateDeviceTypes(const QList &deviceTypes) { - m_ui->deviceTypeCombo->clear(); - m_ui->deviceTypeCombo->addItem(tr("None")); + m_deviceTypeCombo->clear(); + m_deviceTypeCombo->addItem(tr("None")); if (deviceTypes.isEmpty()) return; - m_ui->deviceTypeCombo->insertSeparator(1); + m_deviceTypeCombo->insertSeparator(1); auto addItems = [this, deviceTypes](const QString &filter) { const auto filteredTypes = Utils::filtered(deviceTypes, [filter](const DeviceTypeInfo &type){ return type.name.contains(filter, Qt::CaseInsensitive); }); for (auto type : filteredTypes) { - m_ui->deviceTypeCombo->addItem(type.name, QVariant::fromValue(type)); + m_deviceTypeCombo->addItem(type.name, QVariant::fromValue(type)); } return filteredTypes.count(); }; if (addItems(QStringLiteral("iPhone")) > 0) - m_ui->deviceTypeCombo->insertSeparator(m_ui->deviceTypeCombo->count()); + m_deviceTypeCombo->insertSeparator(m_deviceTypeCombo->count()); if (addItems(QStringLiteral("iPad")) > 0) - m_ui->deviceTypeCombo->insertSeparator(m_ui->deviceTypeCombo->count()); + m_deviceTypeCombo->insertSeparator(m_deviceTypeCombo->count()); if (addItems(QStringLiteral("TV")) > 0) - m_ui->deviceTypeCombo->insertSeparator(m_ui->deviceTypeCombo->count()); + m_deviceTypeCombo->insertSeparator(m_deviceTypeCombo->count()); addItems(QStringLiteral("Watch")); } @@ -146,20 +167,20 @@ void CreateSimulatorDialog::populateDeviceTypes(const QList &dev */ void CreateSimulatorDialog::populateRuntimes(const DeviceTypeInfo &deviceType) { - m_ui->runtimeCombo->clear(); - m_ui->runtimeCombo->addItem(tr("None")); + m_runtimeCombo->clear(); + m_runtimeCombo->addItem(tr("None")); if (deviceType.name.isEmpty()) return; - m_ui->runtimeCombo->insertSeparator(1); + m_runtimeCombo->insertSeparator(1); auto addItems = [this](const QString &filter) { const auto filteredTypes = Utils::filtered(m_runtimes, [filter](const RuntimeInfo &runtime){ return runtime.name.contains(filter, Qt::CaseInsensitive); }); for (auto runtime : filteredTypes) { - m_ui->runtimeCombo->addItem(runtime.name, QVariant::fromValue(runtime)); + m_runtimeCombo->addItem(runtime.name, QVariant::fromValue(runtime)); } }; @@ -173,5 +194,4 @@ void CreateSimulatorDialog::populateRuntimes(const DeviceTypeInfo &deviceType) addItems(QStringLiteral("watchOS")); } -} // namespace Internal -} // namespace Ios +} // Ios::Internal diff --git a/src/plugins/ios/createsimulatordialog.h b/src/plugins/ios/createsimulatordialog.h index d46b3b8da8e..62b6861aec3 100644 --- a/src/plugins/ios/createsimulatordialog.h +++ b/src/plugins/ios/createsimulatordialog.h @@ -25,17 +25,19 @@ #pragma once -#include - #include -namespace Ios { -namespace Internal { +#include + +QT_BEGIN_NAMESPACE +class QComboBox; +class QLineEdit; +QT_END_NAMESPACE + +namespace Ios::Internal { -namespace Ui { class CreateSimulatorDialog; } -class SimulatorControl; -class RuntimeInfo; class DeviceTypeInfo; +class RuntimeInfo; /*! A dialog to select the iOS Device type and the runtime for a new @@ -57,11 +59,12 @@ private: void populateDeviceTypes(const QList &deviceTypes); void populateRuntimes(const DeviceTypeInfo &deviceType); -private: Utils::FutureSynchronizer m_futureSync; - Ui::CreateSimulatorDialog *m_ui = nullptr; QList m_runtimes; + + QLineEdit *m_nameEdit; + QComboBox *m_deviceTypeCombo; + QComboBox *m_runtimeCombo; }; -} // namespace Internal -} // namespace Ios +} // Ios::Internal diff --git a/src/plugins/ios/createsimulatordialog.ui b/src/plugins/ios/createsimulatordialog.ui deleted file mode 100644 index 655ff581cf3..00000000000 --- a/src/plugins/ios/createsimulatordialog.ui +++ /dev/null @@ -1,104 +0,0 @@ - - - Ios::Internal::CreateSimulatorDialog - - - - 0 - 0 - 320 - 160 - - - - - 0 - 0 - - - - Create Simulator - - - - - - - - Simulator name: - - - - - - - - - - Device type: - - - - - - - - - - OS version: - - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - Ios::Internal::CreateSimulatorDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Ios::Internal::CreateSimulatorDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/src/plugins/ios/ios.qbs b/src/plugins/ios/ios.qbs index ad558db90f0..d605807bb73 100644 --- a/src/plugins/ios/ios.qbs +++ b/src/plugins/ios/ios.qbs @@ -17,7 +17,6 @@ QtcPlugin { files: [ "createsimulatordialog.cpp", "createsimulatordialog.h", - "createsimulatordialog.ui", "ios.qrc", "iosbuildconfiguration.cpp", "iosbuildconfiguration.h",