Android: fix a thinko in syncing icons to widgets

The path can't be set unconditionally, and copyIcon
sets the path when necessary. So call copyIcon here.

Task-number: QTCREATORBUG-23747
Change-Id: I72a61798ad54c94a5c2a30bb313eb234f51d5ff3
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Ville Voutilainen
2020-03-23 15:45:55 +02:00
parent 80f3f34c96
commit 3af1a7b4cf

View File

@@ -840,12 +840,12 @@ void AndroidManifestEditorWidget::syncToWidgets(const QDomDocument &doc)
metadataElem = metadataElem.nextSiblingElement(QLatin1String("meta-data")); metadataElem = metadataElem.nextSiblingElement(QLatin1String("meta-data"));
} }
copyIcon(LowDPI, baseDir, baseDir + iconPath(LowDPI));
copyIcon(MediumDPI, baseDir, baseDir + iconPath(MediumDPI));
copyIcon(HighDPI, baseDir, baseDir + iconPath(HighDPI));
m_lIconButton->setIcon(icon(baseDir, LowDPI)); m_lIconButton->setIcon(icon(baseDir, LowDPI));
m_mIconButton->setIcon(icon(baseDir, MediumDPI)); m_mIconButton->setIcon(icon(baseDir, MediumDPI));
m_hIconButton->setIcon(icon(baseDir, HighDPI)); m_hIconButton->setIcon(icon(baseDir, HighDPI));
m_lIconPath = baseDir + iconPath(LowDPI);
m_mIconPath = baseDir + iconPath(MediumDPI);
m_hIconPath = baseDir + iconPath(HighDPI);
disconnect(m_defaultPermissonsCheckBox, &QCheckBox::stateChanged, disconnect(m_defaultPermissonsCheckBox, &QCheckBox::stateChanged,
this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked); this, &AndroidManifestEditorWidget::defaultPermissionOrFeatureCheckBoxClicked);
@@ -1343,11 +1343,11 @@ void AndroidManifestEditorWidget::copyIcon(IconDPI dpi, const QString &baseDir,
return; return;
} }
QFileInfo targetFile(targetPath); QFileInfo targetFile(targetPath);
if (filePath == targetPath) if (filePath != targetPath)
return;
removeIcon(dpi, baseDir); removeIcon(dpi, baseDir);
QImage original(filePath); QImage original(filePath);
if (!targetPath.isEmpty() && !original.isNull()) { if (!targetPath.isEmpty() && !original.isNull()) {
if (filePath != targetPath) {
QDir dir; QDir dir;
dir.mkpath(QFileInfo(targetPath).absolutePath()); dir.mkpath(QFileInfo(targetPath).absolutePath());
QSize targetSize = iconSize(dpi); QSize targetSize = iconSize(dpi);
@@ -1355,6 +1355,7 @@ void AndroidManifestEditorWidget::copyIcon(IconDPI dpi, const QString &baseDir,
Qt::KeepAspectRatio, Qt::SmoothTransformation); Qt::KeepAspectRatio, Qt::SmoothTransformation);
toggleIconScaleWarning(dpi, scaled.width() > original.width() || scaled.height() > original.height()); toggleIconScaleWarning(dpi, scaled.width() > original.width() || scaled.height() > original.height());
scaled.save(targetPath); scaled.save(targetPath);
}
updateIconPath(targetPath, dpi); updateIconPath(targetPath, dpi);
} }
} }
@@ -1403,6 +1404,7 @@ void AndroidManifestEditorWidget::setMasterIcon()
m_lIconButton->setIcon(icon(baseDir, LowDPI)); m_lIconButton->setIcon(icon(baseDir, LowDPI));
m_mIconButton->setIcon(icon(baseDir, MediumDPI)); m_mIconButton->setIcon(icon(baseDir, MediumDPI));
m_hIconButton->setIcon(icon(baseDir, HighDPI)); m_hIconButton->setIcon(icon(baseDir, HighDPI));
syncToEditor();
} }
void AndroidManifestEditorWidget::setLDPIIcon() void AndroidManifestEditorWidget::setLDPIIcon()
@@ -1414,6 +1416,7 @@ void AndroidManifestEditorWidget::setLDPIIcon()
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
copyIcon(LowDPI, baseDir, m_lIconPath); copyIcon(LowDPI, baseDir, m_lIconPath);
m_lIconButton->setIcon(icon(baseDir, LowDPI)); m_lIconButton->setIcon(icon(baseDir, LowDPI));
syncToEditor();
} }
void AndroidManifestEditorWidget::setMDPIIcon() void AndroidManifestEditorWidget::setMDPIIcon()
@@ -1425,6 +1428,7 @@ void AndroidManifestEditorWidget::setMDPIIcon()
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
copyIcon(MediumDPI, baseDir, m_mIconPath); copyIcon(MediumDPI, baseDir, m_mIconPath);
m_mIconButton->setIcon(icon(baseDir, MediumDPI)); m_mIconButton->setIcon(icon(baseDir, MediumDPI));
syncToEditor();
} }
void AndroidManifestEditorWidget::setHDPIIcon() void AndroidManifestEditorWidget::setHDPIIcon()
@@ -1436,6 +1440,7 @@ void AndroidManifestEditorWidget::setHDPIIcon()
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
copyIcon(HighDPI, baseDir, m_hIconPath); copyIcon(HighDPI, baseDir, m_hIconPath);
m_hIconButton->setIcon(icon(baseDir, HighDPI)); m_hIconButton->setIcon(icon(baseDir, HighDPI));
syncToEditor();
} }
void AndroidManifestEditorWidget::clearLDPIIcon() void AndroidManifestEditorWidget::clearLDPIIcon()
@@ -1444,6 +1449,7 @@ void AndroidManifestEditorWidget::clearLDPIIcon()
m_lIconButton->setIcon(QIcon()); m_lIconButton->setIcon(QIcon());
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
removeIcon(LowDPI, baseDir); removeIcon(LowDPI, baseDir);
syncToEditor();
} }
void AndroidManifestEditorWidget::clearMDPIIcon() void AndroidManifestEditorWidget::clearMDPIIcon()
@@ -1452,6 +1458,7 @@ void AndroidManifestEditorWidget::clearMDPIIcon()
m_mIconButton->setIcon(QIcon()); m_mIconButton->setIcon(QIcon());
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
removeIcon(MediumDPI, baseDir); removeIcon(MediumDPI, baseDir);
syncToEditor();
} }
void AndroidManifestEditorWidget::clearHDPIIcon() void AndroidManifestEditorWidget::clearHDPIIcon()
@@ -1460,6 +1467,7 @@ void AndroidManifestEditorWidget::clearHDPIIcon()
m_hIconButton->setIcon(QIcon()); m_hIconButton->setIcon(QIcon());
QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath(); QString baseDir = m_textEditorWidget->textDocument()->filePath().toFileInfo().absolutePath();
removeIcon(HighDPI, baseDir); removeIcon(HighDPI, baseDir);
syncToEditor();
} }
void AndroidManifestEditorWidget::createDPIButton(QHBoxLayout *layout, void AndroidManifestEditorWidget::createDPIButton(QHBoxLayout *layout,