Parsing the version files, part IV
Also, start of big refactors.
This commit is contained in:
@ -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;
|
||||
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;
|
||||
|
||||
QString instDirName = DirNameFromString(newInstDlg->instName());
|
||||
QString instDir = PathCombine(globalSettings->get("InstanceDir").toString(),
|
||||
instDirName);
|
||||
case InstanceLoader::CantCreateDir:
|
||||
errorMsg += "Failed to create the instance directory.";
|
||||
QMessageBox::warning(this, "Error", errorMsg);
|
||||
break;
|
||||
|
||||
InstanceLoader::InstLoaderError error = InstanceLoader::get().
|
||||
createInstance(newInstance, instDir);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -52,7 +52,6 @@ private:
|
||||
Ui::NewInstanceDialog *ui;
|
||||
|
||||
const InstVersion *m_selectedVersion;
|
||||
const InstanceTypeInterface *m_selectedType;
|
||||
};
|
||||
|
||||
#endif // NEWINSTANCEDIALOG_H
|
||||
|
Reference in New Issue
Block a user