diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-09-06 22:00:19 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-09-06 22:00:19 +0200 |
commit | e6b8923b23693a10023b3cf4e5573390e5f22d7d (patch) | |
tree | ff55f4b0ecbbe497e5f99f756938cb60d07a7d47 /gui/mainwindow.cpp | |
parent | 634e22298b14a8ad09f0d0489cb1c08c97d1f73a (diff) | |
parent | 2acfd00d76b79c49b61f651b5459f65803601a95 (diff) | |
download | PrismLauncher-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar.gz PrismLauncher-e6b8923b23693a10023b3cf4e5573390e5f22d7d.tar.bz2 PrismLauncher-e6b8923b23693a10023b3cf4e5573390e5f22d7d.zip |
Merge https://github.com/Stiepen22/MultiMC5
Diffstat (limited to 'gui/mainwindow.cpp')
-rw-r--r-- | gui/mainwindow.cpp | 28 |
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); + } } } |