summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-07-17 12:39:01 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-22 07:33:38 -0400
commit2ef32d12306ac21c0c900ff8f353ff0b573e67ae (patch)
tree879c179df39c01a317c19bff40e38769427debe4 /src/main.cpp
parent35ae099d3fcc6c5b42fbd8d10e5efc2427bcf2dc (diff)
moved environment dump to member function
added check for nahimic
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp51
1 files changed, 27 insertions, 24 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 15d36428..ef698dd4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -482,27 +482,6 @@ static QString getVersionDisplayString()
return createVersionInfo().displayString(3);
}
-void dumpEnvironment()
-{
- env::Environment env;
-
- log::debug("windows: {}", env.windowsInfo().toString());
-
- if (env.windowsInfo().compatibilityMode()) {
- log::warn("MO seems to be running in compatibility mode");
- }
-
- log::debug("security products:");
- for (const auto& sp : env.securityProducts()) {
- log::debug(" . {}", sp.toString());
- }
-
- log::debug("modules loaded in process:");
- for (const auto& m : env.loadedModules()) {
- log::debug(" . {}", m.toString());
- }
-}
-
void dumpSettings(QSettings& settings)
{
static const QStringList ignore({
@@ -524,7 +503,7 @@ void dumpSettings(QSettings& settings)
settings.endGroup();
}
-void sanityChecks()
+void checkMissingFiles()
{
// files that are likely to be eaten
static const QStringList files({
@@ -545,6 +524,28 @@ void sanityChecks()
}
}
+void checkNahimic(const env::Environment& e)
+{
+ for (auto&& m : e.loadedModules()) {
+ const QFileInfo file(m.path());
+
+ if (file.fileName().compare("NahimicOSD.dll", Qt::CaseInsensitive)) {
+ log::warn(
+ "NahimicOSD.dll is loaded. Nahimic is known to cause issues with "
+ "Mod Organizer, such as freezing or blank windows. Consider "
+ "uninstalling it.");
+
+ break;
+ }
+ }
+}
+
+void sanityChecks(const env::Environment& e)
+{
+ checkMissingFiles();
+ checkNahimic(e);
+}
+
int runApplication(MOApplication &application, SingleInstance &instance,
const QString &splashPath)
@@ -585,9 +586,11 @@ int runApplication(MOApplication &application, SingleInstance &instance,
// update it when the settings are changed during runtime
OrganizerCore::setGlobalCrashDumpsType(settings.crashDumpsType());
- dumpEnvironment();
+ env::Environment env;
+
+ env.dump();
dumpSettings(initSettings);
- sanityChecks();
+ sanityChecks(env);
log::debug("initializing core");
OrganizerCore organizer(settings);