diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2020-01-24 11:18:46 +0200 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@qt.io> | 2020-01-29 08:01:45 +0000 |
commit | c4113381ee6aa3f7b07ff6ce34582d92ca472550 (patch) | |
tree | d20db69b99f40306f14781d2cd813ec82078290c /src/plugins/android/androidmanifesteditorwidget.cpp | |
parent | 0d1e03791ae7b32ca2f04ca6b71cb29f3bd0a54a (diff) | |
download | qt-creator-c4113381ee6aa3f7b07ff6ce34582d92ca472550.tar.gz |
Android: make manifest editor icon buttons more self-evident
Task-number: QTCREATORBUG-23283
Change-Id: I727a0c808c2ce5a50b696889ac973692a03422be
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/android/androidmanifesteditorwidget.cpp')
-rw-r--r-- | src/plugins/android/androidmanifesteditorwidget.cpp | 90 |
1 files changed, 72 insertions, 18 deletions
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index 7a47922777..60d5141a05 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -232,29 +232,25 @@ void AndroidManifestEditorWidget::initializePage() formLayout->addRow(tr("Run:"), m_targetLineEdit); auto iconLayout = new QHBoxLayout(); - m_lIconButton = new QToolButton(applicationGroupBox); - m_lIconButton->setMinimumSize(QSize(48, 48)); - m_lIconButton->setMaximumSize(QSize(48, 48)); - m_lIconButton->setToolTip(tr("Select low DPI icon.")); - iconLayout->addWidget(m_lIconButton); - iconLayout->addItem(new QSpacerItem(28, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); + createDPIButton(iconLayout, + applicationGroupBox, + m_lIconButton, m_lIconClearButton, + tr("Low DPI icon"), tr("Select low DPI icon.")); - m_mIconButton = new QToolButton(applicationGroupBox); - m_mIconButton->setMinimumSize(QSize(48, 48)); - m_mIconButton->setMaximumSize(QSize(48, 48)); - m_mIconButton->setToolTip(tr("Select medium DPI icon.")); - iconLayout->addWidget(m_mIconButton); + createDPIButton(iconLayout, + applicationGroupBox, + m_mIconButton, m_mIconClearButton, + tr("Medium DPI icon"), tr("Select medium DPI icon.")); - iconLayout->addItem(new QSpacerItem(28, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); + createDPIButton(iconLayout, + applicationGroupBox, + m_hIconButton, m_hIconClearButton, + tr("High DPI icon"), tr("Select high DPI icon.")); - m_hIconButton = new QToolButton(applicationGroupBox); - m_hIconButton->setMinimumSize(QSize(48, 48)); - m_hIconButton->setMaximumSize(QSize(48, 48)); - m_hIconButton->setToolTip(tr("Select high DPI icon.")); - iconLayout->addWidget(m_hIconButton); + formLayout->addRow(tr("Application icon:"), new QLabel()); - formLayout->addRow(tr("Application icon:"), iconLayout); + formLayout->addRow(QString(), iconLayout); applicationGroupBox->setLayout(formLayout); @@ -271,6 +267,12 @@ void AndroidManifestEditorWidget::initializePage() this, &AndroidManifestEditorWidget::setMDPIIcon); connect(m_hIconButton, &QAbstractButton::clicked, this, &AndroidManifestEditorWidget::setHDPIIcon); + connect(m_lIconClearButton, &QAbstractButton::clicked, + this, &AndroidManifestEditorWidget::clearLDPIIcon); + connect(m_mIconClearButton, &QAbstractButton::clicked, + this, &AndroidManifestEditorWidget::clearMDPIIcon); + connect(m_hIconClearButton, &QAbstractButton::clicked, + this, &AndroidManifestEditorWidget::clearHDPIIcon); } @@ -1278,6 +1280,58 @@ void AndroidManifestEditorWidget::setHDPIIcon() setDirty(true); } +void AndroidManifestEditorWidget::clearLDPIIcon() +{ + m_lIconPath.clear(); + m_lIconButton->setIcon(QIcon()); +} + +void AndroidManifestEditorWidget::clearMDPIIcon() +{ + m_mIconPath.clear(); + m_mIconButton->setIcon(QIcon()); +} + +void AndroidManifestEditorWidget::clearHDPIIcon() +{ + m_hIconPath.clear(); + m_hIconButton->setIcon(QIcon()); +} + +void AndroidManifestEditorWidget::createDPIButton(QHBoxLayout *layout, + QWidget *parent, + QToolButton *&button, + QToolButton *&clearButton, + const QString &title, + const QString &tooltip) +{ + auto iconLayout = new QVBoxLayout(); + auto iconTitle = new QLabel(title, parent); + auto iconButtonLayout = new QGridLayout(); + button = new QToolButton(parent); + button->setMinimumSize(QSize(48, 48)); + button->setMaximumSize(QSize(48, 48)); + button->setToolTip(tooltip); + clearButton = new QToolButton(parent); + clearButton->setMinimumSize(QSize(16, 16)); + clearButton->setMaximumSize(QSize(16, 16)); + clearButton->setIcon(Utils::Icons::CLOSE_FOREGROUND.icon()); + auto label = new QLabel(tr("Click to select"), parent); + iconLayout->addWidget(iconTitle); + iconLayout->setAlignment(iconTitle, Qt::AlignHCenter); + iconButtonLayout->setColumnMinimumWidth(0, 16); + iconButtonLayout->addWidget(button, 0, 1, 1, 3); + iconButtonLayout->setAlignment(button, Qt::AlignVCenter); + iconButtonLayout->addWidget(clearButton, 0, 4, 1, 1); + iconButtonLayout->setAlignment(clearButton, Qt::AlignTop); + iconLayout->addLayout(iconButtonLayout); + iconLayout->setAlignment(iconButtonLayout, Qt::AlignHCenter); + iconLayout->addWidget(label); + iconLayout->setAlignment(label, Qt::AlignHCenter); + + layout->addLayout(iconLayout); +} + void AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked() { setDirty(true); |