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: