| 1 | \section{Overview}\label{index_overview} | 
 
 
 
 
 | 2 | QuaZIP is a simple C++ wrapper over {\tt Gilles Vollant's ZIP/UNZIP package} that can be used to access ZIP archives. It uses {\tt the Qt toolkit}. | 
 
 
 
 
 | 3 |  | 
 
 
 
 
 | 4 | If you do not know what {\bf Qt} is, you have two options: | 
 
 
 
 
 | 5 | \begin{DoxyItemize} | 
 
 
 
 
 | 6 | \item Just forget about QuaZIP. | 
 
 
 
 
 | 7 | \item Learn more about {\bf Qt} by downloading it and/or reading the excellent {\tt official Qt documentation} | 
 
 
 
 
 | 8 | \end{DoxyItemize} | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | The choice is yours, but if you are really interested in cross-\/platform (Windows/Linux/BSD/UNIX/Mac/Others) software development, I would definitely recommend you the latter $^\wedge$\_\-$^\wedge$ | 
 
 
 
 
 | 11 |  | 
 
 
 
 
 | 12 | QuaZIP allows you to access files inside ZIP archives using {\bf QIODevice} API, and -\/ yes! -\/ that means that you can also use {\bf QTextStream}, {\bf QDataStream} or whatever you would like to use on your zipped files. | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both reading from and writing to ZIP archives.\section{Download QuaZIP}\label{index_download} | 
 
 
 
 
 | 15 | Downloads are available from {\tt QuaZIP project's page at SourceForge.net}.\section{Platforms supported}\label{index_platforms} | 
 
 
 
 
 | 16 | QuaZIP has been currently tested on the following platforms: | 
 
 
 
 
 | 17 | \begin{DoxyItemize} | 
 
 
 
 
 | 18 | \item linux-\/g++ (Ubuntu 11.10, {\bf Qt} 4.7.4) | 
 
 
 
 
 | 19 | \item freebsd-\/g++ ({\bf Qt} 4.0.0 | 
 
 
 
 
 | 20 | \item hpux-\/acc (HP-\/UX 11.11) | 
 
 
 
 
 | 21 | \item hpux-\/g++ (HP-\/UX 11.11) | 
 
 
 
 
 | 22 | \item win32-\/g++ (MinGW) | 
 
 
 
 
 | 23 | \item win32-\/msvc2010 (MS VS 2010 Express, {\bf Qt} 4.8.4) | 
 
 
 
 
 | 24 | \item win32-\/msvc2010 ({\bf Qt} Creator, {\bf Qt} 5.0.1) | 
 
 
 
 
 | 25 | \item win32-\/msvc2012 ({\bf Qt} Creator, {\bf Qt} 5.2.0) | 
 
 
 
 
 | 26 | \item some Symbian version, reportedly | 
 
 
 
 
 | 27 | \end{DoxyItemize} | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | No testing has been officially done on other systems. Of course, patches to make it work on any platform that it currently does not work on are always welcome!\section{What is new in this version of QuaZIP?}\label{index_whats-new} | 
 
 
 
 
 | 30 | See the NEWS.txt file supplied with the distribution.\section{Requirements}\label{index_Requirements} | 
 
 
 
 
 | 31 | Just {\tt zlib} and {\bf Qt} 4/5. Well, {\bf Qt} 4 depends on zlib anyway, but you will need zlib headers to compile QuaZIP. With Qt5 sometimes you need the zlib library as well (on Windows, for example).\section{Building, testing and installing}\label{index_building} | 
 
 
 
 
 | 32 | \begin{DoxyNote}{Note} | 
 
 
 
 
 | 33 | Instructions given in this section assume that you are using some UNIX dialect, but the build process should be very similar on win32-\/g++ platform too. On other platforms it's essentially the same process, maybe with some qmake adjustments not specific to QuaZIP itself. | 
 
 
 
 
 | 34 | \end{DoxyNote} | 
 
 
 
 
 | 35 | To build the library, run: \begin{DoxyVerb} | 
 
 
 
 
 | 36 | $ cd /wherever/quazip/source/is/quazip-x.y.z/quazip | 
 
 
 
 
 | 37 | $ qmake [PREFIX=where-to-install] | 
 
 
 
 
 | 38 | $ make | 
 
 
 
 
 | 39 | \end{DoxyVerb} | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 |  | 
 
 
 
 
 | 42 | Make sure that you have {\bf Qt} 4/5 installed with all required headers and utilities (that is, including the 'dev' or 'devel' package on Linux) and that you run qmake utility of the {\bf Qt} 4, not some other version you may have already installed (you may need to type full path to qmake like /usr/local/qt4/bin/qmake). | 
 
 
 
 
 | 43 |  | 
 
 
 
 
 | 44 | To reconfigure (with another PREFIX, for example), just run qmake with appropriate arguments again. | 
 
 
 
 
 | 45 |  | 
 
 
 
 
 | 46 | If you need to specify additional include path or libraries, use qmake features (see qmake reference in the {\bf Qt} documentation). For example: | 
 
 
 
 
 | 47 |  | 
 
 
 
 
 | 48 | \begin{DoxyVerb} | 
 
 
 
 
 | 49 | $ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include | 
 
 
 
 
 | 50 | \end{DoxyVerb} | 
 
 
 
 
 | 51 | (note abscence of \char`\"{}-\/I\char`\"{} before the include path and the presence of \char`\"{}-\/L\char`\"{} before the lib path) | 
 
 
 
 
 | 52 |  | 
 
 
 
 
 | 53 | Also note that you may or may not need to define ZLIB\_\-WINAPI (qmake DEFINES+=ZLIB\_\-WINAPI) when linking to zlib on Windows, depending on how zlib was built (generally, if using zlibwapi.dll, this define is needed). | 
 
 
 
 
 | 54 |  | 
 
 
 
 
 | 55 | To install compiled library: \begin{DoxyVerb} | 
 
 
 
 
 | 56 | $ make install | 
 
 
 
 
 | 57 | \end{DoxyVerb} | 
 
 
 
 
 | 58 |  | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | By default, QuaZIP compiles as a DLL/SO, but you have other options: | 
 
 
 
 
 | 61 | \begin{DoxyItemize} | 
 
 
 
 
 | 62 | \item Just copy appropriate source files to your project and use them, but you need to define QUAZIP\_\-STATIC before including any QuaZIP headers (best done as a compiler option). This will save you from possible side effects of importing/exporting QuaZIP symbols. | 
 
 
 
 
 | 63 | \item Compile it as a static library using CONFIG += staticlib qmake option. QUAZIP\_\-STATIC is defined automatically by qmake in this case. | 
 
 
 
 
 | 64 | \end{DoxyItemize} | 
 
 
 
 
 | 65 |  | 
 
 
 
 
 | 66 | Binary compatibility is guaranteed between minor releases starting with version 0.5, thanks to the Pimpl idiom. That is, the next binary incompatible version will be 1.x.\section{Testing}\label{index_test} | 
 
 
 
 
 | 67 | To check if QuaZIP's basic features work OK on your platform, you may wish to compile the test suite provided in test directory: \begin{DoxyVerb} | 
 
 
 
 
 | 68 | $ cd /wherever/quazip/source/is/quazip-x.y.z/qztest | 
 
 
 
 
 | 69 | $ qmake | 
 
 
 
 
 | 70 | $ make | 
 
 
 
 
 | 71 | $ ./qztest | 
 
 
 
 
 | 72 | \end{DoxyVerb} | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 |  | 
 
 
 
 
 | 75 | Note that the test suite looks for the quazip library in the \char`\"{}quazip\char`\"{} folder of the project (\char`\"{}../quazip\char`\"{}), but you may wish to use LIBS for some systems (Windows often puts the library in the separate \char`\"{}debug\char`\"{} or \char`\"{}release\char`\"{} directory). If you wish to use the quazip version that's already installed, provide the appropriate path. | 
 
 
 
 
 | 76 |  | 
 
 
 
 
 | 77 | On some systems you may need to set PATH, LD\_\-LIBRARY\_\-PATH or SHLIB\_\-PATH to get \char`\"{}qztest\char`\"{} to actually run. | 
 
 
 
 
 | 78 |  | 
 
 
 
 
 | 79 | If everything went fine, the test suite should report a lot of PASS messages. If something goes wrong, it will provide details and a warning that some tests failed.\section{Using}\label{index_using} | 
 
 
 
 
 | 80 | See \doxyref{usage page}{p.}{usage}.\section{Authors and contacts}\label{index_contacts} | 
 
 
 
 
 | 81 | This wrapper has been written by Sergey A. Tachenov, AKA Alqualos. This is my first open source project, so it may suck, but I did not find anything like that, so I just had no other choice but to write it. | 
 
 
 
 
 | 82 |  | 
 
 
 
 
 | 83 | If you have anything to say to me about QuaZIP library, feel free to do so (read the \doxyref{QuaZip FAQ}{p.}{faq} first, though). I can not promise, though, that I fix all the bugs you report in, add any features you want, or respond to your critics, or respond to your feedback at all. I may be busy, I may be tired of working on QuaZIP, I may be even dead already (you never know...). | 
 
 
 
 
 | 84 |  | 
 
 
 
 
 | 85 | To report bugs or to post ideas about what should be done, use SourceForge.net's {\tt trackers}. If you want to send me a private message, use my e-\/mail address {\tt stachenov@gmail.com}. | 
 
 
 
 
 | 86 |  | 
 
 
 
 
 | 87 | Do not use e-\/mail to report bugs, please. Reporting bugs and problems with the SourceForge.net's bug report system has that advantage that it is visible to public, and I can always search for open tickets that were created long ago. It is highly unlikely that I will search my mail for that kind of stuff, so if a bug reported by mail isn't fixed immediately, it will likely be forgotten forever. | 
 
 
 
 
 | 88 |  | 
 
 
 
 
 | 89 | Copyright (C) 2005-\/2014 Sergey A. Tachenov and contributors |