summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/main.cpp b/src/main.cpp
index a6918d99..776c3775 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -504,8 +504,9 @@ int runApplication(MOApplication &application, SingleInstance &instance,
const QString &splashPath)
{
log::info(
- "starting Mod Organizer version {} revision {} in {}",
- getVersionDisplayString(), GITID, QCoreApplication::applicationDirPath());
+ "starting Mod Organizer version {} revision {} in {}, usvfs: {}",
+ getVersionDisplayString(), GITID, QCoreApplication::applicationDirPath(),
+ MOShared::getUsvfsVersionString());
preloadSsl();
if (!QSslSocket::supportsSsl()) {
@@ -563,10 +564,12 @@ int runApplication(MOApplication &application, SingleInstance &instance,
if (game == nullptr) {
InstanceManager &instance = InstanceManager::instance();
QString instanceName = instance.currentInstance();
+
if (instanceName.compare("Portable", Qt::CaseInsensitive) != 0) {
instance.clearCurrentInstance();
- return INT_MAX;
+ return RestartExitCode;
}
+
return 1;
}
@@ -710,6 +713,8 @@ int runApplication(MOApplication &application, SingleInstance &instance,
splash.finish(&mainWindow);
res = application.exec();
+ mainWindow.onBeforeClose();
+ mainWindow.close();
NexusInterface::instance(&pluginContainer)
->getAccessManager()->setTopLevelWidget(nullptr);
@@ -867,6 +872,7 @@ int main(int argc, char *argv[])
do {
LogModel::instance().clear();
+ ResetExitFlag();
// make sure the log file isn't locked in case MO was restarted and
// the previous instance gets deleted
@@ -904,10 +910,11 @@ int main(int argc, char *argv[])
splash = ":/MO/gui/splash";
}
- int result = runApplication(application, instance, splash);
- if (result != INT_MAX) {
+ const int result = runApplication(application, instance, splash);
+ if (result != RestartExitCode) {
return result;
}
+
argc = 1;
moshortcut = MOShortcut("");
} while (true);