summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-07-24 15:29:28 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2020-11-03 11:39:05 -0500
commit4ac8ab98563e223075c1c93852d4112ab6e4579c (patch)
tree586bfd3541c7831fc4923397e6eea52667dfdd31 /src/settings.cpp
parent7b02c77a3961d859aae270922db26bbc999677cb (diff)
don't skip paths for portable instance, what am I doing
implemented actual creation removed mentions of %BASE_DIR% everywhere, use constant and functions from PathSettings
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 8db9c623..661cf429 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1464,6 +1464,8 @@ QSet<QString> PluginSettings::readBlacklist() const
}
+const QString PathSettings::BaseDirVariable = "%BASE_DIR%";
+
PathSettings::PathSettings(QSettings& settings)
: m_Settings(settings)
{
@@ -1511,10 +1513,10 @@ QString PathSettings::getConfigurablePath(const QString &key,
bool resolve) const
{
QString result = QDir::fromNativeSeparators(
- get<QString>(m_Settings, "Settings", key, QString("%BASE_DIR%/") + def));
+ get<QString>(m_Settings, "Settings", key, makeDefaultPath(def)));
if (resolve) {
- result.replace("%BASE_DIR%", base());
+ result = PathSettings::resolve(result, base());
}
return result;
@@ -1529,6 +1531,18 @@ void PathSettings::setConfigurablePath(const QString &key, const QString& path)
}
}
+QString PathSettings::resolve(const QString& path, const QString& baseDir)
+{
+ QString s = path;
+ s.replace(BaseDirVariable, baseDir);
+ return s;
+}
+
+QString PathSettings::makeDefaultPath(const QString dirName)
+{
+ return BaseDirVariable + "/" + dirName;
+}
+
QString PathSettings::base() const
{
return QDir::fromNativeSeparators(get<QString>(m_Settings,