summaryrefslogtreecommitdiff
path: root/src/instancemanager.cpp
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/instancemanager.cpp
parent59f055ba93381b965cdc04557ac1dce2df36bd07 (diff)
parent6feab2ea8f96704e44a14c212a635dc17f4ba71e (diff)
Merge pull request #1354 from isanae/startup-rework
Startup rework
Diffstat (limited to 'src/instancemanager.cpp')
-rw-r--r--src/instancemanager.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/instancemanager.cpp b/src/instancemanager.cpp
index 18604bf1..8add4af8 100644
--- a/src/instancemanager.cpp
+++ b/src/instancemanager.cpp
@@ -28,7 +28,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "createinstancedialogpages.h"
#include "shared/appconfig.h"
#include "shared/util.h"
-#include "shared/error_report.h"
#include <report.h>
#include <iplugingame.h>
#include <utility.h>
@@ -544,7 +543,7 @@ void InstanceManager::clearOverrides()
m_overrideProfileName = {};
}
-std::optional<Instance> InstanceManager::currentInstance() const
+std::unique_ptr<Instance> InstanceManager::currentInstance() const
{
const QString profile = m_overrideProfileName ?
*m_overrideProfileName : "";
@@ -555,20 +554,20 @@ std::optional<Instance> InstanceManager::currentInstance() const
if (!allowedToChangeInstance()) {
// force portable instance
- return Instance(portablePath(), true, profile);
+ return std::make_unique<Instance>(portablePath(), true, profile);
}
if (name.isEmpty()) {
if (portableInstanceExists()) {
// use portable
- return Instance(portablePath(), true, profile);
+ return std::make_unique<Instance>(portablePath(), true, profile);
} else {
// no instance set
return {};
}
}
- return Instance(instancePath(name), false, profile);
+ return std::make_unique<Instance>(instancePath(name), false, profile);
}
void InstanceManager::clearCurrentInstance()
@@ -772,7 +771,7 @@ bool InstanceManager::validInstanceName(const QString& instanceName) const
-std::optional<Instance> selectInstance()
+std::unique_ptr<Instance> selectInstance()
{
auto& m = InstanceManager::singleton();
@@ -896,7 +895,7 @@ SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
// unreadable ini, there's not much that can be done, select another
// instance
- MOShared::criticalOnTop(
+ reportError(
QObject::tr("Cannot open instance '%1', failed to read INI file %2.")
.arg(instance.name()).arg(instance.iniPath()));
@@ -911,7 +910,7 @@ SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
//
// ask the user for the game managed by this instance
- MOShared::criticalOnTop(
+ reportError(
QObject::tr(
"Cannot open instance '%1', the managed game was not found in the INI "
"file %2. Select the game managed by this instance.")
@@ -925,7 +924,7 @@ SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
// there is no plugin that can handle the game name/directory from the
// ini, so this instance is unusable
- MOShared::criticalOnTop(
+ reportError(
QObject::tr(
"Cannot open instance '%1', the game plugin '%2' doesn't exist. It "
"may have been deleted by an antivirus. Select another instance.")
@@ -939,7 +938,7 @@ SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
// the game directory doesn't exist or the plugin doesn't recognize it;
// ask the user for the game managed by this instance
- MOShared::criticalOnTop(
+ reportError(
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 "