diff options
author | Tasuku Suzuki <[email protected]> | 2021-04-07 14:26:37 +0900 |
---|---|---|
committer | Tasuku Suzuki <[email protected]> | 2021-04-07 12:58:26 +0000 |
commit | ffd5fc055f458407adbb8d190d9bdae5c5f0959d (patch) | |
tree | 4b4278f286d05db783289cba414a3a769b5b5738 /src/plugins/git/gitclient.cpp | |
parent | d9cf979d6d1d99051be60aebeb78c28a6251249b (diff) |
Git: Improve technical term "Tarball" for archive
Retrieve filters' name and suffix from mime database in Utils
Change-Id: Ia48b44541d2104abb61dac27b9ce5820e341cbf6
Reviewed-by: Eike Ziller <[email protected]>
Reviewed-by: Oswald Buddenhagen <[email protected]>
Diffstat (limited to 'src/plugins/git/gitclient.cpp')
-rw-r--r-- | src/plugins/git/gitclient.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index c9da36cc749..0048043bcc0 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -46,6 +46,7 @@ #include <utils/checkablemessagebox.h> #include <utils/fileutils.h> #include <utils/hostosinfo.h> +#include <utils/mimetypes/mimedatabase.h> #include <utils/qtcassert.h> #include <utils/qtcprocess.h> #include <utils/stringutils.h> @@ -1219,15 +1220,19 @@ void GitClient::archive(const QString &workingDirectory, QString commit) repoDirectory = workingDirectory; QString repoName = QFileInfo(repoDirectory).fileName(); - QHash<QString, QString> filters { - { tr("Tarball (*.tar.gz)"), ".tar.gz" }, - { tr("Zip archive (*.zip)"), ".zip" } - }; + QHash<QString, QString> filters; QString selectedFilter; - if (HostOsInfo::isWindowsHost()) - selectedFilter = filters.key(".zip"); - else - selectedFilter = filters.key(".tar.gz"); + auto appendFilter = [&filters, &selectedFilter](const QString &name, bool isSelected){ + const auto mimeType = Utils::mimeTypeForName(name); + const auto filterString = mimeType.filterString(); + filters.insert(filterString, "." + mimeType.preferredSuffix()); + if (isSelected) + selectedFilter = filterString; + }; + + bool windows = HostOsInfo::isWindowsHost(); + appendFilter("application/zip", windows); + appendFilter("application/x-compressed-tar", !windows); QString output; if (synchronousRevParseCmd(repoDirectory, commit, &output)) |