Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/Entry.cpp7
-rw-r--r--src/core/Entry.h3
-rw-r--r--src/gui/DatabaseWidget.cpp9
3 files changed, 13 insertions, 6 deletions
diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp
index 26371774b..364407119 100644
--- a/src/core/Entry.cpp
+++ b/src/core/Entry.cpp
@@ -903,6 +903,10 @@ QString Entry::resolvePlaceholderRecursive(const QString& placeholder, int maxDe
return url();
}
return resolveMultiplePlaceholdersRecursive(url(), maxDepth - 1);
+ case PlaceholderType::DbDir: {
+ QFileInfo fileInfo(database()->filePath());
+ return fileInfo.absoluteDir().absolutePath();
+ }
case PlaceholderType::UrlWithoutScheme:
case PlaceholderType::UrlScheme:
case PlaceholderType::UrlHost:
@@ -1237,7 +1241,8 @@ Entry::PlaceholderType Entry::placeholderType(const QString& placeholder) const
{QStringLiteral("{DT_UTC_DAY}"), PlaceholderType::DateTimeUtcDay},
{QStringLiteral("{DT_UTC_HOUR}"), PlaceholderType::DateTimeUtcHour},
{QStringLiteral("{DT_UTC_MINUTE}"), PlaceholderType::DateTimeUtcMinute},
- {QStringLiteral("{DT_UTC_SECOND}"), PlaceholderType::DateTimeUtcSecond}};
+ {QStringLiteral("{DT_UTC_SECOND}"), PlaceholderType::DateTimeUtcSecond},
+ {QStringLiteral("{DB_DIR}"), PlaceholderType::DbDir}};
return placeholders.value(placeholder.toUpper(), PlaceholderType::Unknown);
}
diff --git a/src/core/Entry.h b/src/core/Entry.h
index 591372cdc..671f840e5 100644
--- a/src/core/Entry.h
+++ b/src/core/Entry.h
@@ -205,7 +205,8 @@ public:
DateTimeUtcDay,
DateTimeUtcHour,
DateTimeUtcMinute,
- DateTimeUtcSecond
+ DateTimeUtcSecond,
+ DbDir
};
/**
diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp
index 980b8d32a..88aaf9565 100644
--- a/src/gui/DatabaseWidget.cpp
+++ b/src/gui/DatabaseWidget.cpp
@@ -1973,15 +1973,16 @@ void DatabaseWidget::processAutoOpen()
}
QFileInfo filepath;
QFileInfo keyfile;
+ QString databaseUrl = entry->resolveMultiplePlaceholders(entry->url());
- if (entry->url().startsWith("file://")) {
- QUrl url(entry->url());
+ if (databaseUrl.startsWith("file://")) {
+ QUrl url(databaseUrl);
filepath.setFile(url.toLocalFile());
} else {
- filepath.setFile(entry->url());
+ filepath.setFile(databaseUrl);
if (filepath.isRelative()) {
QFileInfo currentpath(m_db->filePath());
- filepath.setFile(currentpath.absoluteDir(), entry->url());
+ filepath.setFile(currentpath.absoluteDir(), databaseUrl);
}
}