mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-28 08:49:42 -05:00
Add DB_DIR placeholder for autoopen urls
This commit is contained in:
parent
bcb64a231f
commit
d863496f62
@ -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);
|
||||
}
|
||||
|
@ -205,7 +205,8 @@ public:
|
||||
DateTimeUtcDay,
|
||||
DateTimeUtcHour,
|
||||
DateTimeUtcMinute,
|
||||
DateTimeUtcSecond
|
||||
DateTimeUtcSecond,
|
||||
DbDir
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user