Skip to content

Commit

Permalink
[InstanceWizard] Replaced by InstanceEditWindow.
Browse files Browse the repository at this point in the history
  • Loading branch information
Unarelith committed May 5, 2020
1 parent 1c80369 commit 5625a2b
Show file tree
Hide file tree
Showing 17 changed files with 69 additions and 670 deletions.
60 changes: 49 additions & 11 deletions source/InstanceEditWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
*
* =====================================================================================
*/
#include <QApplication>
#include <QDir>
#include <QFormLayout>
#include <QHBoxLayout>
Expand All @@ -43,7 +44,11 @@
InstanceEditWindow::InstanceEditWindow(ContentData &data, ContentInstance *instance, QWidget *parent)
: QDialog(parent), m_data(data), m_instance(instance)
{
setWindowTitle("Edit instance...");
if (instance)
setWindowTitle("Edit instance...");
else
setWindowTitle("Add instance...");

resize(640, 480);

m_versionTab = new InstanceEditVersionTab{data, instance};
Expand Down Expand Up @@ -83,28 +88,61 @@ InstanceEditWindow::InstanceEditWindow(ContentData &data, ContentInstance *insta
}

void InstanceEditWindow::saveChanges() {
auto result = QMessageBox::question(this, "OpenMiner Launcher", "This operation will remove 'resources' and 'mods' folders.\nAre you sure?");
if (result != QMessageBox::Yes)
if (m_nameEdit->text().isEmpty()) {
QMessageBox::critical(this, QApplication::applicationDisplayName(), "Instance name can't be empty");
return;
}

if (m_versionTab->engineVersionID() == -1) {
QMessageBox::critical(this, QApplication::applicationDisplayName(), "Please select an engine version");
return;
}

if (m_modTab->modList().empty()) {
QMessageBox::critical(this, QApplication::applicationDisplayName(), "Please select at least one mod");
return;
}

if (m_instance) {
auto result = QMessageBox::question(this, QApplication::applicationDisplayName(), "This operation will remove 'resources' and 'mods' folders.\nAre you sure?");
if (result != QMessageBox::Yes)
return;
}

auto &instances = m_data.instanceList();
for (auto &it : instances) {
if ((!m_instance || it.second.id() != m_instance->id()) && it.second.name() == m_nameEdit->text()) {
QMessageBox::critical(this, "OpenMiner Launcher", "An instance with this name already exists!");
QMessageBox::critical(this, QApplication::applicationDisplayName(), "An instance with this name already exists!");
return;
}
}

QString oldName = m_instance->name();
m_instance->setName(m_nameEdit->text());
m_instance->setEngineVersionID(m_versionTab->engineVersionID());
m_instance->setMods(m_modTab->modList());
if (m_instance) {
QString oldName = m_instance->name();
m_instance->setName(m_nameEdit->text());
m_instance->setEngineVersionID(m_versionTab->engineVersionID());
m_instance->setMods(m_modTab->modList());

PathUtils::renameInstance(oldName, m_instance->name());
PathUtils::reinstallInstance(*m_instance, m_data);
PathUtils::renameInstance(oldName, m_instance->name());
PathUtils::reinstallInstance(*m_instance, m_data);
}
else {
unsigned int id = m_data.instanceList().size();
ContentInstance instance(id);
instance.setName(m_nameEdit->text());
instance.setEngineVersionID(m_versionTab->engineVersionID());
instance.setMods(m_modTab->modList());

m_data.setInstance(m_data.instanceList().size(), instance);

PathUtils::reinstallInstance(*m_data.getInstance(id), m_data);
}

accept();

QMessageBox::information(this, "OpenMiner Launcher", "Instance successfully edited!");
if (m_instance)
QMessageBox::information(this, QApplication::applicationDisplayName(), "Instance successfully edited!");
else
QMessageBox::information(this, QApplication::applicationDisplayName(), "Instance successfully created!");
}

15 changes: 15 additions & 0 deletions source/InstanceListWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
*
* =====================================================================================
*/
#include <QApplication>
#include <QMessageBox>
#include <QDir>
#include <QProcess>
#include <QStandardPaths>
Expand Down Expand Up @@ -50,6 +52,14 @@ void InstanceListWidget::update() {
}
}

void InstanceListWidget::addInstance() {
InstanceEditWindow *window = new InstanceEditWindow{m_data, nullptr, this};
window->setModal(true);
window->show();

connect(window, &QDialog::accepted, this, &InstanceListWidget::windowRefeshRequested);
}

