summaryrefslogtreecommitdiff
path: root/src/organizercore.cpp
diff options
context:
space:
mode:
authorSilarn <jrim@rimpo.org>2019-07-08 13:22:25 -0500
committerSilarn <jrim@rimpo.org>2019-07-08 13:22:25 -0500
commit2b213fe7ce4b75afd6f7d6418d3ccd2cf6f55070 (patch)
treeacf00d765ca1e98c20defa209ba2bd90bb256c6f /src/organizercore.cpp
parentd2a8890e74595b6e0ef5cd1532b3f11e02349905 (diff)
parent4bfb1a0d7666cbde7b10f59feaccde0af723a9e1 (diff)
Merge branch 'Develop' into qt-5.13
Diffstat (limited to 'src/organizercore.cpp')
-rw-r--r--src/organizercore.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 99ddda1d..81ec7f43 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -691,12 +691,27 @@ bool OrganizerCore::createDirectory(const QString &path) {
}
}
+bool OrganizerCore::checkPathSymlinks() {
+ bool hasSymlink = (QFileInfo(m_Settings.getProfileDirectory()).isSymLink() ||
+ QFileInfo(m_Settings.getModDirectory()).isSymLink() ||
+ QFileInfo(m_Settings.getOverwriteDirectory()).isSymLink());
+ if (hasSymlink) {
+ QMessageBox::critical(nullptr, QObject::tr("Error"),
+ QObject::tr("One of the configured MO2 directories (profiles, mods, or overwrite) "
+ "is on a path containing a symbolic (or other) link. This is incompatible "
+ "with MO2's VFS system."));
+ return false;
+ }
+ return true;
+}
+
bool OrganizerCore::bootstrap() {
return createDirectory(m_Settings.getProfileDirectory()) &&
createDirectory(m_Settings.getModDirectory()) &&
createDirectory(m_Settings.getDownloadDirectory()) &&
createDirectory(m_Settings.getOverwriteDirectory()) &&
- createDirectory(QString::fromStdWString(crashDumpsPath())) && cycleDiagnostics();
+ createDirectory(QString::fromStdWString(crashDumpsPath())) &&
+ checkPathSymlinks() && cycleDiagnostics();
}
void OrganizerCore::createDefaultProfile()