summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/zip/zip.h
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2007-07-25 20:21:06 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2007-07-25 20:21:06 +0000
commit680408f4ac8b04d716fd8921c01b73d30a3c66c7 (patch)
tree08908a7d5e3b95daa9a1d3ed0703e64cff712022 /rbutil/rbutilqt/zip/zip.h
parentaa643db434e230643e18e454032fb708e0f1848d (diff)
downloadrockbox-680408f4ac8b04d716fd8921c01b73d30a3c66c7.tar.gz
rockbox-680408f4ac8b04d716fd8921c01b73d30a3c66c7.zip
First stab at porting rbutil to Qt4. Currently only installing a current or archived build is working. To build, run qmake && make in the source folder. Beware that the syntax of rbutil.ini has slightly changed. Caching of the downloaded files is also still missing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13989 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/zip/zip.h')
-rw-r--r--rbutil/rbutilqt/zip/zip.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/zip/zip.h b/rbutil/rbutilqt/zip/zip.h
new file mode 100644
index 0000000000..03c4d8af0b
--- /dev/null
+++ b/rbutil/rbutilqt/zip/zip.h
@@ -0,0 +1,113 @@
1/****************************************************************************
2** Filename: zip.h
3** Last updated [dd/mm/yyyy]: 01/02/2007
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 Angius Fabrizio. All rights reserved.
12**
13** This file is part of the OSDaB project (http://osdab.sourceforge.net/).
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 <QtGlobal>
32#include <QMap>
33
34#include <zlib/zlib.h>
35
36class ZipPrivate;
37
38class QIODevice;
39class QFile;
40class QDir;
41class QStringList;
42class QString;
43
44
45class Zip
46{
47public:
48 enum ErrorCode
49 {
50 Ok,
51 ZlibInit,
52 ZlibError,
53 FileExists,
54 OpenFailed,
55 NoOpenArchive,
56 FileNotFound,
57 ReadFailed,
58 WriteFailed,
59 SeekFailed
60 };
61
62 enum CompressionLevel
63 {
64 Store,
65 Deflate1 = 1, Deflate2, Deflate3, Deflate4,
66 Deflate5, Deflate6, Deflate7, Deflate8, Deflate9,
67 AutoCPU, AutoMIME, AutoFull
68 };
69
70 enum CompressionOption
71 {
72 //! Does not preserve absolute paths in the zip file when adding a file/directory (default)
73 RelativePaths = 0x0001,
74 //! Preserve absolute paths
75 AbsolutePaths = 0x0002,
76 //! Do not store paths. All the files are put in the (evtl. user defined) root of the zip file
77 IgnorePaths = 0x0004
78 };
79 Q_DECLARE_FLAGS(CompressionOptions, CompressionOption)
80
81 Zip();
82 virtual ~Zip();
83
84 bool isOpen() const;
85
86 void setPassword(const QString& pwd);
87 void clearPassword();
88 QString password() const;
89
90 ErrorCode createArchive(const QString& file, bool overwrite = true);
91 ErrorCode createArchive(QIODevice* device);
92
93 QString archiveComment() const;
94 void setArchiveComment(const QString& comment);
95
96 ErrorCode addDirectoryContents(const QString& path, CompressionLevel level = AutoFull);
97 ErrorCode addDirectoryContents(const QString& path, const QString& root, CompressionLevel level = AutoFull);
98
99 ErrorCode addDirectory(const QString& path, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull);
100 ErrorCode addDirectory(const QString& path, const QString& root, CompressionLevel level = AutoFull);
101 ErrorCode addDirectory(const QString& path, const QString& root, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull);
102
103 ErrorCode closeArchive();
104
105 QString formatError(ErrorCode c) const;
106
107private:
108 ZipPrivate* d;
109};
110
111Q_DECLARE_OPERATORS_FOR_FLAGS(Zip::CompressionOptions)
112
113#endif // OSDAB_ZIP__H