5752
|
1 |
/**
|
|
2 |
* \mainpage QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package
|
|
3 |
*
|
|
4 |
\htmlonly
|
|
5 |
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=142688&type=7" style="width:210; height:62; border:none; float:right;" alt="Powered by SourceForge.net" /></a>
|
|
6 |
\endhtmlonly
|
|
7 |
* \section overview Overview
|
|
8 |
*
|
|
9 |
* QuaZIP is a simple C++ wrapper over <a
|
|
10 |
* href="http://www.winimage.com/zLibDll/unzip.html">Gilles Vollant's ZIP/UNZIP
|
|
11 |
* package</a> that can be used to access ZIP archives. It uses <a
|
|
12 |
* href="http://www.trolltech.com/products/qt/index.html">Trolltech's
|
|
13 |
* Qt toolkit</a>.
|
|
14 |
*
|
|
15 |
* If you do not know what Qt is, you have two options:
|
|
16 |
* - Just forget about QuaZIP.
|
|
17 |
* - Learn more about Qt by downloading it and/or reading excellent <a
|
|
18 |
* href="http://doc.trolltech.com/">official Qt documentation</a>
|
|
19 |
*
|
|
20 |
* The choice is yours, but if you are really interested in
|
|
21 |
* cross-platform (Windows/Linux/BSD/UNIX/Mac/Others) software
|
|
22 |
* development, I would definitely recommend you the second choice ^_^
|
|
23 |
*
|
|
24 |
* QuaZIP allows you to access files inside ZIP archives using QIODevice
|
|
25 |
* API, and - yes! - that means that you can also use QTextStream,
|
|
26 |
* QDataStream or whatever you would like to use on your zipped files.
|
|
27 |
*
|
|
28 |
* QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both
|
|
29 |
* reading from and writing to ZIP archives.
|
|
30 |
*
|
|
31 |
* \section platforms Platforms supported
|
|
32 |
*
|
|
33 |
* QuaZIP has been currently tested with Qt 4.0.0 on the following
|
|
34 |
* platforms:
|
|
35 |
* - linux-g++
|
|
36 |
* - freebsd-g++
|
|
37 |
* - hpux-acc
|
|
38 |
* - win32-g++ (MinGW)
|
|
39 |
*
|
|
40 |
* No testing has been done on other systems. Of course, patches to
|
|
41 |
* make it work on any platform that it currently does not work on are
|
|
42 |
* always welcome!
|
|
43 |
*
|
|
44 |
* \section whats-new What is new in this version of QuaZIP?
|
|
45 |
*
|
|
46 |
* See NEWS file supplied with the distribution.
|
|
47 |
*
|
|
48 |
* \section getting Getting latest version of QuaZIP
|
|
49 |
*
|
|
50 |
* Check <a href="http://sourceforge.net/projects/quazip/">QuaZIP
|
|
51 |
* project's page at SourceForge.net</a>. Also, you may wish to read
|
|
52 |
* latest version documentation available at the <a
|
|
53 |
* href="http://quazip.sourceforge.net/">QuaZIP web site</a>.
|
|
54 |
*
|
|
55 |
* \section Requirements
|
|
56 |
*
|
|
57 |
* Just <a href="http://www.zlib.org/">zlib</a> and Qt 4. Well, Qt 4
|
|
58 |
* depends on zlib anyway.
|
|
59 |
*
|
|
60 |
* \section building Building, testing and installing
|
|
61 |
*
|
|
62 |
* \note Instructions given in this section assume that you are
|
|
63 |
* using some UNIX dialect, but the build process should be very similar
|
|
64 |
* on win32-g++ platform too. Sorry, but other platforms are
|
|
65 |
* undocumented. I do not think it is a big deal, though - it is
|
|
66 |
* standard usage of the Qt's qmake, so you most probably already know
|
|
67 |
* everything that is required.
|
|
68 |
*
|
|
69 |
* To build it on some UNIX dialect:
|
|
70 |
\verbatim
|
|
71 |
$ cd /wherever/quazip/source/is/quazip-x.y.z/quazip
|
|
72 |
$ qmake [PREFIX=where-to-install]
|
|
73 |
$ make
|
|
74 |
\endverbatim
|
|
75 |
*
|
|
76 |
* Make sure that you have Qt 4 installed with all required headers and
|
|
77 |
* utilities (not just library) and that you run qmake utility of the Qt
|
|
78 |
* 4, not some other version you may have already installed (you may
|
|
79 |
* need to type full path to qmake like /usr/local/qt4/bin/qmake).
|
|
80 |
*
|
|
81 |
* To reconfigure (with another PREFIX, for example), just run qmake
|
|
82 |
* with appropriate arguments again.
|
|
83 |
*
|
|
84 |
* If you need to specify additional include path or libraries, use
|
|
85 |
* qmake features (see qmake reference in the Qt documentation). For
|
|
86 |
* example:
|
|
87 |
*
|
|
88 |
\verbatim
|
|
89 |
$ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include
|
|
90 |
\endverbatim
|
|
91 |
* (note abscence of "-I" before include path)
|
|
92 |
*
|
|
93 |
* To check if QuaZIP's basic features work ok on your platform, you may
|
|
94 |
* wish to compile simple test programs provided in test directory.
|
|
95 |
* Look in the sources of the tests to find out about their
|
|
96 |
* requirements. Typically, the test looks something like this:
|
|
97 |
\verbatim
|
|
98 |
$ cd /wherever/quazip/source/is/quazip-x.y.z/test/zip
|
|
99 |
$ qmake
|
|
100 |
$ make
|
|
101 |
$ ./zip
|
|
102 |
$ cd ../unzip
|
|
103 |
$ cp ../zip/test.zip ./test.zip
|
|
104 |
$ mkdir out
|
|
105 |
$ qmake
|
|
106 |
$ make
|
|
107 |
$ ./unzip
|
|
108 |
\endverbatim
|
|
109 |
*
|
|
110 |
* You should see the zip contents with details as the output of the
|
|
111 |
* "./unzip". Ignore message saying you should check the file name for
|
|
112 |
* testCase() if you do not want to test
|
|
113 |
* \link QuaZip::CaseSensitivity locale-aware case-insensitivity\endlink.
|
|
114 |
* Otherwise, see the sources. In any case, this message appearing means
|
|
115 |
* that everything else was fine. Otherwise, you will get some other error
|
|
116 |
* message instead. Investigate it or send bug report including message,
|
|
117 |
* platform and QuaZIP version used.
|
|
118 |
*
|
|
119 |
* To install compiled library:
|
|
120 |
\verbatim
|
|
121 |
$ make install
|
|
122 |
\endverbatim
|
|
123 |
*
|
|
124 |
* By default, QuaZIP compiles as static library, but you have other
|
|
125 |
* options:
|
|
126 |
* - Just copy appropriate source files to your project and use them;
|
|
127 |
* - Compile QuaZIP as shared library by changing "staticlib" in
|
|
128 |
* quazip/quazip.pro to "dll".
|
|
129 |
*
|
|
130 |
* Latter is not recommended because future versions of QuaZIP most
|
|
131 |
* probably will be binary incompatible.
|
|
132 |
*
|
|
133 |
* \section using Using
|
|
134 |
*
|
|
135 |
* See \ref usage "usage page".
|
|
136 |
*
|
|
137 |
* \section bugs Bugs
|
|
138 |
*
|
|
139 |
* QuaZIP is currently at the initial development stage. Therefore,
|
|
140 |
* there are may be plenty of bugs and other bad things. Bug reports and
|
|
141 |
* patches are always welcome (see "contacts" below).
|
|
142 |
*
|
|
143 |
* \section contacts Authors and contacts
|
|
144 |
*
|
|
145 |
* This wrapper has been written by Sergey A. Tachenov, AKA Alqualos.
|
|
146 |
* This is my first open source project, so it may suck, but I did not
|
|
147 |
* find anything like that, so I just had no other choice but to write
|
|
148 |
* it.
|
|
149 |
*
|
|
150 |
* If you have anything to say to me about QuaZIP library, feel free to
|
|
151 |
* do so (read the \ref faq first, though). I can not promise,
|
|
152 |
* though, that I fix all the bugs you report in, add any features you
|
|
153 |
* want, or respond to your critics, or respond to your feedback at all.
|
|
154 |
* I may be busy, I may be tired of working on QuaZIP, I may be even
|
|
155 |
* dead already (you never know...). But regardless of this remark, any
|
|
156 |
* feedback is always welcome. This may seem like a paradox to you, but
|
|
157 |
* you do not have to understand it to write feedback.
|
|
158 |
*
|
|
159 |
* To report bugs or to post ideas about what should be done, use
|
|
160 |
* SourceForge.net's <a
|
|
161 |
* href="http://sourceforge.net/tracker/?group_id=142688">trackers</a>.
|
|
162 |
* If you want to send me a private message, use my e-mail address
|
|
163 |
* laerel at yandex dot ru (but do not you dare to put it somewhere on
|
|
164 |
* the Web or wherever).
|
|
165 |
*
|
|
166 |
* Do not use e-mail to report bugs, please. Reporting bugs and problems
|
|
167 |
* with the SourceForge.net's bug report system has that advantage that
|
|
168 |
* it is visible to public.
|
|
169 |
*
|
|
170 |
* \section other-projects My other projects
|
|
171 |
*
|
|
172 |
* As of this moment, I did not write any other useful open source
|
|
173 |
* software (well, I am too lazy to do it) except for one little thing:
|
|
174 |
*
|
|
175 |
* <a href="http://brededor.narod.ru/progs/arcanum50patch.htm">Arcanum
|
|
176 |
* universal cap remover</a>. Arcanum is the old but very good game,
|
|
177 |
* which has one stupid limit: your character maximum level is 50, which
|
|
178 |
* is too low for many players including me. So I wrote this simple
|
|
179 |
* patch to increase this stupid limit to something acceptable.
|
|
180 |
*
|
|
181 |
* Also, my first Web project, which can be of any interest to you only
|
|
182 |
* if you can read Russian and you are crazy ^_- This is a web site with
|
|
183 |
* the main topic of it being The Delirium. It is totally meaningless
|
|
184 |
* and it was purposely made to be such. Do not ask me why - I do not
|
|
185 |
* know either. I just did that. If you are interested, then welcome to
|
|
186 |
* <a href="http://brededor.narod.ru/">The Brededor</a>. It does not get
|
|
187 |
* updated lately because I have become even lazier than I ever was. But
|
|
188 |
* I do not plan to destroy The Brededor no matter what, because I think
|
|
189 |
* it is fun.
|
|
190 |
*
|
|
191 |
* Copyright (C) 2005-2007 Sergey A. Tachenov
|
|
192 |
**/
|