summaryrefslogtreecommitdiff
path: root/src/shared/util.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-17 07:47:29 -0500
committerGitHub <noreply@github.com>2019-12-17 07:47:29 -0500
commita4a0e59d8ce7d3f9fbe0806a5621c27932f26314 (patch)
tree37e4a9046a8204cc3b70ae8937aae6dab1d9f167 /src/shared/util.cpp
parent2c7e0e7cb4d8bf5c51f22968a5ffd2366d6bcdf2 (diff)
parent05231eab45f86e3d0d342c429e35c8f7c813ea42 (diff)
Merge pull request #942 from isanae/lock-fixes
Lock fixes
Diffstat (limited to 'src/shared/util.cpp')
-rw-r--r--src/shared/util.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/shared/util.cpp b/src/shared/util.cpp
index 32eb825c..baceddeb 100644
--- a/src/shared/util.cpp
+++ b/src/shared/util.cpp
@@ -294,6 +294,7 @@ QString getUsvfsVersionString()
static bool g_exiting = false;
+static bool g_canClose = false;
MainWindow* findMainWindow()
{
@@ -312,6 +313,9 @@ bool ExitModOrganizer(ExitFlags e)
return true;
}
+ g_exiting = true;
+ MOBase::Guard g([&]{ g_exiting = false; });
+
if (!e.testFlag(Exit::Force)) {
if (auto* mw=findMainWindow()) {
if (!mw->canExit()) {
@@ -320,7 +324,7 @@ bool ExitModOrganizer(ExitFlags e)
}
}
- g_exiting = true;
+ g_canClose = true;
const int code = (e.testFlag(Exit::Restart) ? RestartExitCode : 0);
qApp->exit(code);
@@ -328,6 +332,11 @@ bool ExitModOrganizer(ExitFlags e)
return true;
}
+bool ModOrganizerCanCloseNow()
+{
+ return g_canClose;
+}
+
bool ModOrganizerExiting()
{
return g_exiting;