diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-07-07 19:46:56 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-07-07 19:46:56 +0200 |
commit | e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb (patch) | |
tree | 5baef66192a4d73fbee3ff9652e55b121882ec76 /api/logic/minecraft/onesix/OneSixInstance.cpp | |
parent | fbeceaa98cc252c671ef6a9d26837973cc9bffa3 (diff) | |
download | MultiMC-e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb.tar MultiMC-e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb.tar.gz MultiMC-e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb.tar.lz MultiMC-e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb.tar.xz MultiMC-e5b4b5d2954d72f0323ced8e7d14f5ce9606e4cb.zip |
GH-1927 Add more specific task status logging
* Tasks are now described by class name and object name (or memory address).
* Tasks starts are logged.
* Aborted tasks are now treated just as the other cases.
Diffstat (limited to 'api/logic/minecraft/onesix/OneSixInstance.cpp')
-rw-r--r-- | api/logic/minecraft/onesix/OneSixInstance.cpp | 75 |
1 files changed, 39 insertions, 36 deletions
diff --git a/api/logic/minecraft/onesix/OneSixInstance.cpp b/api/logic/minecraft/onesix/OneSixInstance.cpp index ecfd0647..107da04f 100644 --- a/api/logic/minecraft/onesix/OneSixInstance.cpp +++ b/api/logic/minecraft/onesix/OneSixInstance.cpp @@ -368,53 +368,54 @@ std::shared_ptr<LaunchStep> OneSixInstance::createMainLaunchStep(LaunchTask * pa return nullptr; } - -std::shared_ptr<Task> OneSixInstance::createJarModdingTask() +class JarModTask : public Task { - class JarModTask : public Task + Q_OBJECT +public: + explicit JarModTask(std::shared_ptr<OneSixInstance> inst) : Task(nullptr), m_inst(inst) + { + } + virtual void executeTask() { - public: - explicit JarModTask(std::shared_ptr<OneSixInstance> inst) : Task(nullptr), m_inst(inst) + auto profile = m_inst->getMinecraftProfile(); + // nuke obsolete stripped jar(s) if needed + QString version_id = profile->getMinecraftVersion(); + if(!FS::ensureFolderPathExists(m_inst->binRoot())) { + emitFailed(tr("Couldn't create the bin folder for Minecraft.jar")); } - virtual void executeTask() + auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar"); + QFile finalJar(finalJarPath); + if(finalJar.exists()) { - auto profile = m_inst->getMinecraftProfile(); - // nuke obsolete stripped jar(s) if needed - QString version_id = profile->getMinecraftVersion(); - if(!FS::ensureFolderPathExists(m_inst->binRoot())) + if(!finalJar.remove()) { - emitFailed(tr("Couldn't create the bin folder for Minecraft.jar")); - } - auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar"); - QFile finalJar(finalJarPath); - if(finalJar.exists()) - { - if(!finalJar.remove()) - { - emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath)); - return; - } + emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath)); + return; } + } - // create temporary modded jar, if needed - auto jarMods = m_inst->getJarMods(); - if(jarMods.size()) + // create temporary modded jar, if needed + auto jarMods = m_inst->getJarMods(); + if(jarMods.size()) + { + auto mainJar = profile->getMainJar(); + QStringList jars, temp1, temp2, temp3, temp4; + mainJar->getApplicableFiles(currentSystem, jars, temp1, temp2, temp3, m_inst->getLocalLibraryPath()); + auto sourceJarPath = jars[0]; + if(!MMCZip::createModdedJar(sourceJarPath, finalJarPath, jarMods)) { - auto mainJar = profile->getMainJar(); - QStringList jars, temp1, temp2, temp3, temp4; - mainJar->getApplicableFiles(currentSystem, jars, temp1, temp2, temp3, m_inst->getLocalLibraryPath()); - auto sourceJarPath = jars[0]; - if(!MMCZip::createModdedJar(sourceJarPath, finalJarPath, jarMods)) - { - emitFailed(tr("Failed to create the custom Minecraft jar file.")); - return; - } + emitFailed(tr("Failed to create the custom Minecraft jar file.")); + return; } - emitSucceeded(); } - std::shared_ptr<OneSixInstance> m_inst; - }; + emitSucceeded(); + } + std::shared_ptr<OneSixInstance> m_inst; +}; + +std::shared_ptr<Task> OneSixInstance::createJarModdingTask() +{ return std::make_shared<JarModTask>(std::dynamic_pointer_cast<OneSixInstance>(shared_from_this())); } @@ -696,3 +697,5 @@ QStringList OneSixInstance::getNativeJars() const m_profile->getLibraryFiles(javaArchitecture, jars, nativeJars, getLocalLibraryPath(), binRoot()); return nativeJars; } + +#include "OneSixInstance.moc" |