GH-1895 update LWJGL list during legacy instance update

This commit is contained in:
Petr Mrázek 2017-05-21 02:34:02 +02:00
parent d70c783de8
commit 572a6026b5
3 changed files with 22 additions and 9 deletions

View File

@ -164,6 +164,20 @@ void LegacyUpdate::lwjglStart()
{
LegacyInstance *inst = (LegacyInstance *)m_inst;
auto list = std::dynamic_pointer_cast<LWJGLVersionList>(ENV.getVersionList("org.lwjgl.legacy"));
if (!list->isLoaded())
{
setStatus(tr("Checking the LWJGL version list..."));
list->loadList();
auto task = list->getLoadTask();
connect(task.get(), &Task::succeeded, this, &LegacyUpdate::lwjglStart);
connect(task.get(), &Task::failed, this, [&](const QString & error)
{
emitFailed(tr("Failed to refresh LWJGL list: %1.").arg(error));
});
return;
}
lwjglVersion = inst->lwjglVersion();
lwjglTargetPath = FS::PathCombine(inst->lwjglFolder(), lwjglVersion);
lwjglNativesPath = FS::PathCombine(lwjglTargetPath, "natives");
@ -176,18 +190,11 @@ void LegacyUpdate::lwjglStart()
return;
}
auto list = std::dynamic_pointer_cast<LWJGLVersionList>(ENV.getVersionList("org.lwjgl.legacy"));
if (!list->isLoaded())
{
emitFailed("Too soon! Let the LWJGL list load :)");
return;
}
setStatus(tr("Downloading new LWJGL..."));
auto version = std::dynamic_pointer_cast<LWJGLVersion>(list->findVersion(lwjglVersion));
if (!version)
{
emitFailed("Game update failed: the selected LWJGL version is invalid.");
emitFailed(QString("Game update failed: the selected LWJGL version is invalid: %1").arg(lwjglVersion));
return;
}

View File

@ -350,10 +350,10 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
initIcons();
initThemes();
// make sure we have at least some minecraft versions before we init instances
initInstances();
initAccounts();
initNetwork();
initLegacyLwjgl();
// now we have network, download translation updates
m_translations->downloadIndex();
@ -859,6 +859,11 @@ void MultiMC::initMCEdit()
m_mcedit.reset(new MCEditTool(m_settings));
}
void MultiMC::initLegacyLwjgl()
{
auto list = lwjgllist();
}
std::shared_ptr<TranslationsModel> MultiMC::translations()
{
return m_translations;

View File

@ -185,6 +185,7 @@ private:
void initAccounts();
void initMCEdit();
void initAnalytics();
void initLegacyLwjgl();
void shutdownAnalytics();
bool createSetupWizard();
void performMainStartupAction();