summaryrefslogtreecommitdiff
path: root/src/processrunner.h
diff options
context:
space:
mode:
authorMikaƫl Capelle <capelle.mikael@gmail.com>2021-01-18 21:16:40 +0100
committerGitHub <noreply@github.com>2021-01-18 21:16:40 +0100
commitee44a38c986d953a19cbb37b0297590844cf54ac (patch)
treee39b12f7cb7f37cd96b3c3f451d2b527a81d4578 /src/processrunner.h
parent59f055ba93381b965cdc04557ac1dce2df36bd07 (diff)
parent6feab2ea8f96704e44a14c212a635dc17f4ba71e (diff)
Merge pull request #1354 from isanae/startup-rework
Startup rework
Diffstat (limited to 'src/processrunner.h')
-rw-r--r--src/processrunner.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/processrunner.h b/src/processrunner.h
index d8ff0227..b8c8935c 100644
--- a/src/processrunner.h
+++ b/src/processrunner.h
@@ -39,12 +39,30 @@ public:
{
NoFlags = 0x00,
- // the ui will be refreshed once the process has completed
- Refresh = 0x01,
+ // the directory structure will be refreshed once the process has completed
+ TriggerRefresh = 0x01,
// the process will be waited for even if locking is disabled or the
// process is not hooked
ForceWait = 0x02,
+
+ // only valid with TriggerRefresh; run() will block until the refresh has
+ // completed
+ WaitForRefresh = 0x04,
+
+ // combination of flags used to run programs from the command line
+ //
+ // 1) TriggerRefresh: MO must refresh after running the program because
+ // programs can modify files behind its back; for example, external
+ // LOOT will modify loadorder.txt, so MO must read it back or it will
+ // write back the old order when exiting
+ //
+ // 2) WaitForRefresh: refreshing is asynchronous, so the refresh must
+ // complete before MO exits or stale data might be written to disk
+ //
+ // 3) ForceWait: MO must wait for the program to finish even if locking the
+ // ui is disabled
+ ForCommandLine = TriggerRefresh | WaitForRefresh | ForceWait
};
using WaitFlags = QFlags<WaitFlag>;