diff options
author | hjk <[email protected]> | 2019-04-29 15:47:11 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2019-05-06 09:09:37 +0000 |
commit | b3eded3ee11189f97b78cb179666fc72b1e83bcd (patch) | |
tree | e0ab03933665dd0cb929d4e2bc35cd53f38eea51 /src/plugins | |
parent | 5b46b17b0851ab507f323c4a6d8b7ca1d18d72b0 (diff) |
Ios: Inline IosBuildSettingsWidget ui
First mechanical baby-step towards using aspects in IosBuildConfiguration.
Change-Id: I6eec5136ec05f0f26c3ca915fa7d84dccaafcb82
Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/ios/ios.pro | 1 | ||||
-rw-r--r-- | src/plugins/ios/ios.qbs | 1 | ||||
-rw-r--r-- | src/plugins/ios/iosbuildsettingswidget.cpp | 201 | ||||
-rw-r--r-- | src/plugins/ios/iosbuildsettingswidget.h | 26 | ||||
-rw-r--r-- | src/plugins/ios/iosbuildsettingswidget.ui | 137 |
5 files changed, 143 insertions, 223 deletions
diff --git a/src/plugins/ios/ios.pro b/src/plugins/ios/ios.pro index 4bd83309627..28f710e4405 100644 --- a/src/plugins/ios/ios.pro +++ b/src/plugins/ios/ios.pro @@ -57,7 +57,6 @@ FORMS += \ iossettingswidget.ui \ iosbuildstep.ui \ iospresetbuildstep.ui \ - iosbuildsettingswidget.ui \ createsimulatordialog.ui \ simulatoroperationdialog.ui diff --git a/src/plugins/ios/ios.qbs b/src/plugins/ios/ios.qbs index a75914616c6..d2d7f79a44b 100644 --- a/src/plugins/ios/ios.qbs +++ b/src/plugins/ios/ios.qbs @@ -22,7 +22,6 @@ QtcPlugin { "iosbuildconfiguration.h", "iosbuildsettingswidget.cpp", "iosbuildsettingswidget.h", - "iosbuildsettingswidget.ui", "iosbuildstep.cpp", "iosbuildstep.h", "iosbuildstep.ui", diff --git a/src/plugins/ios/iosbuildsettingswidget.cpp b/src/plugins/ios/iosbuildsettingswidget.cpp index f7c90b3aa9a..067477ffe2b 100644 --- a/src/plugins/ios/iosbuildsettingswidget.cpp +++ b/src/plugins/ios/iosbuildsettingswidget.cpp @@ -41,8 +41,6 @@ #include <QLoggingCategory> #include <QVBoxLayout> -using namespace QmakeProjectManager; - namespace Ios { namespace Internal { @@ -56,109 +54,168 @@ IosBuildSettingsWidget::IosBuildSettingsWidget(const Core::Id &deviceType, const QString &signingIdentifier, bool isSigningAutoManaged, QWidget *parent) : ProjectExplorer::NamedWidget(parent), - ui(new Ui::IosBuildSettingsWidget), - m_detailsWidget(new Utils::DetailsWidget(this)), m_deviceType(deviceType) { - auto rootLayout = new QVBoxLayout(this); - rootLayout->setMargin(0); - rootLayout->addWidget(m_detailsWidget); - - auto container = new QWidget(m_detailsWidget); - ui->setupUi(container); - ui->m_autoSignCheckbox->setChecked(isSigningAutoManaged); - connect(ui->m_qmakeDefaults, &QPushButton::clicked, this, &IosBuildSettingsWidget::onReset); - - ui->m_infoIconLabel->hide(); - ui->m_infoIconLabel->setPixmap(Utils::Icons::INFO.pixmap()); - ui->m_infoLabel->hide(); - - ui->m_warningIconLabel->hide(); - ui->m_warningIconLabel->setPixmap(Utils::Icons::WARNING.pixmap()); - ui->m_warningLabel->hide(); + const bool isDevice = m_deviceType == Constants::IOS_DEVICE_TYPE; - m_detailsWidget->setState(Utils::DetailsWidget::NoSummary); - m_detailsWidget->setWidget(container); + auto detailsWidget = new Utils::DetailsWidget(this); + auto container = new QWidget(detailsWidget); + + m_qmakeDefaults = new QPushButton(container); + QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + m_qmakeDefaults->setSizePolicy(sizePolicy); + m_qmakeDefaults->setText(tr("Reset")); + m_qmakeDefaults->setEnabled(isDevice); + + m_signEntityCombo = new QComboBox(container); + QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + m_signEntityCombo->setSizePolicy(sizePolicy1); + + m_autoSignCheckbox = new QCheckBox(container); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Fixed); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + m_autoSignCheckbox->setSizePolicy(sizePolicy2); + m_autoSignCheckbox->setChecked(true); + m_autoSignCheckbox->setText(tr("Automatically manage signing")); + m_autoSignCheckbox->setChecked(isSigningAutoManaged); + m_autoSignCheckbox->setEnabled(isDevice); + + m_signEntityLabel = new QLabel(container); + + m_infoIconLabel = new QLabel(container); + QSizePolicy sizePolicy3(QSizePolicy::Maximum, QSizePolicy::Preferred); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + m_infoIconLabel->setSizePolicy(sizePolicy3); + + m_infoLabel = new QLabel(container); + QSizePolicy sizePolicy4(QSizePolicy::Preferred, QSizePolicy::Preferred); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + m_infoLabel->setSizePolicy(sizePolicy4); + m_infoLabel->setWordWrap(false); + + m_warningIconLabel = new QLabel(container); + m_warningIconLabel->setSizePolicy(sizePolicy3); + + m_warningLabel = new QLabel(container); + m_warningLabel->setSizePolicy(sizePolicy4); + m_warningLabel->setWordWrap(true); + + m_signEntityLabel->setText(QApplication::translate("Ios::Internal::IosBuildSettingsWidget", "Development team:", nullptr)); + + connect(m_qmakeDefaults, &QPushButton::clicked, this, &IosBuildSettingsWidget::onReset); + + m_infoIconLabel->hide(); + m_infoIconLabel->setPixmap(Utils::Icons::INFO.pixmap()); + m_infoLabel->hide(); + + m_warningIconLabel->hide(); + m_warningIconLabel->setPixmap(Utils::Icons::WARNING.pixmap()); + m_warningLabel->hide(); + + detailsWidget->setState(Utils::DetailsWidget::NoSummary); + detailsWidget->setWidget(container); setDisplayName(tr("iOS Settings")); - const bool isDevice = m_deviceType == Constants::IOS_DEVICE_TYPE; if (isDevice) { connect(IosConfigurations::instance(), &IosConfigurations::provisioningDataChanged, this, &IosBuildSettingsWidget::populateDevelopmentTeams); - connect(ui->m_signEntityCombo, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), + connect(m_signEntityCombo, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &IosBuildSettingsWidget::onSigningEntityComboIndexChanged); - connect(ui->m_autoSignCheckbox, &QCheckBox::toggled, + connect(m_autoSignCheckbox, &QCheckBox::toggled, this, &IosBuildSettingsWidget::configureSigningUi); - configureSigningUi(ui->m_autoSignCheckbox->isChecked()); + configureSigningUi(m_autoSignCheckbox->isChecked()); setDefaultSigningIdentfier(signingIdentifier); } - ui->m_autoSignCheckbox->setEnabled(isDevice); - ui->m_signEntityCombo->setEnabled(isDevice); - ui->m_qmakeDefaults->setEnabled(isDevice); - ui->m_signEntityLabel->setEnabled(isDevice); + m_signEntityCombo->setEnabled(isDevice); + m_signEntityLabel->setEnabled(isDevice); adjustSize(); -} -IosBuildSettingsWidget::~IosBuildSettingsWidget() -{ - delete ui; + auto rootLayout = new QVBoxLayout(this); + rootLayout->setMargin(0); + rootLayout->addWidget(detailsWidget); + + auto gridLayout = new QGridLayout(); + gridLayout->addWidget(m_signEntityLabel, 0, 0, 1, 1); + gridLayout->addWidget(m_signEntityCombo, 0, 1, 1, 1); + gridLayout->addWidget(m_autoSignCheckbox, 0, 2, 1, 1); + gridLayout->addWidget(m_qmakeDefaults, 1, 1, 1, 1); + + auto horizontalLayout = new QHBoxLayout(); + horizontalLayout->addWidget(m_infoIconLabel); + horizontalLayout->addWidget(m_infoLabel); + + auto horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->addWidget(m_warningIconLabel); + horizontalLayout_2->addWidget(m_warningLabel); + + auto verticalLayout = new QVBoxLayout(container); + verticalLayout->addLayout(gridLayout); + verticalLayout->addLayout(horizontalLayout); + verticalLayout->addLayout(horizontalLayout_2); } void IosBuildSettingsWidget::setDefaultSigningIdentfier(const QString &identifier) const { if (identifier.isEmpty()) { - ui->m_signEntityCombo->setCurrentIndex(0); + m_signEntityCombo->setCurrentIndex(0); return; } int defaultIndex = -1; - for (int index = 0; index < ui->m_signEntityCombo->count(); ++index) { - QString teamID = ui->m_signEntityCombo->itemData(index, IdentifierRole).toString(); + for (int index = 0; index < m_signEntityCombo->count(); ++index) { + QString teamID = m_signEntityCombo->itemData(index, IdentifierRole).toString(); if (teamID == identifier) { defaultIndex = index; break; } } if (defaultIndex > -1) { - ui->m_signEntityCombo->setCurrentIndex(defaultIndex); + m_signEntityCombo->setCurrentIndex(defaultIndex); } else { // Reset to default - ui->m_signEntityCombo->setCurrentIndex(0); + m_signEntityCombo->setCurrentIndex(0); qCDebug(iosSettingsLog) << "Cannot find default" - << (ui->m_autoSignCheckbox->isChecked() ? "team": "provisioning profile") + << (m_autoSignCheckbox->isChecked() ? "team": "provisioning profile") << ". Identifier: " << identifier; } } bool IosBuildSettingsWidget::isSigningAutomaticallyManaged() const { - return ui->m_autoSignCheckbox->isChecked() && ui->m_signEntityCombo->currentIndex() > 0; + return m_autoSignCheckbox->isChecked() && m_signEntityCombo->currentIndex() > 0; } void IosBuildSettingsWidget::onSigningEntityComboIndexChanged() { QString identifier = selectedIdentifier(); - (ui->m_autoSignCheckbox->isChecked() ? m_lastTeamSelection : m_lastProfileSelection) = identifier; + (m_autoSignCheckbox->isChecked() ? m_lastTeamSelection : m_lastProfileSelection) = identifier; updateInfoText(); updateWarningText(); - emit signingSettingsChanged(ui->m_autoSignCheckbox->isChecked(), identifier); + emit signingSettingsChanged(m_autoSignCheckbox->isChecked(), identifier); } void IosBuildSettingsWidget::onReset() { m_lastTeamSelection.clear(); m_lastProfileSelection.clear(); - ui->m_autoSignCheckbox->setChecked(true); + m_autoSignCheckbox->setChecked(true); setDefaultSigningIdentfier(""); } void IosBuildSettingsWidget::configureSigningUi(bool autoManageSigning) { - ui->m_signEntityLabel->setText(autoManageSigning ? tr("Development team:") - : tr("Provisioning profile:")); + m_signEntityLabel->setText(autoManageSigning ? tr("Development team:") + : tr("Provisioning profile:")); if (autoManageSigning) populateDevelopmentTeams(); else @@ -171,15 +228,15 @@ void IosBuildSettingsWidget::configureSigningUi(bool autoManageSigning) void IosBuildSettingsWidget::populateDevelopmentTeams() { { - QSignalBlocker blocker(ui->m_signEntityCombo); + QSignalBlocker blocker(m_signEntityCombo); // Populate Team id's - ui->m_signEntityCombo->clear(); - ui->m_signEntityCombo->addItem(tr("Default")); + m_signEntityCombo->clear(); + m_signEntityCombo->addItem(tr("Default")); foreach (auto team, IosConfigurations::developmentTeams()) { - ui->m_signEntityCombo->addItem(team->displayName()); - const int index = ui->m_signEntityCombo->count() - 1; - ui->m_signEntityCombo->setItemData(index, team->identifier(), IdentifierRole); - ui->m_signEntityCombo->setItemData(index, team->details(), Qt::ToolTipRole); + m_signEntityCombo->addItem(team->displayName()); + const int index = m_signEntityCombo->count() - 1; + m_signEntityCombo->setItemData(index, team->identifier(), IdentifierRole); + m_signEntityCombo->setItemData(index, team->details(), Qt::ToolTipRole); } } // Maintain previous selection. @@ -191,18 +248,18 @@ void IosBuildSettingsWidget::populateProvisioningProfiles() { { // Populate Team id's - QSignalBlocker blocker(ui->m_signEntityCombo); - ui->m_signEntityCombo->clear(); - ProvisioningProfiles profiles = IosConfigurations::provisioningProfiles(); + QSignalBlocker blocker(m_signEntityCombo); + m_signEntityCombo->clear(); + const ProvisioningProfiles profiles = IosConfigurations::provisioningProfiles(); if (profiles.count() > 0) { - foreach (auto profile, profiles) { - ui->m_signEntityCombo->addItem(profile->displayName()); - const int index = ui->m_signEntityCombo->count() - 1; - ui->m_signEntityCombo->setItemData(index, profile->identifier(), IdentifierRole); - ui->m_signEntityCombo->setItemData(index, profile->details(), Qt::ToolTipRole); + for (auto profile : profiles) { + m_signEntityCombo->addItem(profile->displayName()); + const int index = m_signEntityCombo->count() - 1; + m_signEntityCombo->setItemData(index, profile->identifier(), IdentifierRole); + m_signEntityCombo->setItemData(index, profile->details(), Qt::ToolTipRole); } } else { - ui->m_signEntityCombo->addItem(tr("None")); + m_signEntityCombo->addItem(tr("None")); } } // Maintain previous selection. @@ -212,7 +269,7 @@ void IosBuildSettingsWidget::populateProvisioningProfiles() QString IosBuildSettingsWidget::selectedIdentifier() const { - return ui->m_signEntityCombo->currentData(IdentifierRole).toString(); + return m_signEntityCombo->currentData(IdentifierRole).toString(); } void IosBuildSettingsWidget::updateInfoText() @@ -228,7 +285,7 @@ void IosBuildSettingsWidget::updateInfoText() }; QString identifier = selectedIdentifier(); - bool configuringTeams = ui->m_autoSignCheckbox->isChecked(); + bool configuringTeams = m_autoSignCheckbox->isChecked(); if (identifier.isEmpty()) { // No signing entity selection. @@ -256,9 +313,9 @@ void IosBuildSettingsWidget::updateInfoText() } } - ui->m_infoIconLabel->setVisible(!infoMessage.isEmpty()); - ui->m_infoLabel->setVisible(!infoMessage.isEmpty()); - ui->m_infoLabel->setText(infoMessage); + m_infoIconLabel->setVisible(!infoMessage.isEmpty()); + m_infoLabel->setVisible(!infoMessage.isEmpty()); + m_infoLabel->setText(infoMessage); } void IosBuildSettingsWidget::updateWarningText() @@ -267,8 +324,8 @@ void IosBuildSettingsWidget::updateWarningText() return; QString warningText; - bool configuringTeams = ui->m_autoSignCheckbox->isChecked(); - if (ui->m_signEntityCombo->count() < 2) { + bool configuringTeams = m_autoSignCheckbox->isChecked(); + if (m_signEntityCombo->count() < 2) { warningText = tr("%1 not configured. Use Xcode and Apple developer account to configure the " "provisioning profiles and teams.") .arg(configuringTeams ? tr("Development teams") : tr("Provisioning profiles")); @@ -287,9 +344,9 @@ void IosBuildSettingsWidget::updateWarningText() } } - ui->m_warningLabel->setVisible(!warningText.isEmpty()); - ui->m_warningIconLabel->setVisible(!warningText.isEmpty()); - ui->m_warningLabel->setText(warningText); + m_warningLabel->setVisible(!warningText.isEmpty()); + m_warningIconLabel->setVisible(!warningText.isEmpty()); + m_warningLabel->setText(warningText); } } // namespace Internal diff --git a/src/plugins/ios/iosbuildsettingswidget.h b/src/plugins/ios/iosbuildsettingswidget.h index e8641fefcbf..30c90a06357 100644 --- a/src/plugins/ios/iosbuildsettingswidget.h +++ b/src/plugins/ios/iosbuildsettingswidget.h @@ -25,20 +25,16 @@ #pragma once #include <coreplugin/id.h> -#include "projectexplorer/namedwidget.h" -#include <QWidget> - -namespace Utils { -class DetailsWidget; -} +#include <projectexplorer/namedwidget.h> +#include <QCheckBox> +#include <QComboBox> +#include <QLabel> +#include <QPushButton> namespace Ios { namespace Internal { -namespace Ui { - class IosBuildSettingsWidget; -} class IosBuildSettingsWidget : public ProjectExplorer::NamedWidget { @@ -47,7 +43,6 @@ class IosBuildSettingsWidget : public ProjectExplorer::NamedWidget public: explicit IosBuildSettingsWidget(const Core::Id &deviceType, const QString &signingIdentifier, bool isSigningAutoManaged, QWidget *parent = nullptr); - ~IosBuildSettingsWidget() override; bool isSigningAutomaticallyManaged() const; @@ -67,11 +62,18 @@ private: void updateWarningText(); private: - Ui::IosBuildSettingsWidget *ui; - Utils::DetailsWidget *m_detailsWidget; QString m_lastProfileSelection; QString m_lastTeamSelection; const Core::Id m_deviceType; + + QPushButton *m_qmakeDefaults; + QComboBox *m_signEntityCombo; + QCheckBox *m_autoSignCheckbox; + QLabel *m_signEntityLabel; + QLabel *m_infoIconLabel; + QLabel *m_infoLabel; + QLabel *m_warningIconLabel; + QLabel *m_warningLabel; }; } // namespace Internal diff --git a/src/plugins/ios/iosbuildsettingswidget.ui b/src/plugins/ios/iosbuildsettingswidget.ui deleted file mode 100644 index 3a947d42c8c..00000000000 --- a/src/plugins/ios/iosbuildsettingswidget.ui +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>Ios::Internal::IosBuildSettingsWidget</class> - <widget class="QWidget" name="Ios::Internal::IosBuildSettingsWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>467</width> - <height>141</height> - </rect> - </property> - <property name="windowTitle"> - <string/> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="1"> - <widget class="QPushButton" name="m_qmakeDefaults"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Reset</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QComboBox" name="m_signEntityCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QCheckBox" name="m_autoSignCheckbox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Automatically manage signing</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="m_signEntityLabel"> - <property name="text"> - <string>Development team:</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="m_infoIconLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="m_infoLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - <property name="wordWrap"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="m_warningIconLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="m_warningLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> |