From b0dbd4f4afcf60e4021cbb3218bfe280c4989859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 8 Dec 2013 22:06:04 +0100 Subject: Fix offline mode bugs --- gui/MainWindow.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'gui/MainWindow.cpp') diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index fd35e94e..bf2ce6b4 100644 --- a/gui/MainWindow.cpp +++ b/gui/MainWindow.cpp @@ -791,16 +791,13 @@ void MainWindow::doLaunch() progDialog.exec(task.get()); auto status = account->accountStatus(); - if(status == Online) // Online mode! Refresh the token. + if(status != NotVerified) { updateInstance(m_selectedInstance, account); - return; - } - else if(status == Verified) // Offline mode with a verified account - { - launchInstance(m_selectedInstance, account); - return; } + // 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); @@ -828,7 +825,8 @@ bool MainWindow::loginWithPassword(MojangAccountPtr account, const QString& erro void MainWindow::updateInstance(BaseInstance* instance, MojangAccountPtr account) { - auto updateTask = instance->doUpdate(true); + bool only_prepare = account->accountStatus() != Online; + auto updateTask = instance->doUpdate(only_prepare); if (!updateTask) { launchInstance(instance, account); -- cgit v1.2.3