From d288587b002b19c54dc08d08ae267d301aa2ac81 Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Sat, 7 Nov 2020 16:51:55 -0500
Subject: moved instance setup/selection to instancemanager.cpp comments
---
src/main.cpp | 181 +----------------------------------------------------------
1 file changed, 3 insertions(+), 178 deletions(-)
(limited to 'src/main.cpp')
diff --git a/src/main.cpp b/src/main.cpp
index a8ea2601..fdd09872 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -34,20 +34,13 @@ along with Mod Organizer. If not, see .
#include "commandline.h"
#include "shared/util.h"
#include "shared/appconfig.h"
-
+#include "shared/error_report.h"
#include
#include
#include
#include
#include
-// see addDllsToPath() below
-#pragma comment(linker, "/manifestDependency:\"" \
- "name='dlls' " \
- "processorArchitecture='x86' " \
- "version='1.0.0.0' " \
- "type='win32' \"")
-
using namespace MOBase;
using namespace MOShared;
@@ -171,174 +164,6 @@ std::optional handleCommandLine(
return {};
}
-std::optional selectInstance()
-{
- auto& m = InstanceManager::singleton();
-
- NexusInterface ni(nullptr);
- PluginContainer pc(nullptr);
- pc.loadPlugins();
-
- if (!m.hasAnyInstances()) {
- // no instances configured
- CreateInstanceDialog dlg(pc, nullptr);
- if (dlg.exec() != QDialog::Accepted) {
- return {};
- }
-
- return m.currentInstance();
- }
-
-
- InstanceManagerDialog dlg(pc);
- dlg.setRestartOnSelect(false);
-
- dlg.show();
- dlg.activateWindow();
- dlg.raise();
-
- if (dlg.exec() != QDialog::Accepted) {
- return {};
- }
-
- return m.currentInstance();
-}
-
-enum class SetupInstanceResults
-{
- Ok,
- TryAgain,
- SelectAnother,
- Exit
-};
-
-
-void criticalOnTop(const QString& message)
-{
- QMessageBox mb(QMessageBox::Critical, QObject::tr("Mod Organizer"), message);
-
- mb.show();
- mb.activateWindow();
- mb.raise();
- mb.exec();
-}
-
-
-SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
-{
- const auto setupResult = instance.setup(pc);
-
- switch (setupResult)
- {
- case Instance::SetupResults::Ok:
- {
- return SetupInstanceResults::Ok;
- }
-
- case Instance::SetupResults::BadIni:
- {
- criticalOnTop(
- QObject::tr("Cannot open instance '%1', failed to read INI file %2.")
- .arg(instance.name()).arg(instance.iniPath()));
-
- return SetupInstanceResults::SelectAnother;
- }
-
- case Instance::SetupResults::IniMissingGame:
- {
- criticalOnTop(
- QObject::tr(
- "Cannot open instance '%1', the managed game was not found in the INI "
- "file %2. Select the game managed by this instance.")
- .arg(instance.name()).arg(instance.iniPath()));
-
- CreateInstanceDialog dlg(pc, nullptr);
- dlg.setSinglePage(instance.name());
-
- dlg.show();
- dlg.activateWindow();
- dlg.raise();
-
- if (dlg.exec() != QDialog::Accepted) {
- return SetupInstanceResults::Exit;
- }
-
- instance.setGame(
- dlg.creationInfo().game->gameName(),
- dlg.creationInfo().gameLocation);
-
- return SetupInstanceResults::TryAgain;
- }
-
- case Instance::SetupResults::PluginGone:
- {
- criticalOnTop(
- QObject::tr(
- "Cannot open instance '%1', the game plugin '%2' doesn't exist. It "
- "may have been deleted by an antivirus. Select another instance.")
- .arg(instance.name()).arg(instance.gameName()));
-
- return SetupInstanceResults::SelectAnother;
- }
-
- case Instance::SetupResults::GameGone:
- {
- criticalOnTop(
- QObject::tr(
- "Cannot open instance '%1', the game directory '%2' doesn't exist or "
- "the game plugin '%3' doesn't recognize it. Select the game managed "
- "by this instance.")
- .arg(instance.name())
- .arg(instance.gameDirectory())
- .arg(instance.gameName()));
-
- CreateInstanceDialog dlg(pc, nullptr);
- dlg.setSinglePage(instance.name());
-
- dlg.show();
- dlg.activateWindow();
- dlg.raise();
-
- if (dlg.exec() != QDialog::Accepted) {
- return SetupInstanceResults::Exit;
- }
-
- instance.setGame(
- dlg.creationInfo().game->gameName(),
- dlg.creationInfo().gameLocation);
-
- return SetupInstanceResults::TryAgain;
- }
-
- case Instance::SetupResults::MissingVariant:
- {
- CreateInstanceDialog dlg(pc, nullptr);
-
- dlg.getPage()->select(
- instance.gamePlugin(), instance.gameDirectory());
-
- dlg.setSinglePage(instance.name());
-
- dlg.show();
- dlg.activateWindow();
- dlg.raise();
-
- if (dlg.exec() != QDialog::Accepted) {
- return SetupInstanceResults::Exit;
- }
-
- instance.setVariant(dlg.creationInfo().gameVariant);
-
- return SetupInstanceResults::TryAgain;
- }
-
- default:
- {
- return SetupInstanceResults::Exit;
- }
- }
-}
-
int runApplication(
MOApplication &application, const cl::CommandLine& cl,
SingleInstance &instance, const QString &dataPath,
@@ -561,11 +386,11 @@ int doOneRun(
// the previously used instance doesn't exist anymore
if (m.hasAnyInstances()) {
- criticalOnTop(QObject::tr(
+ MOShared::criticalOnTop(QObject::tr(
"Instance at '%1' not found. Select another instance.")
.arg(currentInstance->directory()));
} else {
- criticalOnTop(QObject::tr(
+ MOShared::criticalOnTop(QObject::tr(
"Instance at '%1' not found. You must create a new instance")
.arg(currentInstance->directory()));
}
--
cgit v1.3.1