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 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);
}

View File

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

View File

@ -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);
}
}