Work towards liteloader support. Fix creating new instance

This commit is contained in:
Jan Dalheimer
2014-01-22 15:20:48 +01:00
parent d166b48072
commit 0a592ab99b
8 changed files with 123 additions and 84 deletions

View File

@@ -35,10 +35,16 @@ DerpInstance::DerpInstance(const QString &rootDir, SettingsObject *settings, QOb
d->m_settings->registerSetting("IntendedVersion", "");
d->m_settings->registerSetting("ShouldUpdate", false);
d->version.reset(new DerpVersion(this, this));
reloadFullVersion();
if (QDir(instanceRoot()).exists("version.json"))
{
reloadFullVersion();
}
else
{
clearFullVersion();
}
}
std::shared_ptr<Task> DerpInstance::doUpdate(bool only_prepare)
{
return std::shared_ptr<Task>(new DerpUpdate(this, only_prepare));
@@ -280,9 +286,8 @@ bool DerpInstance::setIntendedVersionId(QString version)
{
settings().set("IntendedVersion", version);
setShouldUpdate(true);
auto pathOrig = PathCombine(instanceRoot(), "version.json");
QFile::remove(pathOrig);
reloadFullVersion();
QFile::remove(PathCombine(instanceRoot(), "version.json"));
clearFullVersion();
return true;
}
@@ -327,6 +332,13 @@ bool DerpInstance::reloadFullVersion(QWidget *widgetParent)
return ret;
}
void DerpInstance::clearFullVersion()
{
I_D(DerpInstance);
d->version->clear();
emit versionReloaded();
}
std::shared_ptr<DerpVersion> DerpInstance::getFullVersion()
{
I_D(DerpInstance);