diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/ConsoleWindow.cpp | 3 | ||||
-rw-r--r-- | gui/MainWindow.cpp | 15 |
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() |