Improve git archive userbility

Archive should be saved at one level upper directory from repo dir.
When user change archive name to e.g. project-v1.0, Qt Creator saves it
to project-v1.tar.gz now. It should be project-v1.0.tar.gz

Change-Id: Ibcd3c6bd8413bbb28fcdae13e5eb43016dc2b6a3
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Tasuku Suzuki
2020-09-02 16:04:44 +09:00
parent 45dd074441
commit 367d0dc4f7

View File

@@ -1225,7 +1225,7 @@ void GitClient::archive(const QString &workingDirectory, QString commit)
QString archiveName = QFileDialog::getSaveFileName( QString archiveName = QFileDialog::getSaveFileName(
ICore::dialogParent(), ICore::dialogParent(),
tr("Generate %1 archive").arg(repoName), tr("Generate %1 archive").arg(repoName),
repoDirectory + QString("/%1-%2").arg(repoName).arg(commit.left(8)), repoDirectory + QString("/../%1-%2").arg(repoName).arg(commit.left(8)),
filters.keys().join(";;"), filters.keys().join(";;"),
&selectedFilter); &selectedFilter);
if (archiveName.isEmpty()) if (archiveName.isEmpty())
@@ -1233,7 +1233,7 @@ void GitClient::archive(const QString &workingDirectory, QString commit)
QString extension = filters.value(selectedFilter); QString extension = filters.value(selectedFilter);
QFileInfo archive(archiveName); QFileInfo archive(archiveName);
if (archive.completeSuffix() != extension) { if (archive.completeSuffix() != extension) {
archive = QFileInfo(archive.absoluteDir().absoluteFilePath(archive.baseName() + extension)); archive = QFileInfo(archive.filePath() + extension);
} }
if (archive.exists()) { if (archive.exists()) {