diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/mainwindow.cpp | 69 | ||||
-rw-r--r-- | gui/newinstancedialog.cpp | 2 | ||||
-rw-r--r-- | gui/newinstancedialog.h | 1 |
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 |