eden/quazip.patch
crueter 6be4b03050
Some checks failed
eden-license / license-header (pull_request) Failing after 30s
[desktop] feat: import/export data
Currently not the ideal solution. Can't be cancelled due to JlCompress
currently lacking a method of cancellation, but for now this is a good
prototype.

Signed-off-by: crueter <crueter@eden-emu.dev>
2025-10-09 15:19:32 -04:00

56 lines
1.6 KiB
Diff

diff --git a/quazip/JlCompress.cpp b/quazip/JlCompress.cpp
index 5394b2c..c189e8b 100644
--- a/quazip/JlCompress.cpp
+++ b/quazip/JlCompress.cpp
@@ -26,6 +26,8 @@ see quazip/(un)zip.h files for details. Basically it's the zlib license.
#include "JlCompress.h"
#include <memory>
+bool JlCompress::m_cancelled = false;
+
bool JlCompress::copyData(QIODevice &inFile, QIODevice &outFile)
{
while (!inFile.atEnd()) {
@@ -474,6 +476,11 @@ QStringList JlCompress::getFileList(QIODevice *ioDevice)
return getFileList(zip);
}
+void JlCompress::cancel()
+{
+ m_cancelled = true;
+}
+
QString JlCompress::extractFile(QIODevice *ioDevice, QString fileName, QString fileDest)
{
QuaZip zip(ioDevice);
@@ -484,4 +491,4 @@ QStringList JlCompress::extractFiles(QIODevice *ioDevice, QStringList files, QSt
{
QuaZip zip(ioDevice);
return extractFiles(zip, files, dir);
-}
+}
diff --git a/quazip/JlCompress.h b/quazip/JlCompress.h
index 1b009f2..28b4aba 100644
--- a/quazip/JlCompress.h
+++ b/quazip/JlCompress.h
@@ -77,7 +77,7 @@ public:
};
public:
- explicit Options(const CompressionStrategy& strategy)
+ explicit Options(const CompressionStrategy& strategy)
: m_compressionStrategy(strategy) {}
explicit Options(const QDateTime& dateTime = QDateTime(), const CompressionStrategy& strategy = Default)
@@ -323,6 +323,11 @@ public:
are present separately.
*/
static QStringList getFileList(QIODevice *ioDevice);
+
+ static void cancel();
+
+private:
+ static bool m_cancelled;
};
#endif /* JLCOMPRESSFOLDER_H_ */