aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
-rw-r--r--CMakeLists.txt3
-rw-r--r--launcher/InstanceImportTask.cpp2
-rw-r--r--launcher/MMCZip.cpp102
-rw-r--r--launcher/MMCZip.h8
-rw-r--r--launcher/minecraft/MinecraftLoadAndCheck.h2
-rw-r--r--launcher/minecraft/MinecraftUpdate.h2
-rw-r--r--launcher/minecraft/World.cpp6
-rw-r--r--launcher/minecraft/launch/ExtractNatives.cpp4
-rw-r--r--launcher/minecraft/launch/ModMinecraftJar.cpp8
-rw-r--r--launcher/minecraft/mod/LocalModParseTask.cpp4
-rw-r--r--launcher/modplatform/atlauncher/ATLPackInstallTask.cpp2
-rw-r--r--launcher/modplatform/legacy_ftb/PackInstallTask.h4
-rw-r--r--launcher/modplatform/technic/SingleZipPackInstallTask.h2
-rw-r--r--launcher/modplatform/technic/TechnicPackProcessor.cpp6
-rw-r--r--launcher/ui/dialogs/ExportInstanceDialog.cpp7
-rw-r--r--libraries/classparser/src/classparser.cpp2
m---------libraries/quazip0
18 files changed, 39 insertions, 129 deletions
diff --git a/.gitmodules b/.gitmodules
index 6b90601f..cff26810 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,7 +2,3 @@
path = libraries/libnbtplusplus
url = https://github.com/MultiMC/libnbtplusplus.git
pushurl = git@github.com:MultiMC/libnbtplusplus.git
-[submodule "libraries/quazip"]
- path = libraries/quazip
- url = https://github.com/PolyMC/quazip.git
- pushurl = git@github.com:PolyMC/quazip.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a9511b3..35deff04 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -103,6 +103,8 @@ find_package(Qt5Network REQUIRED)
find_package(Qt5Test REQUIRED)
find_package(Qt5Xml REQUIRED)
+find_package(QuaZip-Qt5 REQUIRED)
+
# The Qt5 cmake files don't provide its install paths, so ask qmake.
include(QMakeQuery)
query_qmake(QT_INSTALL_PLUGINS QT_PLUGINS_DIR)
@@ -249,7 +251,6 @@ add_subdirectory(libraries/hoedown) # markdown parser
add_subdirectory(libraries/launcher) # java based launcher part for Minecraft
add_subdirectory(libraries/javacheck) # java compatibility checker
add_subdirectory(libraries/xz-embedded) # xz compression
-add_subdirectory(libraries/quazip) # zip manipulation library
add_subdirectory(libraries/rainbow) # Qt extension for colors
add_subdirectory(libraries/iconfix) # fork of Qt's QIcon loader
add_subdirectory(libraries/LocalPeer) # fork of a library from Qt solutions
diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp
index 8cd68d7b..6e2dd912 100644
--- a/launcher/InstanceImportTask.cpp
+++ b/launcher/InstanceImportTask.cpp
@@ -29,7 +29,7 @@
#include "modplatform/flame/FileResolvingTask.h"
#include "modplatform/flame/PackManifest.h"
#include "Json.h"
-#include <quazipdir.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
#include "modplatform/technic/TechnicPackProcessor.h"
#include "icons/IconList.h"
diff --git a/launcher/MMCZip.cpp b/launcher/MMCZip.cpp
index b25c61e7..e1906a0c 100644
--- a/launcher/MMCZip.cpp
+++ b/launcher/MMCZip.cpp
@@ -13,17 +13,16 @@
* limitations under the License.
*/
-#include <quazip.h>
-#include <quazipdir.h>
-#include <quazipfile.h>
-#include <JlCompress.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
#include "MMCZip.h"
#include "FileSystem.h"
#include <QDebug>
// ours
-bool MMCZip::mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &contained, const JlCompress::FilterFunction filter)
+bool MMCZip::mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &contained, const FilterFunction filter)
{
QuaZip modZip(from.filePath());
modZip.open(QuaZip::mdUnzip);
@@ -75,99 +74,6 @@ bool MMCZip::mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &containe
}
// ours
-bool MMCZip::createModdedJar(QString sourceJarPath, QString targetJarPath, const QList<Mod>& mods)
-{
- QuaZip zipOut(targetJarPath);
- if (!zipOut.open(QuaZip::mdCreate))
- {
- QFile::remove(targetJarPath);
- qCritical() << "Failed to open the minecraft.jar for modding";
- return false;
- }
- // Files already added to the jar.
- // These files will be skipped.
- QSet<QString> addedFiles;
-
- // Modify the jar
- QListIterator<Mod> i(mods);
- i.toBack();
- while (i.hasPrevious())
- {
- const Mod &mod = i.previous();
- // do not merge disabled mods.
- if (!mod.enabled())
- continue;
- if (mod.type() == Mod::MOD_ZIPFILE)
- {
- if (!mergeZipFiles(&zipOut, mod.filename(), addedFiles))
- {
- zipOut.close();
- QFile::remove(targetJarPath);
- qCritical() << "Failed to add" << mod.filename().fileName() << "to the jar.";
- return false;
- }
- }
- else if (mod.type() == Mod::MOD_SINGLEFILE)
- {
- // FIXME: buggy - does not work with addedFiles
- auto filename = mod.filename();
- if (!JlCompress::compressFile(&zipOut, filename.absoluteFilePath(), filename.fileName()))
- {
- zipOut.close();
- QFile::remove(targetJarPath);
- qCritical() << "Failed to add" << mod.filename().fileName() << "to the jar.";
- return false;
- }
- addedFiles.insert(filename.fileName());
- }
- else if (mod.type() == Mod::MOD_FOLDER)
- {
- // FIXME: buggy - does not work with addedFiles
- auto filename = mod.filename();
- QString what_to_zip = filename.absoluteFilePath();
- QDir dir(what_to_zip);
- dir.cdUp();
- QString parent_dir = dir.absolutePath();
- if (!JlCompress::compressSubDir(&zipOut, what_to_zip, parent_dir, addedFiles))
- {
- zipOut.close();
- QFile::remove(targetJarPath);
- qCritical() << "Failed to add" << mod.filename().fileName() << "to the jar.";
- return false;
- }
- qDebug() << "Adding folder " << filename.fileName() << " from "
- << filename.absoluteFilePath();
- }
- else
- {
- // Make sure we do not continue launching when something is missing or undefined...
- zipOut.close();
- QFile::remove(targetJarPath);
- qCritical() << "Failed to add unknown mod type" << mod.filename().fileName() << "to the jar.";
- return false;
- }
- }
-
- if (!mergeZipFiles(&zipOut, QFileInfo(sourceJarPath), addedFiles, [](const QString key){return !key.contains("META-INF");}))
- {
- zipOut.close();
- QFile::remove(targetJarPath);
- qCritical() << "Failed to insert minecraft.jar contents.";
- return false;
- }
-
- // Recompress the jar
- zipOut.close();
- if (zipOut.getZipError() != 0)
- {
- QFile::remove(targetJarPath);
- qCritical() << "Failed to finalize minecraft.jar!";
- return false;
- }
- return true;
-}
-
-// ours
QString MMCZip::findFolderOfFileInZip(QuaZip * zip, const QString & what, const QString &root)
{
QuaZipDir rootDir(zip, root);
diff --git a/launcher/MMCZip.h b/launcher/MMCZip.h
index 9c47fa11..5260f856 100644
--- a/launcher/MMCZip.h
+++ b/launcher/MMCZip.h
@@ -21,17 +21,21 @@
#include "minecraft/mod/Mod.h"
#include <functional>
-#include <JlCompress.h>
+//#include <QuaZip-Qt5-1.2/quazip/JlCompress.h>
+// TODO: Blocked by https://github.com/stachenov/quazip/pull/141
+// For now, checkout https://github.com/Scrumplex/quazip/tree/expose-jlcompress-fns at ../../quazip
+#include <../../quazip/quazip/JlCompress.h>
#include <nonstd/optional>
namespace MMCZip
{
+ using FilterFunction = std::function<bool(const QString &)>;
/**
* Merge two zip files, using a filter function
*/
bool mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &contained,
- const JlCompress::FilterFunction filter = nullptr);
+ const FilterFunction filter = nullptr);
/**
* take a source jar, add mods to it, resulting in target jar
diff --git a/launcher/minecraft/MinecraftLoadAndCheck.h b/launcher/minecraft/MinecraftLoadAndCheck.h
index bfeae46b..4e673a4b 100644
--- a/launcher/minecraft/MinecraftLoadAndCheck.h
+++ b/launcher/minecraft/MinecraftLoadAndCheck.h
@@ -20,7 +20,7 @@
#include <QUrl>
#include "tasks/Task.h"
-#include <quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include "QObjectPtr.h"
diff --git a/launcher/minecraft/MinecraftUpdate.h b/launcher/minecraft/MinecraftUpdate.h
index fadebff9..a1df4b3f 100644
--- a/launcher/minecraft/MinecraftUpdate.h
+++ b/launcher/minecraft/MinecraftUpdate.h
@@ -22,7 +22,7 @@
#include "net/NetJob.h"
#include "tasks/Task.h"
#include "minecraft/VersionFilterData.h"
-#include <quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
class MinecraftVersion;
class MinecraftInstance;
diff --git a/launcher/minecraft/World.cpp b/launcher/minecraft/World.cpp
index a2b4dac7..95892d43 100644
--- a/launcher/minecraft/World.cpp
+++ b/launcher/minecraft/World.cpp
@@ -26,9 +26,9 @@
#include <io/stream_reader.h>
#include <tag_string.h>
#include <tag_primitive.h>
-#include <quazip.h>
-#include <quazipfile.h>
-#include <quazipdir.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
#include <QCoreApplication>
diff --git a/launcher/minecraft/launch/ExtractNatives.cpp b/launcher/minecraft/launch/ExtractNatives.cpp
index 8cd439b1..744e7ac6 100644
--- a/launcher/minecraft/launch/ExtractNatives.cpp
+++ b/launcher/minecraft/launch/ExtractNatives.cpp
@@ -17,8 +17,8 @@
#include <minecraft/MinecraftInstance.h>
#include <launch/LaunchTask.h>
-#include <quazip.h>
-#include <quazipdir.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
#include "MMCZip.h"
#include "FileSystem.h"
#include <QDir>
diff --git a/launcher/minecraft/launch/ModMinecraftJar.cpp b/launcher/minecraft/launch/ModMinecraftJar.cpp
index 93de9d59..c8796f01 100644
--- a/launcher/minecraft/launch/ModMinecraftJar.cpp
+++ b/launcher/minecraft/launch/ModMinecraftJar.cpp
@@ -42,6 +42,7 @@ void ModMinecraftJar::executeTask()
emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath));
}
+ /*
// create temporary modded jar, if needed
auto components = m_inst->getPackProfile();
auto profile = components->getProfile();
@@ -53,12 +54,13 @@ void ModMinecraftJar::executeTask()
mainJar->getApplicableFiles(currentSystem, jars, temp1, temp2, temp3, m_inst->getLocalLibraryPath());
auto sourceJarPath = jars[0];
if(!MMCZip::createModdedJar(sourceJarPath, finalJarPath, jarMods))
- {
+ { */
+ // TODO: add back support for modded jar
emitFailed(tr("Failed to create the custom Minecraft jar file."));
return;
- }
+ /*}
}
- emitSucceeded();
+ emitSucceeded();*/
}
void ModMinecraftJar::finalize()
diff --git a/launcher/minecraft/mod/LocalModParseTask.cpp b/launcher/minecraft/mod/LocalModParseTask.cpp
index 8ac5885f..fa3a4538 100644
--- a/launcher/minecraft/mod/LocalModParseTask.cpp
+++ b/launcher/minecraft/mod/LocalModParseTask.cpp
@@ -4,8 +4,8 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
-#include <quazip.h>
-#include <quazipfile.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
#include <toml.h>
#include "settings/INIFile.h"
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
index e5db512e..30a61026 100644
--- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
+++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
@@ -19,7 +19,7 @@
#include <QtConcurrent/QtConcurrent>
-#include <quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include "MMCZip.h"
#include "minecraft/OneSixVersionFormat.h"
diff --git a/launcher/modplatform/legacy_ftb/PackInstallTask.h b/launcher/modplatform/legacy_ftb/PackInstallTask.h
index 305635a1..6797971c 100644
--- a/launcher/modplatform/legacy_ftb/PackInstallTask.h
+++ b/launcher/modplatform/legacy_ftb/PackInstallTask.h
@@ -1,8 +1,8 @@
#pragma once
#include "InstanceTask.h"
#include "net/NetJob.h"
-#include "quazip.h"
-#include "quazipdir.h"
+#include "QuaZip-Qt5-1.2/quazip/quazip.h"
+#include "QuaZip-Qt5-1.2/quazip/quazipdir.h"
#include "meta/Index.h"
#include "meta/Version.h"
#include "meta/VersionList.h"
diff --git a/launcher/modplatform/technic/SingleZipPackInstallTask.h b/launcher/modplatform/technic/SingleZipPackInstallTask.h
index 74f60941..58594136 100644
--- a/launcher/modplatform/technic/SingleZipPackInstallTask.h
+++ b/launcher/modplatform/technic/SingleZipPackInstallTask.h
@@ -18,7 +18,7 @@
#include "InstanceTask.h"
#include "net/NetJob.h"
-#include "quazip.h"
+#include "QuaZip-Qt5-1.2/quazip/quazip.h"
#include <QFutureWatcher>
#include <QStringList>
diff --git a/launcher/modplatform/technic/TechnicPackProcessor.cpp b/launcher/modplatform/technic/TechnicPackProcessor.cpp
index 52979b7c..f5c011f5 100644
--- a/launcher/modplatform/technic/TechnicPackProcessor.cpp
+++ b/launcher/modplatform/technic/TechnicPackProcessor.cpp
@@ -19,9 +19,9 @@
#include <Json.h>
#include <minecraft/MinecraftInstance.h>
#include <minecraft/PackProfile.h>
-#include <quazip.h>
-#include <quazipdir.h>
-#include <quazipfile.h>
+#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
#include <settings/INISettingsObject.h>
#include <memory>
diff --git a/launcher/ui/dialogs/ExportInstanceDialog.cpp b/launcher/ui/dialogs/ExportInstanceDialog.cpp
index 1a164875..59ae0a76 100644
--- a/launcher/ui/dialogs/ExportInstanceDialog.cpp
+++ b/launcher/ui/dialogs/ExportInstanceDialog.cpp
@@ -378,6 +378,7 @@ void SaveIcon(InstancePtr m_instance)
bool ExportInstanceDialog::doExport()
{
+ /*
auto name = FS::RemoveInvalidFilenameChars(m_instance->name());
const QString output = QFileDialog::getSaveFileName(
@@ -404,11 +405,11 @@ bool ExportInstanceDialog::doExport()
auto & blocked = proxyModel->blockedPaths();
using std::placeholders::_1;
if (!JlCompress::compressDir(output, m_instance->instanceRoot(), name, std::bind(&SeparatorPrefixTree<'/'>::covers, blocked, _1)))
- {
+ { */
QMessageBox::warning(this, tr("Error"), tr("Unable to export instance"));
return false;
- }
- return true;
+ /*}
+ return true;*/
}
void ExportInstanceDialog::done(int result)
diff --git a/libraries/classparser/src/classparser.cpp b/libraries/classparser/src/classparser.cpp
index 8825ea39..a47d1aad 100644
--- a/libraries/classparser/src/classparser.cpp
+++ b/libraries/classparser/src/classparser.cpp
@@ -18,7 +18,7 @@
#include "classparser.h"
#include <QFile>
-#include <quazipfile.h>
+#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
#include <QDebug>
namespace classparser
diff --git a/libraries/quazip b/libraries/quazip
deleted file mode 160000
-Subproject c9ef32de19bceb58d236f5c22382698deaec69f