/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file.  Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \group gallery-requests
    \title Document Gallery Requests

    API for requesting information, and actions from a document gallery.
*/

/*!
    \group gallery-filters
    \title Document Gallery Filters

    API for identifying documents within a gallery.
*/

/*!
    \group gallery-galleries
    \title Document Galleries.

    API for document galleries.
*/

/*!
    \group gallery-examples
    \title Document Gallery Examples
*/

/*!
    \page gallery.html
    \group gallery

    \title Document Gallery

    \ingroup mobility

    \brief An API to navigate and query documents using their meta-data.


    \section1 Namespace

    The QtMobility APIs are placed into the \i{QtMobility} namespace. This
    is done to facilitate the future migration of QtMobility APIs into Qt. See
    the \l {Quickstart guide} for an example on how the
    namespace impacts on application development.


    \section1 Overview


    The Document Gallery provides an API for navigating and querying documents
    using their meta-data. The common use case would be populating the media
    selection views of a music player, or image viewer. It also provides API's
    for querying and editing the meta-data of individual documents.

    Typically all files in user directories should be available in the
    document gallery. The principal types are Audio, Video, Image, and
    (Office) Document, but files can also be categorized as a File, Folder,
    Text, or Playlist. There are also some meta-types composed from the
    meta-data of files, these are Artist, Album, AudioGenre, and PhotoAlbum.

    The document gallery API is composed of a set of asynchronous request
    (\l QGalleryAbstractRequest) classes which talk to the system file indexing
    service, this would be tracker on Maemo platforms, the meta-data system
    (MDS) on Symbian and potentially Windows Search, or Spotlight on macs.
    There are three requests; \l QGalleryQueryRequest takes a type, a parent
    item, and some filtering criteria (\l QGalleryFilter) and returns
    meta-data for all matching items.
    \l QGalleryItemRequest takes an item ID and returns meta-data for just that
    item.  And \l QGalleryTypeRequest takes an item type and returns meta-data
    describing that type.

    The requests operate on implementations of the \l QAbstractGallery.
    The default implementation is \l QDocumentGallery, but it's possible to
    create alternative implementations which talk to a media server or web
    services.

    The primary interface to the results of a request is the
    \l QGalleryResultSet class which provides accessors for reading and writing
     the meta-data of a set of items.

    A \l QGalleryResultSet cannot be created directly and may not need to be
    accessed directly, instead an instance must be requested from a gallery
    using one of the gallery request classes which typically also provide
    convenience functions for accessing the items in a result set.


    \section2 Requests

    The gallery request classes inherit from \l QGalleryAbstractRequest and
    are used to fetch items from a gallery, or to initiate service provided
    by a gallery.

    \annotatedlist gallery-requests

    \section2 Filters

    The filter classes provide a way to describe meta-data criteria items must
    satisfy to be included in the results of some requests.

    \annotatedlist gallery-filters

    \section2 Galleries

    The gallery classes provide instances of different gallery types.  Currently
    the only gallery type is the Document Gallery.

    \annotatedlist gallery-galleries

    \section2 QGalleryQueryModel

    The \l QGalleryQueryModel class implements a QAbstractItemModel using
    QGalleryQueryRequest.  This is a convenience class which simplifies the
    process of presenting gallery items in a list view.

    \section2 \l QML Elements

    QML elements providing access to the document gallery are implemented in
    the \l {Gallery QML Plugin}.

    \annotatedlist qml-gallery

    \section1 Examples

    \annotatedlist gallery-examples
*/

