Android: Set the manifest dirty when app icons are set or removed

Task-number: QTCREATORBUG-24700
Change-Id: I862b5a17f47c7c6bbf7900b8923a246b8e902190
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
Ville Voutilainen
2020-09-29 15:01:30 +03:00
parent a37a02a6b3
commit 2e39132deb
3 changed files with 19 additions and 1 deletions

View File

@@ -99,10 +99,22 @@ AndroidManifestEditorIconContainerWidget::AndroidManifestEditorIconContainerWidg
m_iconButtons.push_back(hIconButton);
iconLayout->addStretch(6);
auto handleIconModification = [this] {
bool iconsMaybeChanged = hasIcons();
if (m_hasIcons != iconsMaybeChanged)
iconsModified();
m_hasIcons = iconsMaybeChanged;
};
for (auto &&iconButton : m_iconButtons) {
connect(masterIconButton, &AndroidManifestEditorIconWidget::iconSelected,
iconButton, &AndroidManifestEditorIconWidget::setIconFromPath);
connect(iconButton, &AndroidManifestEditorIconWidget::iconRemoved,
this, handleIconModification);
connect(iconButton, &AndroidManifestEditorIconWidget::iconSelected,
this, handleIconModification);
}
connect(masterIconButton, &AndroidManifestEditorIconWidget::iconSelected,
this, handleIconModification);
}
void AndroidManifestEditorIconContainerWidget::setIconFileName(const QString &name)
@@ -121,6 +133,7 @@ void AndroidManifestEditorIconContainerWidget::loadIcons()
iconButton->setTargetIconFileName(m_iconFileName + imageSuffix);
iconButton->loadIcon();
}
m_hasIcons = hasIcons();
}
bool AndroidManifestEditorIconContainerWidget::hasIcons() const

View File

@@ -42,7 +42,7 @@ class AndroidManifestEditorIconWidget;
class AndroidManifestEditorIconContainerWidget : public QWidget
{
Q_DECLARE_TR_FUNCTIONS(Android::Internal::AndroidManifestEditorIconContainerWidget)
Q_OBJECT
public:
explicit AndroidManifestEditorIconContainerWidget(QWidget *parent,
@@ -54,6 +54,9 @@ public:
private:
QVector<AndroidManifestEditorIconWidget *> m_iconButtons;
QString m_iconFileName = QLatin1String("icon");
bool m_hasIcons = false;
signals:
void iconsModified();
};
} // namespace Internal

View File

@@ -461,6 +461,8 @@ QGroupBox *AndroidManifestEditorWidget::createAdvancedGroupBox(QWidget *parent)
this, &AndroidManifestEditorWidget::setInvalidServiceInfo);
connect(m_splashButtons, &SplashIconContainerWidget::splashScreensModified,
this, [this]() { setDirty(); });
connect(m_iconButtons, &AndroidManifestEditorIconContainerWidget::iconsModified,
this, [this]() { setDirty(); });
formLayout->addRow(m_advanvedTabWidget);
otherGroupBox->setLayout(formLayout);