summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/ConsoleWindow.cpp3
-rw-r--r--gui/MainWindow.cpp15
2 files changed, 17 insertions, 1 deletions
diff --git a/gui/ConsoleWindow.cpp b/gui/ConsoleWindow.cpp
index 5db4442e..1a0f352d 100644
--- a/gui/ConsoleWindow.cpp
+++ b/gui/ConsoleWindow.cpp
@@ -47,6 +47,7 @@ ConsoleWindow::ConsoleWindow(MinecraftProcess *mcproc, QWidget *parent)
{
show();
}
+ setMayClose(false);
}
ConsoleWindow::~ConsoleWindow()
@@ -174,6 +175,7 @@ void ConsoleWindow::onEnded(BaseInstance *instance, int code, QProcess::ExitStat
}
if(!isVisible())
show();
+ setMayClose(true);
}
void ConsoleWindow::onLaunchFailed(BaseInstance *instance)
@@ -181,6 +183,7 @@ void ConsoleWindow::onLaunchFailed(BaseInstance *instance)
ui->btnKillMinecraft->setEnabled(false);
if(!isVisible())
show();
+ setMayClose(true);
}
void ConsoleWindow::on_btnPaste_clicked()
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index f115f090..80bde381 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -513,7 +513,7 @@ void MainWindow::on_actionAddInstance_triggered()
newInstance->setName(newInstDlg.instName());
newInstance->setIconKey(newInstDlg.iconKey());
MMC->instances()->add(InstancePtr(newInstance));
- return;
+ break;
case InstanceFactory::InstExists:
{
@@ -536,6 +536,19 @@ void MainWindow::on_actionAddInstance_triggered()
break;
}
}
+
+ std::shared_ptr<MojangAccountList> accounts = MMC->accounts();
+ MojangAccountPtr account = accounts->activeAccount();
+ if(account.get() != nullptr && account->accountStatus() != NotVerified)
+ {
+ ProgressDialog loadDialog(this);
+ auto update = newInstance->doUpdate(false);
+ connect(update.get(), &Task::failed , [this](QString reason) {
+ QString error = QString("Instance load failed: %1").arg(reason);
+ CustomMessageBox::selectable(this, tr("Error"), error, QMessageBox::Warning)->show();
+ });
+ loadDialog.exec(update.get());
+ }
}
void MainWindow::on_actionCopyInstance_triggered()