Add DB_DIR placeholder for autoopen urls

This commit is contained in:
stingray21 2020-05-20 22:44:38 -04:00 committed by Jonathan White
parent bcb64a231f
commit d863496f62
3 changed files with 13 additions and 6 deletions

View File

@ -903,6 +903,10 @@ QString Entry::resolvePlaceholderRecursive(const QString& placeholder, int maxDe
return url(); return url();
} }
return resolveMultiplePlaceholdersRecursive(url(), maxDepth - 1); return resolveMultiplePlaceholdersRecursive(url(), maxDepth - 1);
case PlaceholderType::DbDir: {
QFileInfo fileInfo(database()->filePath());
return fileInfo.absoluteDir().absolutePath();
}
case PlaceholderType::UrlWithoutScheme: case PlaceholderType::UrlWithoutScheme:
case PlaceholderType::UrlScheme: case PlaceholderType::UrlScheme:
case PlaceholderType::UrlHost: case PlaceholderType::UrlHost:
@ -1237,7 +1241,8 @@ Entry::PlaceholderType Entry::placeholderType(const QString& placeholder) const
{QStringLiteral("{DT_UTC_DAY}"), PlaceholderType::DateTimeUtcDay}, {QStringLiteral("{DT_UTC_DAY}"), PlaceholderType::DateTimeUtcDay},
{QStringLiteral("{DT_UTC_HOUR}"), PlaceholderType::DateTimeUtcHour}, {QStringLiteral("{DT_UTC_HOUR}"), PlaceholderType::DateTimeUtcHour},
{QStringLiteral("{DT_UTC_MINUTE}"), PlaceholderType::DateTimeUtcMinute}, {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); return placeholders.value(placeholder.toUpper(), PlaceholderType::Unknown);
} }

View File

@ -205,7 +205,8 @@ public:
DateTimeUtcDay, DateTimeUtcDay,
DateTimeUtcHour, DateTimeUtcHour,
DateTimeUtcMinute, DateTimeUtcMinute,
DateTimeUtcSecond DateTimeUtcSecond,
DbDir
}; };
/** /**

View File

@ -1973,15 +1973,16 @@ void DatabaseWidget::processAutoOpen()
} }
QFileInfo filepath; QFileInfo filepath;
QFileInfo keyfile; QFileInfo keyfile;
QString databaseUrl = entry->resolveMultiplePlaceholders(entry->url());
if (entry->url().startsWith("file://")) { if (databaseUrl.startsWith("file://")) {
QUrl url(entry->url()); QUrl url(databaseUrl);
filepath.setFile(url.toLocalFile()); filepath.setFile(url.toLocalFile());
} else { } else {
filepath.setFile(entry->url()); filepath.setFile(databaseUrl);
if (filepath.isRelative()) { if (filepath.isRelative()) {
QFileInfo currentpath(m_db->filePath()); QFileInfo currentpath(m_db->filePath());
filepath.setFile(currentpath.absoluteDir(), entry->url()); filepath.setFile(currentpath.absoluteDir(), databaseUrl);
} }
} }