QuaZip quazip-1-6
QuaCompress.h
1#ifndef QUACOMPRESS_H
2#define QUACOMPRESS_H
3
4/*
5Copyright (C) 2025 cen1
6
7This file is part of QuaZip.
8
9QuaZip is free software: you can redistribute it and/or modify
10it under the terms of the GNU Lesser General Public License as published by
11the Free Software Foundation, either version 2.1 of the License, or
12(at your option) any later version.
13
14QuaZip is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU Lesser General Public License for more details.
18
19You should have received a copy of the GNU Lesser General Public License
20along with QuaZip. If not, see <http://www.gnu.org/licenses/>.
21
22See COPYING file for the full LGPL text.
23*/
24
25#include <QtCore/QString>
26#include <QtCore/QStringList>
27#include <QtCore/QDir>
28#include <QtCore/QDateTime>
29
30#include "quazip_global.h"
31#include "JlCompress.h"
32
44class QUAZIP_EXPORT QuaCompress {
45public:
48
49 // Convenience constants for compression strategies
50 static constexpr CompressionStrategy Storage = JlCompress::Options::Storage;
51 static constexpr CompressionStrategy Fastest = JlCompress::Options::Fastest;
52 static constexpr CompressionStrategy Faster = JlCompress::Options::Faster;
53 static constexpr CompressionStrategy Standard = JlCompress::Options::Standard;
54 static constexpr CompressionStrategy Better = JlCompress::Options::Better;
55 static constexpr CompressionStrategy Best = JlCompress::Options::Best;
56 static constexpr CompressionStrategy Default = JlCompress::Options::Default;
57
60
62
67 QuaCompress& withUtf8Enabled(bool enabled = true);
68
70
74 QuaCompress& withStrategy(CompressionStrategy strategy);
75
77
81 QuaCompress& withDateTime(const QDateTime& dateTime);
82
84
88 QuaCompress& withPassword(const QByteArray& password);
89
90 // ==================== Compression Methods ====================
91
93
98 bool compressFile(const QString& newArchive, const QString& file) const;
99
101
106 bool compressFiles(const QString& newArchive, const QStringList& files) const;
107
109
116 bool compressDir(const QString& newArchive, const QString& dir = QString(),
117 bool recursive = true,
118 QDir::Filters filters = QDir::AllEntries | QDir::NoDotAndDotDot) const;
119
120 // ==================== Add to Existing Archive ====================
121
123
128 bool addFile(const QString& existingArchive, const QString& file) const;
129
131
138 bool addFiles(const QString& existingArchive, const QStringList& files) const;
139
141
148 bool addDir(const QString& existingArchive, const QString& dir = QString(),
149 bool recursive = true,
150 QDir::Filters filters = QDir::AllEntries | QDir::NoDotAndDotDot) const;
151
152private:
153 JlCompress::Options m_options;
154};
155
156#endif // QUACOMPRESS_H
Definition JlCompress.h:45
CompressionStrategy
Definition JlCompress.h:61
@ Default
Definition JlCompress.h:76
@ Storage
Storage without compression.
Definition JlCompress.h:63
@ Standard
Standard compression speed and ratio.
Definition JlCompress.h:69
@ Faster
Relatively fast compression speed.
Definition JlCompress.h:67
@ Fastest
The fastest compression speed.
Definition JlCompress.h:65
@ Better
Better compression ratio.
Definition JlCompress.h:71
@ Best
The best compression ratio.
Definition JlCompress.h:73
Definition QuaCompress.h:44
JlCompress::Options::CompressionStrategy CompressionStrategy
Compression strategy - shared with JlCompress::Options::CompressionStrategy.
Definition QuaCompress.h:47