aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@qt.io>2020-09-29 15:01:30 +0300
committerVille Voutilainen <ville.voutilainen@qt.io>2020-10-02 16:05:06 +0000
commit2e39132debcff470905835ed2494fce581180cca (patch)
tree812c9d7a09bad831f822514ec0e90f830c255b9d
parenta37a02a6b36232a46ec0e446239c09598c0b3aad (diff)
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>
-rw-r--r--src/plugins/android/androidmanifesteditoriconcontainerwidget.cpp13
-rw-r--r--src/plugins/android/androidmanifesteditoriconcontainerwidget.h5
-rw-r--r--src/plugins/android/androidmanifesteditorwidget.cpp2
3 files changed, 19 insertions, 1 deletions
diff --git a/src/plugins/android/androidmanifesteditoriconcontainerwidget.cpp b/src/plugins/android/androidmanifesteditoriconcontainerwidget.cpp
index 3cd14cdeaf..e15fd26452 100644
--- a/src/plugins/android/androidmanifesteditoriconcontainerwidget.cpp
+++ b/src/plugins/android/androidmanifesteditoriconcontainerwidget.cpp
@@ -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
diff --git a/src/plugins/android/androidmanifesteditoriconcontainerwidget.h b/src/plugins/android/androidmanifesteditoriconcontainerwidget.h
index 2e657d017a..d4a51b5929 100644
--- a/src/plugins/android/androidmanifesteditoriconcontainerwidget.h
+++ b/src/plugins/android/androidmanifesteditoriconcontainerwidget.h
@@ -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
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp
index a235e431cb..49013e31b5 100644
--- a/src/plugins/android/androidmanifesteditorwidget.cpp
+++ b/src/plugins/android/androidmanifesteditorwidget.cpp
@@ -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);