summaryrefslogtreecommitdiffstats
path: root/gui/mainwindow.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-09-06 22:00:19 +0200
committerPetr Mrázek <peterix@gmail.com>2013-09-06 22:00:19 +0200
commite6b8923b23693a10023b3cf4e5573390e5f22d7d (patch)
treeff55f4b0ecbbe497e5f99f756938cb60d07a7d47 /gui/mainwindow.cpp
parent634e22298b14a8ad09f0d0489cb1c08c97d1f73a (diff)
parent2acfd00d76b79c49b61f651b5459f65803601a95 (diff)
downloadMultiMC-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar
MultiMC-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar.gz
MultiMC-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar.lz
MultiMC-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar.xz
MultiMC-e6b8923b23693a10023b3cf4e5573390e5f22d7d.zip
Merge https://github.com/Stiepen22/MultiMC5
Diffstat (limited to 'gui/mainwindow.cpp')
-rw-r--r--gui/mainwindow.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index 7cdf93ad..4ccc12b6 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -473,17 +473,29 @@ void MainWindow::doLogin(const QString& errorMsg)
return;
LoginDialog* loginDlg = new LoginDialog(this, errorMsg);
+ if (!m_selectedInstance->lastLaunch())
+ loginDlg->forceOnline();
+
loginDlg->exec();
if(loginDlg->result() == QDialog::Accepted)
{
- UserInfo uInfo{loginDlg->getUsername(), loginDlg->getPassword()};
-
- TaskDialog* tDialog = new TaskDialog(this);
- LoginTask* loginTask = new LoginTask(uInfo, tDialog);
- connect(loginTask, SIGNAL(succeeded()),SLOT(onLoginComplete()), Qt::QueuedConnection);
- connect(loginTask, SIGNAL(failed(QString)), SLOT(doLogin(QString)), Qt::QueuedConnection);
- m_activeInst = m_selectedInstance;
- tDialog->exec(loginTask);
+ if (loginDlg->isOnline())
+ {
+ UserInfo uInfo{loginDlg->getUsername(), loginDlg->getPassword()};
+
+ TaskDialog* tDialog = new TaskDialog(this);
+ LoginTask* loginTask = new LoginTask(uInfo, tDialog);
+ connect(loginTask, SIGNAL(succeeded()),SLOT(onLoginComplete()), Qt::QueuedConnection);
+ connect(loginTask, SIGNAL(failed(QString)), SLOT(doLogin(QString)), Qt::QueuedConnection);
+ m_activeInst = m_selectedInstance;
+ tDialog->exec(loginTask);
+ }
+ else
+ {
+ m_activeLogin = {loginDlg->getUsername(), QString("Offline"), qint64(-1)};
+ m_activeInst = m_selectedInstance;
+ launchInstance(m_activeInst, m_activeLogin);
+ }
}
}