From be73eb3322b6bb5ab1144f9942ef9bd188c704a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 8 Jun 2014 21:26:48 +0200 Subject: Version revert logic improvements, colorful icons for mod lists and resource pack list. Icons are from Oxygen. --- logic/LegacyInstance.cpp | 4 +-- logic/OneSixInstance.cpp | 4 +-- logic/minecraft/InstanceVersion.cpp | 58 +++++++++++++++++++++++++++++++++++-- logic/minecraft/InstanceVersion.h | 8 +++-- 4 files changed, 65 insertions(+), 9 deletions(-) (limited to 'logic') diff --git a/logic/LegacyInstance.cpp b/logic/LegacyInstance.cpp index 15332c41..378c058b 100644 --- a/logic/LegacyInstance.cpp +++ b/logic/LegacyInstance.cpp @@ -49,8 +49,8 @@ QList LegacyInstance::getPages() QList values; values.append(new LegacyUpgradePage(this)); values.append(new LegacyJarModPage(this)); - values.append(new ModFolderPage(loaderModList(), "mods", "centralmods", tr("Loader Mods"))); - values.append(new ModFolderPage(coreModList(), "coremods", "viewfolder", tr("Core Mods"))); + values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"))); + values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"))); values.append(new TexturePackPage(this)); return values; } diff --git a/logic/OneSixInstance.cpp b/logic/OneSixInstance.cpp index d306470c..6de789df 100644 --- a/logic/OneSixInstance.cpp +++ b/logic/OneSixInstance.cpp @@ -60,8 +60,8 @@ QList OneSixInstance::getPages() { QList values; values.append(new VersionPage(this)); - values.append(new ModFolderPage(loaderModList(), "mods", "centralmods", tr("Loader Mods"))); - values.append(new ModFolderPage(coreModList(), "coremods", "viewfolder", tr("Core Mods"))); + values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"))); + values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"))); values.append(new ResourcePackPage(this)); values.append(new TexturePackPage(this)); return values; diff --git a/logic/minecraft/InstanceVersion.cpp b/logic/minecraft/InstanceVersion.cpp index 73beceb3..baf34404 100644 --- a/logic/minecraft/InstanceVersion.cpp +++ b/logic/minecraft/InstanceVersion.cpp @@ -161,12 +161,35 @@ bool InstanceVersion::isVanilla() return false; if(QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json"))) return false; + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "version.json"))) + return false; return true; } bool InstanceVersion::revertToVanilla() { beginResetModel(); + // remove custom.json, if present + QString customPath = PathCombine(m_instance->instanceRoot(), "custom.json"); + if(QFile::exists(customPath)) + { + if(!QFile::remove(customPath)) + { + endResetModel(); + return false; + } + } + // remove version.json, if present + QString versionPath = PathCombine(m_instance->instanceRoot(), "version.json"); + if(QFile::exists(versionPath)) + { + if(!QFile::remove(versionPath)) + { + endResetModel(); + return false; + } + } + // remove patches, if present auto it = VersionPatches.begin(); while (it != VersionPatches.end()) { @@ -195,9 +218,40 @@ bool InstanceVersion::revertToVanilla() return true; } -bool InstanceVersion::usesLegacyCustomJson() +bool InstanceVersion::hasDeprecatedVersionFiles() { - return QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json")); + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json"))) + return true; + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "version.json"))) + return true; + return false; +} + +bool InstanceVersion::removeDeprecatedVersionFiles() +{ + beginResetModel(); + // remove custom.json, if present + QString customPath = PathCombine(m_instance->instanceRoot(), "custom.json"); + if(QFile::exists(customPath)) + { + if(!QFile::remove(customPath)) + { + endResetModel(); + return false; + } + } + // remove version.json, if present + QString versionPath = PathCombine(m_instance->instanceRoot(), "version.json"); + if(QFile::exists(versionPath)) + { + if(!QFile::remove(versionPath)) + { + endResetModel(); + return false; + } + } + endResetModel(); + return true; } QList > InstanceVersion::getActiveNormalLibs() diff --git a/logic/minecraft/InstanceVersion.h b/logic/minecraft/InstanceVersion.h index 60df59df..6b69ab47 100644 --- a/logic/minecraft/InstanceVersion.h +++ b/logic/minecraft/InstanceVersion.h @@ -51,6 +51,11 @@ public: // remove any customizations on top of vanilla bool revertToVanilla(); + // does this version consist of obsolete files? + bool hasDeprecatedVersionFiles(); + // remove obsolete files + bool removeDeprecatedVersionFiles(); + // does this version have an FTB pack patch file? bool hasFtbPack(); // remove FTB pack @@ -61,9 +66,6 @@ public: void installJarMods(QStringList selectedFiles); void installJarModByFilename(QString filepath); - // does this version still use a legacy custom.json file? - bool usesLegacyCustomJson(); - enum MoveDirection { MoveUp, MoveDown }; void move(const int index, const MoveDirection direction); void resetOrder(); -- cgit v1.2.3