forked from qt-creator/qt-creator
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:
@@ -99,10 +99,22 @@ AndroidManifestEditorIconContainerWidget::AndroidManifestEditorIconContainerWidg
|
|||||||
m_iconButtons.push_back(hIconButton);
|
m_iconButtons.push_back(hIconButton);
|
||||||
iconLayout->addStretch(6);
|
iconLayout->addStretch(6);
|
||||||
|
|
||||||
|
auto handleIconModification = [this] {
|
||||||
|
bool iconsMaybeChanged = hasIcons();
|
||||||
|
if (m_hasIcons != iconsMaybeChanged)
|
||||||
|
iconsModified();
|
||||||
|
m_hasIcons = iconsMaybeChanged;
|
||||||
|
};
|
||||||
for (auto &&iconButton : m_iconButtons) {
|
for (auto &&iconButton : m_iconButtons) {
|
||||||
connect(masterIconButton, &AndroidManifestEditorIconWidget::iconSelected,
|
connect(masterIconButton, &AndroidManifestEditorIconWidget::iconSelected,
|
||||||
iconButton, &AndroidManifestEditorIconWidget::setIconFromPath);
|
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)
|
void AndroidManifestEditorIconContainerWidget::setIconFileName(const QString &name)
|
||||||
@@ -121,6 +133,7 @@ void AndroidManifestEditorIconContainerWidget::loadIcons()
|
|||||||
iconButton->setTargetIconFileName(m_iconFileName + imageSuffix);
|
iconButton->setTargetIconFileName(m_iconFileName + imageSuffix);
|
||||||
iconButton->loadIcon();
|
iconButton->loadIcon();
|
||||||
}
|
}
|
||||||
|
m_hasIcons = hasIcons();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidManifestEditorIconContainerWidget::hasIcons() const
|
bool AndroidManifestEditorIconContainerWidget::hasIcons() const
|
||||||
|
@@ -42,7 +42,7 @@ class AndroidManifestEditorIconWidget;
|
|||||||
|
|
||||||
class AndroidManifestEditorIconContainerWidget : public QWidget
|
class AndroidManifestEditorIconContainerWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_DECLARE_TR_FUNCTIONS(Android::Internal::AndroidManifestEditorIconContainerWidget)
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AndroidManifestEditorIconContainerWidget(QWidget *parent,
|
explicit AndroidManifestEditorIconContainerWidget(QWidget *parent,
|
||||||
@@ -54,6 +54,9 @@ public:
|
|||||||
private:
|
private:
|
||||||
QVector<AndroidManifestEditorIconWidget *> m_iconButtons;
|
QVector<AndroidManifestEditorIconWidget *> m_iconButtons;
|
||||||
QString m_iconFileName = QLatin1String("icon");
|
QString m_iconFileName = QLatin1String("icon");
|
||||||
|
bool m_hasIcons = false;
|
||||||
|
signals:
|
||||||
|
void iconsModified();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -461,6 +461,8 @@ QGroupBox *AndroidManifestEditorWidget::createAdvancedGroupBox(QWidget *parent)
|
|||||||
this, &AndroidManifestEditorWidget::setInvalidServiceInfo);
|
this, &AndroidManifestEditorWidget::setInvalidServiceInfo);
|
||||||
connect(m_splashButtons, &SplashIconContainerWidget::splashScreensModified,
|
connect(m_splashButtons, &SplashIconContainerWidget::splashScreensModified,
|
||||||
this, [this]() { setDirty(); });
|
this, [this]() { setDirty(); });
|
||||||
|
connect(m_iconButtons, &AndroidManifestEditorIconContainerWidget::iconsModified,
|
||||||
|
this, [this]() { setDirty(); });
|
||||||
|
|
||||||
formLayout->addRow(m_advanvedTabWidget);
|
formLayout->addRow(m_advanvedTabWidget);
|
||||||
otherGroupBox->setLayout(formLayout);
|
otherGroupBox->setLayout(formLayout);
|
||||||
|
Reference in New Issue
Block a user