Some checks failed
eden-license / license-header (pull_request) Failing after 30s
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>
56 lines
1.6 KiB
Diff
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_ */
|