void InstanceListWidget::editInstance() {
ContentInstance *instance = nullptr;

Expand Down Expand Up @@ -92,6 +102,11 @@ void InstanceListWidget::deleteInstance() {
unsigned int instanceID = selectedItems.at(0)->text(0).toUInt();
ContentInstance *instance = m_data.getInstance(instanceID);

auto result = QMessageBox::question(this, QApplication::applicationDisplayName(),
"Are you sure you want to remove '" + instance->name() + "'?");
if (result != QMessageBox::Yes)
return;

QString appData = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
QString instancePath = appData + "/instances/" + instance->name() + "/";

Expand Down
1 change: 1 addition & 0 deletions source/InstanceListWidget.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class InstanceListWidget : public QTreeWidget {
void update();

public slots:
void addInstance();
void editInstance();
void runInstance();
void deleteInstance();
Expand Down
11 changes: 1 addition & 10 deletions source/InstanceSideBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

#include "InstanceListWidget.hpp"
#include "InstanceSideBar.hpp"
#include "InstanceWizard.hpp"

InstanceSideBar::InstanceSideBar(ContentData &data, InstanceListWidget &instanceListWidget, QWidget *parent)
: QWidget(parent), m_data(data), m_instanceListWidget(instanceListWidget)
Expand All @@ -42,7 +41,7 @@ InstanceSideBar::InstanceSideBar(ContentData &data, InstanceListWidget &instance
m_runInstanceButton.setEnabled(false);
m_deleteInstanceButton.setEnabled(false);

connect(&m_addInstanceButton, &QPushButton::clicked, this, &InstanceSideBar::openWizard);
connect(&m_addInstanceButton, &QPushButton::clicked, this, &InstanceSideBar::addInstanceButtonClicked);
connect(&m_editInstanceButton, &QPushButton::clicked, this, &InstanceSideBar::editInstanceButtonClicked);
connect(&m_runInstanceButton, &QPushButton::clicked, this, &InstanceSideBar::runInstanceButtonClicked);
connect(&m_deleteInstanceButton, &QPushButton::clicked, this, &InstanceSideBar::deleteInstanceButtonClicked);
Expand All @@ -68,11 +67,3 @@ void InstanceSideBar::toggleButtons() {
}
}

void InstanceSideBar::openWizard() {
InstanceWizard *wizard = new InstanceWizard{m_data, this};
wizard->setModal(true);
wizard->show();

connect(wizard, &InstanceWizard::windowRefeshRequested, this, &InstanceSideBar::windowRefeshRequested);
}

4 changes: 1 addition & 3 deletions source/InstanceSideBar.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,12 @@ class InstanceSideBar : public QWidget {

signals:
void windowRefeshRequested();
void addInstanceButtonClicked();
void editInstanceButtonClicked();
void runInstanceButtonClicked();
void deleteInstanceButtonClicked();

private:
void openWizard();
void openEditWindow();

ContentData &m_data;

InstanceListWidget &m_instanceListWidget;
Expand Down
1 change: 1 addition & 0 deletions source/InstanceTabWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ InstanceTabWidget::InstanceTabWidget(ContentData &data, QWidget *parent) : QWidg
connect(&m_instanceListWidget, &InstanceListWidget::windowRefeshRequested, this, &InstanceTabWidget::windowRefeshRequested);
connect(&m_instanceListWidget, &InstanceListWidget::itemSelectionChanged, &m_instanceSideBar, &InstanceSideBar::toggleButtons);
connect(&m_instanceSideBar, &InstanceSideBar::windowRefeshRequested, this, &InstanceTabWidget::windowRefeshRequested);
connect(&m_instanceSideBar, &InstanceSideBar::addInstanceButtonClicked, &m_instanceListWidget, &InstanceListWidget::addInstance);
connect(&m_instanceSideBar, &InstanceSideBar::editInstanceButtonClicked, &m_instanceListWidget, &InstanceListWidget::editInstance);
connect(&m_instanceSideBar, &InstanceSideBar::runInstanceButtonClicked, &m_instanceListWidget, &InstanceListWidget::runInstance);
connect(&m_instanceSideBar, &InstanceSideBar::deleteInstanceButtonClicked, &m_instanceListWidget, &InstanceListWidget::deleteInstance);
Expand Down
101 changes: 0 additions & 101 deletions source/InstanceWizard.cpp

This file was deleted.

51 changes: 0 additions & 51 deletions source/InstanceWizard.hpp

This file was deleted.

52 changes: 0 additions & 52 deletions source/InstanceWizardInfoPage.cpp

This file was deleted.

Loading

0 comments on commit 5625a2b

Please sign in to comment.