| 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/minizip.html">Gilles Vollant's ZIP/UNZIP
 | 
|---|
| 11 |  * package</a> that can be used to access ZIP archives. It uses <a
 | 
|---|
| 12 |  * href="http://qt.digia.com/">the Qt toolkit</a>.
 | 
|---|
| 13 |  *
 | 
|---|
| 14 |  * If you do not know what Qt is, you have two options:
 | 
|---|
| 15 |  * - Just forget about QuaZIP.
 | 
|---|
| 16 |  * - Learn more about Qt by downloading it and/or reading the excellent <a
 | 
|---|
| 17 |  *   href="http://qt-project.org/doc/">official Qt documentation</a>
 | 
|---|
| 18 |  *
 | 
|---|
| 19 |  * The choice is yours, but if you are really interested in
 | 
|---|
| 20 |  * cross-platform (Windows/Linux/BSD/UNIX/Mac/Others) software
 | 
|---|
| 21 |  * development, I would definitely recommend you the latter ^_^
 | 
|---|
| 22 |  *
 | 
|---|
| 23 |  * QuaZIP allows you to access files inside ZIP archives using QIODevice
 | 
|---|
| 24 |  * API, and - yes! - that means that you can also use QTextStream,
 | 
|---|
| 25 |  * QDataStream or whatever you would like to use on your zipped files.
 | 
|---|
| 26 |  *
 | 
|---|
| 27 |  * QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both
 | 
|---|
| 28 |  * reading from and writing to ZIP archives.
 | 
|---|
| 29 |  *
 | 
|---|
| 30 |  * \section download Download QuaZIP
 | 
|---|
| 31 |  *
 | 
|---|
| 32 |  * Downloads are available from <a
 | 
|---|
| 33 |  * href="http://sourceforge.net/projects/quazip/">QuaZIP project's page
 | 
|---|
| 34 |  * at SourceForge.net</a>.
 | 
|---|
| 35 |  *
 | 
|---|
| 36 |  * \section platforms Platforms supported
 | 
|---|
| 37 |  *
 | 
|---|
| 38 |  * QuaZIP has been currently tested on the following platforms:
 | 
|---|
| 39 |  * - linux-g++ (Ubuntu 11.10, Qt 4.7.4)
 | 
