File indexing completed on 2024-05-05 16:27:56

0001 // krazy:skip
0002 
0003 // SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org>
0004 // SPDX-FileCopyrightText: 2009-2010 Jesper K. Pedersen <blackie@kde.org>
0005 //
0006 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL
0007 
0008 /**
0009   \namespace Browser
0010   \brief The component that allows you to narrow down the image set
0011 
0012   The GUI component of the browser is the BrowserWidget. This widget
0013   has a QTreeView and a CenteringIconView for displaying its content.
0014 
0015   The class CenteringIconView is a simple QListView that is adapted to
0016   optionally centering its content.
0017 
0018   The BrowserWidget has a list of \ref BrowserPage's, each page represent an
0019   item that you can go backward or forward to using the back/forward
0020   buttons in the toolbar.
0021 
0022   <h2>The %BrowserPage class and its subclasses</h2>
0023 
0024   The \ref BrowserPage is responsible for providing an instance of
0025   QAbstractItemModel for the \ref BrowserWidget's QTreeView and
0026   QListView. Besides that it has a number of methods telling properties of
0027   the given page ( e.g. BrowserPage::viewer() tells if the Browser or the
0028   Viewer should be used, BrowserPage::isSearchable tells if it possible to
0029   use the search bar on the page etc).
0030 
0031   Three subclasses currently exists for the BrowserPage:
0032   \li OverviewPage - the page with (People, Places, Show images etc)
0033   \li CategoryPage - the page showing the items of a given caetegory
0034   \li ImageViewPage - represent a thumbnail view
0035 
0036   <h2>Searching</h2>
0037   The content of the Browser can be narrowed using the search bar, for that
0038   the class \ref TreeFilter implements a QSortFilterProxyModel that the
0039   \ref BrowserWidget used for filtering and sorting.
0040 
0041   <h2>Breadcrumbs</h2>
0042   At the bottom of the main window, a list of breadcrumbs exists for
0043   navigating the path taken in the browser. That list is made up from
0044   individual breadcrumbs of the steps. The individual breadcrumbs are
0045   represented using \ref Breadcrumb and a list of breadcrumbs is
0046   represented using \ref BreadcrumbList.
0047 
0048   <h2>Models</h2>
0049   The browser has, as mentioned, two views: a tree view and a list view (for
0050   icon mode). These are populated using instances of QAbstractItemModel
0051   which are returned from subclasses of \ref BrowserPage.
0052 
0053   The OverviewPage subclasses QAbstractListModel, and implement the model
0054   internally. The \ref CategoryPage on the other is slightly more
0055   complicated, as it either needs to use a simply model for the icon
0056   view, or a more complicated one for the tree views.
0057 
0058   For that purpose two classes exists: \ref FlatCategoryModel (the simple
0059   one) and \ref TreeCategoryModel (the tree version). Both classes inherits
0060   from \ref AbstractCategoryModel, which has some common code for the two.
0061 
0062 **/
0063 // vi:expandtab:tabstop=4 shiftwidth=4: