Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
zip.h
Go to the documentation of this file.
1/****************************************************************************
2** Filename: zip.h
3** Last updated [dd/mm/yyyy]: 27/03/2011
4**
5** pkzip 2.0 file compression.
6**
7** Some of the code has been inspired by other open source projects,
8** (mainly Info-Zip and Gilles Vollant's minizip).
9** Compression and decompression actually uses the zlib library.
10**
11** Copyright (C) 2007-2012 Angius Fabrizio. All rights reserved.
12**
13** This file is part of the OSDaB project (http://osdab.42cows.org/).
14**
15** This file may be distributed and/or modified under the terms of the
16** GNU General Public License version 2 as published by the Free Software
17** Foundation and appearing in the file LICENSE.GPL included in the
18** packaging of this file.
19**
20** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
21** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22**
23** See the file LICENSE.GPL that came with this software distribution or
24** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information.
25**
26**********************************************************************/
27
28#ifndef OSDAB_ZIP__H
29#define OSDAB_ZIP__H
30
31#include "zipglobal.h"
32
33#include <QtCore/QMap>
34#include <QtCore/QtGlobal>
35
36#include <zlib/zlib.h>
37
38class QIODevice;
39class QFile;
40class QDir;
41class QStringList;
42class QString;
43
45
46class ZipPrivate;
47
49{
50public:
65
73
75 {
78 RelativePaths = 0x0001,
80 AbsolutePaths = 0x0002,
83 IgnorePaths = 0x0004,
87 IgnoreRoot = 0x0008,
91 SkipBadFiles = 0x0020,
98 };
99 Q_DECLARE_FLAGS(CompressionOptions, CompressionOption)
100
101 Zip();
102 virtual ~Zip();
103
104 bool isOpen() const;
105
106 void setPassword(const QString& pwd);
107 void clearPassword();
108 QString password() const;
109
110 ErrorCode createArchive(const QString& file, bool overwrite = true);
111 ErrorCode createArchive(QIODevice* device);
112
113 QString archiveComment() const;
114 void setArchiveComment(const QString& comment);
115
116 ErrorCode addDirectoryContents(const QString& path,
117 CompressionLevel level = AutoFull);
118 ErrorCode addDirectoryContents(const QString& path, const QString& root,
119 CompressionLevel level = AutoFull);
120
121 ErrorCode addDirectory(const QString& path,
122 CompressionLevel level = AutoFull);
123 ErrorCode addDirectory(const QString& path, const QString& root,
124 CompressionLevel level = AutoFull);
125 ErrorCode addDirectory(const QString& path, const QString& root,
126 CompressionOptions options, CompressionLevel level = AutoFull,
127 int* addedFiles = 0);
128
129 ErrorCode addFile(const QString& path,
130 CompressionLevel level = AutoFull);
131 ErrorCode addFile(const QString& path, const QString& root,
132 CompressionLevel level = AutoFull);
133 ErrorCode addFile(const QString& path, const QString& root,
134 CompressionOptions options,
135 CompressionLevel level = AutoFull);
136
137 ErrorCode addFiles(const QStringList& paths,
138 CompressionLevel level = AutoFull);
139 ErrorCode addFiles(const QStringList& paths, const QString& root,
140 CompressionLevel level = AutoFull);
141 ErrorCode addFiles(const QStringList& paths, const QString& root,
142 CompressionOptions options,
143 CompressionLevel level = AutoFull,
144 int* addedFiles = 0);
145
146 ErrorCode closeArchive();
147
148 QString formatError(ErrorCode c) const;
149
150private:
152};
153
154Q_DECLARE_OPERATORS_FOR_FLAGS(Zip::CompressionOptions)
155
157
158#endif // OSDAB_ZIP__H
Definition zip_p.h:60
Zip file compression.
Definition zip.h:49
ZipPrivate * d
Definition zip.h:151
CompressionOption
Definition zip.h:75
@ IgnorePaths
Definition zip.h:83
@ CheckForDuplicates
Definition zip.h:97
@ IgnoreRoot
Definition zip.h:87
@ RelativePaths
Definition zip.h:78
@ AbsolutePaths
Definition zip.h:80
@ SkipBadFiles
Definition zip.h:91
ErrorCode
Definition zip.h:52
@ WriteFailed
Definition zip.h:61
@ Ok
Definition zip.h:53
@ FileNotFound
Definition zip.h:59
@ OpenFailed
Definition zip.h:57
@ ZlibError
Definition zip.h:55
@ NoOpenArchive
Definition zip.h:58
@ FileExists
Definition zip.h:56
@ ZlibInit
Definition zip.h:54
@ SeekFailed
Definition zip.h:62
@ ReadFailed
Definition zip.h:60
@ InternalError
Definition zip.h:63
Zip()
Definition zip.cpp:1332
CompressionLevel
Definition zip.h:67
@ Deflate3
Definition zip.h:69
@ AutoMIME
Definition zip.h:71
@ Deflate7
Definition zip.h:70
@ Deflate9
Definition zip.h:70
@ Deflate6
Definition zip.h:70
@ Deflate8
Definition zip.h:70
@ Store
Definition zip.h:68
@ Deflate2
Definition zip.h:69
@ Deflate5
Definition zip.h:70
@ Deflate1
Definition zip.h:69
@ AutoCPU
Definition zip.h:71
@ AutoFull
Definition zip.h:71
@ Deflate4
Definition zip.h:69
#define OSDAB_ZIP_EXPORT
Definition zipglobal.h:42
#define OSDAB_END_NAMESPACE
Definition zipglobal.h:60
#define OSDAB_BEGIN_NAMESPACE(ModuleName)
Definition zipglobal.h:54