aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/utils/GpgUtils.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-01-24 06:32:56 +0000
committersaturneric <[email protected]>2024-01-24 06:32:56 +0000
commit38c9d2ce81b2c4d33caa120d07fe9605525722bf (patch)
treeb8624478413ea55341bc58612b7300a83d7fdc62 /src/core/utils/GpgUtils.cpp
parentfix: decrypt tar.gpg but output path is incorrect (diff)
downloadGpgFrontend-38c9d2ce81b2c4d33caa120d07fe9605525722bf.tar.gz
GpgFrontend-38c9d2ce81b2c4d33caa120d07fe9605525722bf.zip
fix: improve file page
Diffstat (limited to 'src/core/utils/GpgUtils.cpp')
-rw-r--r--src/core/utils/GpgUtils.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/core/utils/GpgUtils.cpp b/src/core/utils/GpgUtils.cpp
index cbe71a99..75041eca 100644
--- a/src/core/utils/GpgUtils.cpp
+++ b/src/core/utils/GpgUtils.cpp
@@ -99,8 +99,9 @@ auto TextIsSigned(QString text) -> int {
auto SetExtensionOfOutputFile(const QString& path, GpgOperation opera,
bool ascii) -> QString {
+ auto file_info = QFileInfo(path);
QString new_extension;
- QString current_extension = QFileInfo(path).suffix();
+ QString current_extension = file_info.suffix();
if (ascii) {
switch (opera) {
@@ -127,22 +128,24 @@ auto SetExtensionOfOutputFile(const QString& path, GpgOperation opera,
}
if (!new_extension.isEmpty()) {
- return QFileInfo(path).path() + "/" + QFileInfo(path).completeBaseName() +
- "." + new_extension;
+ return file_info.absolutePath() + "/" + file_info.completeBaseName() + "." +
+ new_extension;
}
- return QFileInfo(path).path() + "/" + QFileInfo(path).completeBaseName();
+ return file_info.absolutePath() + "/" + file_info.baseName();
}
auto SetExtensionOfOutputFileForArchive(const QString& path, GpgOperation opera,
bool ascii) -> QString {
QString extension;
+ auto file_info = QFileInfo(path);
if (ascii) {
switch (opera) {
case kENCRYPT:
case kENCRYPT_SIGN:
- extension = ".tar.asc";
- return path + extension;
+ if (file_info.completeSuffix() != "tar") extension += ".tar";
+ extension += ".asc";
+ return QFileInfo(path).absoluteFilePath() + extension;
break;
default:
break;
@@ -151,15 +154,15 @@ auto SetExtensionOfOutputFileForArchive(const QString& path, GpgOperation opera,
switch (opera) {
case kENCRYPT:
case kENCRYPT_SIGN:
- extension = ".tar.gpg";
- return path + extension;
+ if (file_info.completeSuffix() != "tar") extension += ".tar";
+ extension += ".gpg";
+ return QFileInfo(path).absoluteFilePath() + extension;
break;
default:
break;
}
}
- auto file_info = QFileInfo(path);
return file_info.absolutePath() + "/" + file_info.baseName();
}