diff options
author | Petr Mrázek <peterix@gmail.com> | 2015-04-13 23:26:52 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-04-13 23:26:52 +0200 |
commit | 28aa8f342ebaf34655ed0c1dd59851adb224fc64 (patch) | |
tree | 22c006ffa9a65f2e569dfb13dc2989b6a6891f7e | |
parent | 4d8f068f9cc576c7d1fb19551cb2429282a7c449 (diff) | |
download | MultiMC-28aa8f342ebaf34655ed0c1dd59851adb224fc64.tar MultiMC-28aa8f342ebaf34655ed0c1dd59851adb224fc64.tar.gz MultiMC-28aa8f342ebaf34655ed0c1dd59851adb224fc64.tar.lz MultiMC-28aa8f342ebaf34655ed0c1dd59851adb224fc64.tar.xz MultiMC-28aa8f342ebaf34655ed0c1dd59851adb224fc64.zip |
GH-887 fix patch file removal
-rw-r--r-- | logic/minecraft/MinecraftProfile.cpp | 4 | ||||
-rw-r--r-- | logic/minecraft/OneSixProfileStrategy.cpp | 17 |
2 files changed, 20 insertions, 1 deletions
diff --git a/logic/minecraft/MinecraftProfile.cpp b/logic/minecraft/MinecraftProfile.cpp index e9ff87d8..e87ece00 100644 --- a/logic/minecraft/MinecraftProfile.cpp +++ b/logic/minecraft/MinecraftProfile.cpp @@ -99,10 +99,14 @@ bool MinecraftProfile::canRemove(const int index) const bool MinecraftProfile::remove(const int index) { if (!canRemove(index)) + { + qDebug() << "Patch" << index << "is non-removable"; return false; + } if(!m_strategy->removePatch(VersionPatches.at(index))) { + qCritical() << "Patch" << index << "could not be removed"; return false; } diff --git a/logic/minecraft/OneSixProfileStrategy.cpp b/logic/minecraft/OneSixProfileStrategy.cpp index 4f596d12..12503a80 100644 --- a/logic/minecraft/OneSixProfileStrategy.cpp +++ b/logic/minecraft/OneSixProfileStrategy.cpp @@ -186,6 +186,15 @@ bool OneSixProfileStrategy::removePatch(ProfilePatchPtr patch) bool ok = true; // first, remove the patch file. this ensures it's not used anymore auto fileName = patch->getPatchFilename(); + if(fileName.size()) + { + QFile patchFile(fileName); + if(patchFile.exists() && !patchFile.remove()) + { + qCritical() << "File" << fileName << "could not be removed because:" << patchFile.errorString(); + return false; + } + } auto preRemoveJarMod = [&](JarmodPtr jarMod) -> bool @@ -194,7 +203,13 @@ bool OneSixProfileStrategy::removePatch(ProfilePatchPtr patch) QFileInfo finfo (fullpath); if(finfo.exists()) { - return QFile::remove(fullpath); + QFile jarModFile(fullpath); + if(!jarModFile.remove()) + { + qCritical() << "File" << fullpath << "could not be removed because:" << jarModFile.errorString(); + return false; + } + return true; } return true; }; |