summaryrefslogtreecommitdiffstats
path: root/gui/MainWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/MainWindow.cpp')
-rw-r--r--gui/MainWindow.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index 179f881f..4fb4489f 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -865,6 +865,8 @@ void MainWindow::doLaunch()
if (!account.get())
return;
+ QString failReason = tr("Your account is currently not logged in. Please enter "
+ "your password to log in again.");
// do the login. if the account has an access token, try to refresh it first.
if (account->accountStatus() != NotVerified)
{
@@ -879,13 +881,28 @@ void MainWindow::doLaunch()
{
updateInstance(m_selectedInstance, account);
}
- // revert from online to verified.
+ else
+ {
+ if (!task->successful())
+ {
+ failReason = task->failReason();
+ }
+ if (loginWithPassword(account, failReason))
+ updateInstance(m_selectedInstance, account);
+ }
+ // in any case, revert from online to verified.
+ account->downgrade();
+ }
+ else
+ {
+ if (loginWithPassword(account, failReason))
+ {
+ updateInstance(m_selectedInstance, account);
+ account->downgrade();
+ }
+ // in any case, revert from online to verified.
account->downgrade();
- return;
}
- if (loginWithPassword(account, tr("Your account is currently not logged in. Please enter "
- "your password to log in again.")))
- updateInstance(m_selectedInstance, account);
}
bool MainWindow::loginWithPassword(MojangAccountPtr account, const QString &errorMsg)