From eaf0cbeafc5ff70bd2bb0d66b5f5980a71f824c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Wed, 9 Oct 2013 23:16:10 +0200 Subject: Fix MMC-15 ``mod does not delete from jar'' --- logic/LegacyInstance.cpp | 125 +++++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 65 deletions(-) (limited to 'logic/LegacyInstance.cpp') diff --git a/logic/LegacyInstance.cpp b/logic/LegacyInstance.cpp index 205f6873..f741caad 100644 --- a/logic/LegacyInstance.cpp +++ b/logic/LegacyInstance.cpp @@ -14,8 +14,9 @@ #define LAUNCHER_FILE "MultiMCLauncher.jar" -LegacyInstance::LegacyInstance(const QString& rootDir, SettingsObject* settings, QObject* parent) - :BaseInstance( new LegacyInstancePrivate(),rootDir, settings, parent) +LegacyInstance::LegacyInstance(const QString &rootDir, SettingsObject *settings, + QObject *parent) + : BaseInstance(new LegacyInstancePrivate(), rootDir, settings, parent) { settings->registerSetting(new Setting("NeedsRebuild", true)); settings->registerSetting(new Setting("ShouldUpdate", false)); @@ -24,50 +25,51 @@ LegacyInstance::LegacyInstance(const QString& rootDir, SettingsObject* settings, settings->registerSetting(new Setting("IntendedJarVersion", "")); } -BaseUpdate* LegacyInstance::doUpdate() +BaseUpdate *LegacyInstance::doUpdate() { + auto list = jarModList(); return new LegacyUpdate(this, this); } -MinecraftProcess* LegacyInstance::prepareForLaunch(LoginResponse response) +MinecraftProcess *LegacyInstance::prepareForLaunch(LoginResponse response) { - MinecraftProcess * proc = new MinecraftProcess(this); - + MinecraftProcess *proc = new MinecraftProcess(this); + QIcon icon = MMC->icons()->getIcon(iconKey()); - auto pixmap = icon.pixmap(128,128); - pixmap.save(PathCombine(minecraftRoot(), "icon.png"),"PNG"); - + auto pixmap = icon.pixmap(128, 128); + pixmap.save(PathCombine(minecraftRoot(), "icon.png"), "PNG"); + // extract the legacy launcher QFile(":/launcher/launcher.jar").copy(PathCombine(minecraftRoot(), LAUNCHER_FILE)); - + // set the process arguments { QStringList args; - + // window size QString windowSize; if (settings().get("LaunchMaximized").toBool()) windowSize = "max"; else - windowSize = QString("%1x%2"). - arg(settings().get("MinecraftWinWidth").toInt()). - arg(settings().get("MinecraftWinHeight").toInt()); - + windowSize = QString("%1x%2").arg(settings().get("MinecraftWinWidth").toInt()).arg( + settings().get("MinecraftWinHeight").toInt()); + // window title QString windowTitle; windowTitle.append("MultiMC: ").append(name()); - + // Java arguments args.append(Util::Commandline::splitArgs(settings().get("JvmArgs").toString())); - + #ifdef OSX // OSX dock icon and name args << "-Xdock:icon=icon.png"; args << QString("-Xdock:name=\"%1\"").arg(windowTitle); #endif - - QString lwjgl = QDir(MMC->settings()->get("LWJGLDir").toString() + "/" + lwjglVersion()).absolutePath(); - + + QString lwjgl = QDir(MMC->settings()->get("LWJGLDir").toString() + "/" + lwjglVersion()) + .absolutePath(); + // launcher arguments args << QString("-Xms%1m").arg(settings().get("MinMemAlloc").toInt()); args << QString("-Xmx%1m").arg(settings().get("MaxMemAlloc").toInt()); @@ -80,41 +82,39 @@ MinecraftProcess* LegacyInstance::prepareForLaunch(LoginResponse response) args << lwjgl; proc->setMinecraftArguments(args); } - + // set the process work path proc->setMinecraftWorkdir(minecraftRoot()); - + return proc; } void LegacyInstance::cleanupAfterRun() { - //FIXME: delete the launcher and icons and whatnot. + // FIXME: delete the launcher and icons and whatnot. } -std::shared_ptr< ModList > LegacyInstance::coreModList() +std::shared_ptr LegacyInstance::coreModList() { I_D(LegacyInstance); - if(!d->core_mod_list) + if (!d->core_mod_list) { d->core_mod_list.reset(new ModList(coreModsDir())); } - else - d->core_mod_list->update(); + d->core_mod_list->update(); return d->core_mod_list; } -std::shared_ptr< ModList > LegacyInstance::jarModList() +std::shared_ptr LegacyInstance::jarModList() { I_D(LegacyInstance); - if(!d->jar_mod_list) + if (!d->jar_mod_list) { auto list = new ModList(jarModsDir(), modListFile()); connect(list, SIGNAL(changed()), SLOT(jarModsChanged())); d->jar_mod_list.reset(list); } - else - d->jar_mod_list->update(); + d->jar_mod_list->update(); return d->jar_mod_list; } @@ -123,38 +123,33 @@ void LegacyInstance::jarModsChanged() setShouldRebuild(true); } - -std::shared_ptr< ModList > LegacyInstance::loaderModList() +std::shared_ptr LegacyInstance::loaderModList() { I_D(LegacyInstance); - if(!d->loader_mod_list) + if (!d->loader_mod_list) { d->loader_mod_list.reset(new ModList(loaderModsDir())); } - else - d->loader_mod_list->update(); + d->loader_mod_list->update(); return d->loader_mod_list; } -std::shared_ptr< ModList > LegacyInstance::texturePackList() +std::shared_ptr LegacyInstance::texturePackList() { I_D(LegacyInstance); - if(!d->texture_pack_list) + if (!d->texture_pack_list) { d->texture_pack_list.reset(new ModList(texturePacksDir())); } - else - d->texture_pack_list->update(); + d->texture_pack_list->update(); return d->texture_pack_list; } - -QDialog * LegacyInstance::createModEditDialog ( QWidget* parent ) +QDialog *LegacyInstance::createModEditDialog(QWidget *parent) { return new LegacyModEditDialog(this, parent); } - QString LegacyInstance::jarModsDir() const { return PathCombine(instanceRoot(), "instMods"); @@ -204,7 +199,6 @@ QString LegacyInstance::instanceConfigFolder() const return PathCombine(minecraftRoot(), "config"); } - /* bool LegacyInstance::shouldUpdateCurrentVersion() const { @@ -215,21 +209,22 @@ bool LegacyInstance::shouldUpdateCurrentVersion() const void LegacyInstance::updateCurrentVersion(bool keepCurrent) { QFileInfo jar(runnableJar()); - + if(!jar.exists()) { setLastCurrentVersionUpdate(0); setCurrentVersionId("Unknown"); return; } - + qint64 time = jar.lastModified().toUTC().toMSecsSinceEpoch(); - + setLastCurrentVersionUpdate(time); if (!keepCurrent) { // TODO: Implement GetMinecraftJarVersion function. - QString newVersion = "Unknown";//javautils::GetMinecraftJarVersion(jar.absoluteFilePath()); + QString newVersion = +"Unknown";//javautils::GetMinecraftJarVersion(jar.absoluteFilePath()); setCurrentVersionId(newVersion); } } @@ -247,41 +242,41 @@ void LegacyInstance::setLastCurrentVersionUpdate ( qint64 val ) bool LegacyInstance::shouldRebuild() const { I_D(LegacyInstance); - return d->m_settings->get ( "NeedsRebuild" ).toBool(); + return d->m_settings->get("NeedsRebuild").toBool(); } -void LegacyInstance::setShouldRebuild ( bool val ) +void LegacyInstance::setShouldRebuild(bool val) { I_D(LegacyInstance); - d->m_settings->set ( "NeedsRebuild", val ); + d->m_settings->set("NeedsRebuild", val); } QString LegacyInstance::currentVersionId() const { I_D(LegacyInstance); - return d->m_settings->get ( "JarVersion" ).toString(); + return d->m_settings->get("JarVersion").toString(); } -void LegacyInstance::setCurrentVersionId ( QString val ) +void LegacyInstance::setCurrentVersionId(QString val) { I_D(LegacyInstance); - d->m_settings->set ( "JarVersion", val ); + d->m_settings->set("JarVersion", val); } QString LegacyInstance::lwjglVersion() const { I_D(LegacyInstance); - return d->m_settings->get ( "LwjglVersion" ).toString(); + return d->m_settings->get("LwjglVersion").toString(); } -void LegacyInstance::setLWJGLVersion ( QString val ) +void LegacyInstance::setLWJGLVersion(QString val) { I_D(LegacyInstance); - d->m_settings->set ( "LwjglVersion", val ); + d->m_settings->set("LwjglVersion", val); } QString LegacyInstance::intendedVersionId() const { I_D(LegacyInstance); - return d->m_settings->get ( "IntendedJarVersion" ).toString(); + return d->m_settings->get("IntendedJarVersion").toString(); } -bool LegacyInstance::setIntendedVersionId ( QString version ) +bool LegacyInstance::setIntendedVersionId(QString version) { settings().set("IntendedJarVersion", version); setShouldUpdate(true); @@ -290,16 +285,16 @@ bool LegacyInstance::setIntendedVersionId ( QString version ) bool LegacyInstance::shouldUpdate() const { I_D(LegacyInstance); - QVariant var = settings().get ( "ShouldUpdate" ); - if ( !var.isValid() || var.toBool() == false ) + QVariant var = settings().get("ShouldUpdate"); + if (!var.isValid() || var.toBool() == false) { return intendedVersionId() != currentVersionId(); } return true; } -void LegacyInstance::setShouldUpdate ( bool val ) +void LegacyInstance::setShouldUpdate(bool val) { - settings().set ( "ShouldUpdate", val ); + settings().set("ShouldUpdate", val); } QString LegacyInstance::defaultBaseJar() const @@ -312,7 +307,7 @@ QString LegacyInstance::defaultCustomBaseJar() const return PathCombine(binDir(), "mcbackup.jar"); } -bool LegacyInstance::menuActionEnabled ( QString action_name ) const +bool LegacyInstance::menuActionEnabled(QString action_name) const { if (action_name == "actionChangeInstMCVersion") return false; @@ -321,7 +316,7 @@ bool LegacyInstance::menuActionEnabled ( QString action_name ) const QString LegacyInstance::getStatusbarDescription() { - if(shouldUpdate()) + if (shouldUpdate()) return "Legacy : " + currentVersionId() + " -> " + intendedVersionId(); else return "Legacy : " + currentVersionId(); -- cgit v1.2.3