summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/mainwindow.cpp69
-rw-r--r--gui/newinstancedialog.cpp2
-rw-r--r--gui/newinstancedialog.h1
3 files changed, 32 insertions, 40 deletions
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index f9398c8b..341fa7bf 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -56,6 +56,7 @@
#include "gameupdatetask.h"
#include "instance.h"
+#include "instanceloader.h"
#include "minecraftprocess.h"
#include "instancemodel.h"
@@ -182,46 +183,40 @@ void MainWindow::on_actionAddInstance_triggered()
}
NewInstanceDialog *newInstDlg = new NewInstanceDialog ( this );
- if (newInstDlg->exec())
+ if (!newInstDlg->exec())
+ return;
+
+ Instance *newInstance = NULL;
+
+ QString instDirName = DirNameFromString(newInstDlg->instName());
+ QString instDir = PathCombine(globalSettings->get("InstanceDir").toString(), instDirName);
+
+ auto &loader = InstanceLoader::get();
+ auto error = loader.createInstance(newInstance, instDir);
+ QString errorMsg = QString("Failed to create instance %1: ").arg(instDirName);
+
+ switch (error)
{
- Instance *newInstance = NULL;
-
- QString instDirName = DirNameFromString(newInstDlg->instName());
- QString instDir = PathCombine(globalSettings->get("InstanceDir").toString(),
- instDirName);
+ case InstanceLoader::NoCreateError:
+ newInstance->setName(newInstDlg->instName());
+ newInstance->setIntendedVersion(newInstDlg->selectedVersion()->descriptor());
+ instList.add(InstancePtr(newInstance));
+ return;
+
+ case InstanceLoader::InstExists:
+ errorMsg += "An instance with the given directory name already exists.";
+ QMessageBox::warning(this, "Error", errorMsg);
+ break;
- InstanceLoader::InstLoaderError error = InstanceLoader::get().
- createInstance(newInstance, instDir);
+ case InstanceLoader::CantCreateDir:
+ errorMsg += "Failed to create the instance directory.";
+ QMessageBox::warning(this, "Error", errorMsg);
+ break;
- if (error == InstanceLoader::NoError)
- {
- newInstance->setName(newInstDlg->instName());
- newInstance->setIntendedVersion(newInstDlg->selectedVersion()->descriptor());
- instList.add(InstancePtr(newInstance));
- }
- else
- {
- QString errorMsg = QString("Failed to create instance %1: ").
- arg(instDirName);
-
- switch (error)
- {
- case InstanceLoader::InstExists:
- errorMsg += "An instance with the given directory name already exists.";
- break;
-
- case InstanceLoader::CantCreateDir:
- errorMsg += "Failed to create the instance directory.";
- break;
-
- default:
- errorMsg += QString("Unknown instance loader error %1").
- arg(error);
- break;
- }
-
- QMessageBox::warning(this, "Error", errorMsg);
- }
+ default:
+ errorMsg += QString("Unknown instance loader error %1").arg(error);
+ QMessageBox::warning(this, "Error", errorMsg);
+ break;
}
}
diff --git a/gui/newinstancedialog.cpp b/gui/newinstancedialog.cpp
index ccdea063..cf005429 100644
--- a/gui/newinstancedialog.cpp
+++ b/gui/newinstancedialog.cpp
@@ -17,7 +17,6 @@
#include "ui_newinstancedialog.h"
#include "instanceloader.h"
-#include "instancetypeinterface.h"
#include "instversionlist.h"
#include "instversion.h"
@@ -36,7 +35,6 @@ NewInstanceDialog::NewInstanceDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::NewInstanceDialog)
{
- m_selectedType = NULL;
m_selectedVersion = NULL;
ui->setupUi(this);
diff --git a/gui/newinstancedialog.h b/gui/newinstancedialog.h
index 1970e37a..4ea5f944 100644
--- a/gui/newinstancedialog.h
+++ b/gui/newinstancedialog.h
@@ -52,7 +52,6 @@ private:
Ui::NewInstanceDialog *ui;
const InstVersion *m_selectedVersion;
- const InstanceTypeInterface *m_selectedType;
};
#endif // NEWINSTANCEDIALOG_H