Import QMimeType / QMimeDatabase into QtCore.
authorDavid Faure <faure@kde.org>
Sat, 18 Feb 2012 15:00:09 +0000 (16:00 +0100)
committerQt by Nokia <qt-info@nokia.com>
Sat, 18 Feb 2012 21:19:43 +0000 (22:19 +0100)
commitb164911b7f0efd81ec33325405b88bff8b2334d0
treeea4c2eb39f3ae8edb90b8255ffe3ee1b14806ab7
parent87fcbd82fc679715853e5261f8f0194a80c10b76
Import QMimeType / QMimeDatabase into QtCore.

History of the development before the import:
ssh://codereview.qt-project.org/playground/mimetypes.git

Mimetype definitions come from shared-mime-info where available (UNIX systems),
loaded using a mmap'ed binary cache generated by update-mime-database.
As a fallback if no cache is found, we parse the raw XML files otherwise.

This makes the MIME type support fast and with very low memory usage on UNIX,
and it makes it easy to use on Windows (no dependency on shared-mime-info,
Qt even includes a freedesktop.xml file to use if none are found on the system).

Change-Id: I27b05008216ff936dc463bd80d3893422bfb940e
Reviewed-by: Richard J. Moore <rich@kde.org>
36 files changed:
.gitignore
doc/src/snippets/code/src_corelib_mimetype_qmimedatabase.cpp [new file with mode: 0644]
src/corelib/corelib.pro
src/corelib/mimetypes/mime/packages/freedesktop.org.xml [new file with mode: 0644]
src/corelib/mimetypes/mimetypes.pri [new file with mode: 0644]
src/corelib/mimetypes/mimetypes.qrc [new file with mode: 0644]
src/corelib/mimetypes/qmimedatabase.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimedatabase.h [new file with mode: 0644]
src/corelib/mimetypes/qmimedatabase_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimeglobpattern.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimeglobpattern_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimemagicrule.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimemagicrule_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimemagicrulematcher.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimemagicrulematcher_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimeprovider.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimeprovider_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimetype.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimetype.h [new file with mode: 0644]
src/corelib/mimetypes/qmimetype_p.h [new file with mode: 0644]
src/corelib/mimetypes/qmimetypeparser.cpp [new file with mode: 0644]
src/corelib/mimetypes/qmimetypeparser_p.h [new file with mode: 0644]
tests/auto/corelib/corelib.pro
tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp
tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
tests/auto/corelib/mimetypes/mimetypes.pro [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/qmimedatabase-cache.pro [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/tst_qmimedatabase-cache.cpp [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/qmimedatabase-xml.pro [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/tst_qmimedatabase-xml.cpp [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.h [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimedatabase/yast2-metapackage-handler-mimetypes.xml [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimetype/qmimetype.pro [new file with mode: 0644]
tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp [new file with mode: 0644]