aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-06-11 16:24:42 +0200
committerEike Ziller <eike.ziller@qt.io>2020-07-13 08:22:04 +0000
commit92cd8e60050c350b0e800ca198c4cfe4014049ce (patch)
tree54992d0be90817a4f115a9ae493ff1957bbb89dd
parent74961369921d5112aed3014e24b71930a664e696 (diff)
Android: Use re-usable "copy and ask for overwrite" callable
Change-Id: I73779b5eaeebbd44fa6333f067adf220ddd77be4 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r--src/plugins/android/createandroidmanifestwizard.cpp76
-rw-r--r--src/plugins/android/createandroidmanifestwizard.h8
2 files changed, 10 insertions, 74 deletions
diff --git a/src/plugins/android/createandroidmanifestwizard.cpp b/src/plugins/android/createandroidmanifestwizard.cpp
index 097828ce38..ed5e538200 100644
--- a/src/plugins/android/createandroidmanifestwizard.cpp
+++ b/src/plugins/android/createandroidmanifestwizard.cpp
@@ -245,7 +245,7 @@ void ChooseDirectoryPage::initializePage()
// CreateAndroidManifestWizard
//
CreateAndroidManifestWizard::CreateAndroidManifestWizard(BuildSystem *buildSystem)
- : m_buildSystem(buildSystem), m_copyState(Ask)
+ : m_buildSystem(buildSystem)
{
setWindowTitle(tr("Create Android Template Files Wizard"));
@@ -290,70 +290,12 @@ void CreateAndroidManifestWizard::setCopyGradle(bool copy)
m_copyGradle = copy;
}
-bool CreateAndroidManifestWizard::copy(const QFileInfo &src, const QFileInfo &dst, QStringList * addedFiles)
-{
- bool copyFile = true;
- if (dst.exists()) {
- switch (m_copyState) {
- case Ask:
- {
- int res = QMessageBox::question(this,
- tr("Overwrite %1 file").arg(dst.fileName()),
- tr("Overwrite existing \"%1\"?")
- .arg(QDir(m_directory).relativeFilePath(dst.absoluteFilePath())),
- QMessageBox::Yes | QMessageBox::YesToAll |
- QMessageBox::No | QMessageBox::NoToAll |
- QMessageBox::Cancel);
- switch (res) {
- case QMessageBox::YesToAll:
- m_copyState = OverwriteAll;
- break;
-
- case QMessageBox::Yes:
- break;
-
- case QMessageBox::NoToAll:
- m_copyState = SkipAll;
- copyFile = false;
- break;
-
- case QMessageBox::No:
- copyFile = false;
- break;
- default:
- return false;
- }
- }
- break;
- case SkipAll:
- copyFile = false;
- break;
- default:
- break;
- }
- if (copyFile)
- QFile::remove(dst.filePath());
- }
-
- if (!dst.absoluteDir().exists())
- dst.absoluteDir().mkpath(dst.absolutePath());
-
- if (copyFile && !QFile::copy(src.filePath(), dst.filePath())) {
- QMessageBox::warning(this, tr("File Creation Error"),
- tr("Could not copy file \"%1\" to \"%2\".")
- .arg(src.filePath()).arg(dst.filePath()));
- return false;
- }
- addedFiles->append(dst.absoluteFilePath());
- return true;
-}
-
void CreateAndroidManifestWizard::createAndroidTemplateFiles()
{
if (m_directory.isEmpty())
return;
- QStringList addedFiles;
+ FileUtils::CopyAskingForOverwrite copy(this);
Target *target = m_buildSystem->target();
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
if (!version)
@@ -361,21 +303,23 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles()
if (version->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0)) {
const QString src = version->prefix().toString() + "/src/android/java/AndroidManifest.xml";
FileUtils::copyRecursively(FilePath::fromString(src),
- FilePath::fromString(m_directory + QLatin1String("/AndroidManifest.xml")),
- nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
+ FilePath::fromString(m_directory
+ + QLatin1String("/AndroidManifest.xml")),
+ nullptr,
+ copy);
} else {
const QString src = version->prefix().toString() + "/src/android/templates";
FileUtils::copyRecursively(FilePath::fromString(src),
FilePath::fromString(m_directory),
- nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
+ nullptr,
+ copy);
if (m_copyGradle) {
FilePath gradlePath = version->prefix().pathAppended("src/3rdparty/gradle");
if (!gradlePath.exists())
gradlePath = AndroidConfigurations::currentConfig().sdkLocation().pathAppended("/tools/templates/gradle/wrapper");
- FileUtils::copyRecursively(gradlePath, FilePath::fromString(m_directory),
- nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
+ FileUtils::copyRecursively(gradlePath, FilePath::fromString(m_directory), nullptr, copy);
}
AndroidManager::updateGradleProperties(target, m_buildKey);
@@ -385,7 +329,7 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles()
QString androidPackageDir;
ProjectNode *node = target->project()->findNodeForBuildKey(m_buildKey);
if (node) {
- node->addFiles(addedFiles);
+ node->addFiles(copy.files());
androidPackageDir = node->data(Android::Constants::AndroidPackageSourceDir).toString();
if (androidPackageDir.isEmpty()) {
diff --git a/src/plugins/android/createandroidmanifestwizard.h b/src/plugins/android/createandroidmanifestwizard.h
index eee030ff33..694e4b8cb7 100644
--- a/src/plugins/android/createandroidmanifestwizard.h
+++ b/src/plugins/android/createandroidmanifestwizard.h
@@ -54,19 +54,11 @@ public:
ProjectExplorer::BuildSystem *buildSystem() const;
private:
- enum CopyState {
- Ask,
- OverwriteAll,
- SkipAll
- };
- bool copy(const QFileInfo &src, const QFileInfo &dst, QStringList *addedFiles);
-
void createAndroidManifestFile();
void createAndroidTemplateFiles();
ProjectExplorer::BuildSystem *m_buildSystem;
QString m_buildKey;
QString m_directory;
- CopyState m_copyState;
bool m_copyGradle;
};