|---|
| 40 |  * - freebsd-g++ (Qt 4.0.0
 | 
|---|
| 41 |  * - hpux-acc (HP-UX 11.11)
 | 
|---|
| 42 |  * - hpux-g++ (HP-UX 11.11)
 | 
|---|
| 43 |  * - win32-g++ (MinGW)
 | 
|---|
| 44 |  * - win32-msvc2010 (MS VS 2010 Express, Qt 4.8.4)
 | 
|---|
| 45 |  * - win32-msvc2010 (Qt Creator, Qt 5.0.1)
 | 
|---|
| 46 |  * - win32-msvc2012 (Qt Creator, Qt 5.2.0)
 | 
|---|
| 47 |  * - some Symbian version, reportedly
 | 
|---|
| 48 |  * 
 | 
|---|
| 49 |  * No testing has been officially done on other systems. Of course, patches to
 | 
|---|
| 50 |  * make it work on any platform that it currently does not work on are
 | 
|---|
| 51 |  * always welcome!
 | 
|---|
| 52 |  *
 | 
|---|
| 53 |  * \section whats-new What is new in this version of QuaZIP?
 | 
|---|
| 54 |  *
 | 
|---|
| 55 |  * See the NEWS.txt file supplied with the distribution.
 | 
|---|
| 56 |  *
 | 
|---|
| 57 |  * \section Requirements
 | 
|---|
| 58 |  *
 | 
|---|
| 59 |  * Just <a href="http://www.zlib.org/">zlib</a> and Qt 4/5. Well, Qt 4
 | 
|---|
| 60 |  * depends on zlib anyway, but you will need zlib headers to compile
 | 
|---|
| 61 |  * QuaZIP. With Qt5 sometimes you need the zlib library as well (on
 | 
|---|
| 62 |  * Windows, for example).
 | 
|---|
| 63 |  *
 | 
|---|
| 64 |  * \section building Building, testing and installing
 | 
|---|
| 65 |  *
 | 
|---|
| 66 |  * \note Instructions given in this section assume that you are
 | 
|---|
| 67 |  * using some UNIX dialect, but the build process should be very similar
 | 
|---|
| 68 |  * on win32-g++ platform too. On other platforms it's essentially the
 | 
|---|
| 69 |  * same process, maybe with some qmake adjustments not specific to
 | 
|---|
| 70 |  * QuaZIP itself.
 | 
|---|
| 71 |  *
 | 
|---|
| 72 |  * To build the library, run:
 | 
|---|
| 73 | \verbatim
 | 
|---|
| 74 | $ cd /wherever/quazip/source/is/quazip-x.y.z/quazip
 | 
|---|
| 75 | $ qmake [PREFIX=where-to-install]
 | 
|---|
| 76 | $ make
 | 
|---|
| 77 | \endverbatim
 | 
|---|
| 78 |  *
 | 
|---|
| 79 |  * Make sure that you have Qt 4/5 installed with all required headers and
 | 
|---|
| 80 |  * utilities (that is, including the 'dev' or 'devel' package on Linux)
 | 
|---|
| 81 |  * and that you run qmake utility of the Qt 4, not some other version
 | 
|---|
| 82 |  * you may have already installed (you may need to type full path to
 | 
|---|
| 83 |  * qmake like /usr/local/qt4/bin/qmake).
 | 
|---|
| 84 |  *
 | 
|---|
| 85 |  * To reconfigure (with another PREFIX, for example), just run qmake
 | 
|---|
| 86 |  * with appropriate arguments again.
 | 
|---|
| 87 |  *
 | 
|---|
| 88 |  * If you need to specify additional include path or libraries, use
 | 
|---|
| 89 |  * qmake features (see qmake reference in the Qt documentation). For
 | 
|---|
| 90 |  * example:
 | 
|---|
| 91 |  *
 | 
|---|
| 92 | \verbatim
 | 
|---|
| 93 | $ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include
 | 
|---|
| 94 | \endverbatim
 | 
|---|
| 95 |  * (note abscence of "-I" before the include path and the presence of "-L"
 | 
|---|
| 96 |  * before the lib path)
 | 
|---|
| 97 |  *
 | 
|---|
| 98 |  * Also note that you may or may not need to define ZLIB_WINAPI (qmake
 | 
|---|
| 99 |  * DEFINES+=ZLIB_WINAPI) when linking to zlib on Windows, depending on
 | 
|---|
| 100 |  * how zlib was built (generally, if using zlibwapi.dll, this define is
 | 
|---|
| 101 |  * needed).
 | 
|---|
| 102 |  *
 | 
|---|
| 103 |  * To install compiled library:
 | 
|---|
| 104 | \verbatim
 | 
|---|
| 105 | $ make install
 | 
|---|
| 106 | \endverbatim
 | 
|---|
| 107 |  *
 | 
|---|
| 108 |  * By default, QuaZIP compiles as a DLL/SO, but you have other
 | 
|---|
| 109 |  * options:
 | 
|---|
| 110 |  * - Just copy appropriate source files to your project and use them,
 | 
|---|
| 111 |  * but you need to define QUAZIP_STATIC before including any QuaZIP
 | 
|---|
| 112 |  * headers (best done as a compiler option). This will save you from
 | 
|---|
| 113 |  * possible side effects of importing/exporting QuaZIP symbols.
 | 
|---|
| 114 |  * - Compile it as a static library using CONFIG += staticlib qmake
 | 
|---|
| 115 |  * option. QUAZIP_STATIC is defined automatically by qmake in this case.
 | 
|---|
| 116 |  *
 | 
|---|
| 117 |  * Binary compatibility is guaranteed between minor releases starting
 | 
|---|
| 118 |  * with version 0.5, thanks to the Pimpl idiom. That is, the next binary
 | 
|---|
| 119 |  * incompatible version will be 1.x.
 | 
|---|
| 120 |  *
 | 
|---|
| 121 |  * \section test Testing
 | 
|---|
| 122 |  *
 | 
|---|
| 123 |  * To check if QuaZIP's basic features work OK on your platform, you may
 | 
|---|
| 124 |  * wish to compile the test suite provided in test directory:
 | 
|---|
| 125 | \verbatim
 | 
|---|
| 126 | $ cd /wherever/quazip/source/is/quazip-x.y.z/qztest
 | 
|---|
| 127 | $ qmake
 | 
|---|
| 128 | $ make
 | 
|---|
| 129 | $ ./qztest
 | 
|---|
| 130 | \endverbatim
 | 
|---|
| 131 |  *
 | 
|---|
| 132 |  * Note that the test suite looks for the quazip library in the "quazip"
 | 
|---|
| 133 |  * folder of the project ("../quazip"), but you may wish to use LIBS
 | 
|---|
| 134 |  * for some systems (Windows often puts the library in the separate
 | 
|---|
| 135 |  * "debug" or "release" directory). If you wish to use the quazip
 | 
|---|
| 136 |  * version that's already installed, provide the appropriate path.
 | 
|---|
| 137 |  *
 | 
|---|
| 138 |  * On some systems you may need to set PATH, LD_LIBRARY_PATH or
 | 
|---|
| 139 |  * SHLIB_PATH to get "qztest" to actually run.
 | 
|---|
| 140 |  *
 | 
|---|
| 141 |  * If everything went fine, the test suite should report a lot of PASS
 | 
|---|
| 142 |  * messages. If something goes wrong, it will provide details and a
 | 
|---|
| 143 |  * warning that some tests failed.
 | 
|---|
| 144 |  *
 | 
|---|
| 145 |  * \section using Using
 | 
|---|
| 146 |  *
 | 
|---|
| 147 |  * See \ref usage "usage page".
 | 
|---|
| 148 |  * 
 | 
|---|
| 149 |  * \section contacts Authors and contacts
 | 
|---|
| 150 |  *
 | 
|---|
| 151 |  * This wrapper has been written by Sergey A. Tachenov, AKA Alqualos.
 | 
|---|
| 152 |  * This is my first open source project, so it may suck, but I did not
 | 
|---|
| 153 |  * find anything like that, so I just had no other choice but to write
 | 
|---|
| 154 |  * it.
 | 
|---|
| 155 |  *
 | 
|---|
| 156 |  * If you have anything to say to me about QuaZIP library, feel free to
 | 
|---|
| 157 |  * do so (read the \ref faq first, though). I can not promise,
 | 
|---|
| 158 |  * though, that I fix all the bugs you report in, add any features you
 | 
|---|
| 159 |  * want, or respond to your critics, or respond to your feedback at all.
 | 
|---|
| 160 |  * I may be busy, I may be tired of working on QuaZIP, I may be even
 | 
|---|
| 161 |  * dead already (you never know...).
 | 
|---|
| 162 |  *
 | 
|---|
| 163 |  * To report bugs or to post ideas about what should be done, use
 | 
|---|
| 164 |  * SourceForge.net's <a
 | 
|---|
| 165 |  * href="http://sourceforge.net/tracker/?group_id=142688">trackers</a>.
 | 
|---|
| 166 |  * If you want to send me a private message, use my e-mail address
 | 
|---|
| 167 |  * stachenov@gmail.com.
 | 
|---|
| 168 |  *
 | 
|---|
| 169 |  * Do not use e-mail to report bugs, please. Reporting bugs and problems
 | 
|---|
| 170 |  * with the SourceForge.net's bug report system has that advantage that
 | 
|---|
| 171 |  * it is visible to public, and I can always search for open tickets
 | 
|---|
| 172 |  * that were created long ago. It is highly unlikely that I will search
 | 
|---|
| 173 |  * my mail for that kind of stuff, so if a bug reported by mail isn't
 | 
|---|
| 174 |  * fixed immediately, it will likely be forgotten forever.
 | 
|---|
| 175 |  *
 | 
|---|
| 176 |  * Copyright (C) 2005-2014 Sergey A. Tachenov and contributors
 | 
|---|
| 177 |  **/
 | 
|---|