digiKam
Loading...
Searching...
No Matches
itemcategorydrawer.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2009-04-20
7 * Description : Qt model-view for items - category drawer
8 *
9 * SPDX-FileCopyrightText: 2009-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Local includes
18
19#include "dcategorydrawer.h"
20
21class QStyleOptionViewItem;
22
23namespace Digikam
24{
25
26class ItemCategorizedView;
27class Album;
28class PAlbum;
29class TAlbum;
30class SAlbum;
31class DAlbum;
32
34{
35 Q_OBJECT
36
37public:
38
39 explicit ItemCategoryDrawer(ItemCategorizedView* const parent);
40 ~ItemCategoryDrawer() override;
41
42 int categoryHeight(const QModelIndex& index, const QStyleOption& option) const override;
43 void drawCategory(const QModelIndex& index, int sortRole, const QStyleOption& option, QPainter* painter) const override;
44 virtual int maximumHeight() const;
45
46 void setLowerSpacing(int spacing);
47 void setDefaultViewOptions(const QStyleOptionViewItem& option);
49
50private:
51
52 void updateRectsAndPixmaps(int width);
53 void viewHeaderText(const QModelIndex& index, QString* header, QString* subLine) const;
54 void textForAlbum(const QModelIndex& index, QString* header, QString* subLine) const;
55 void textForPAlbum(PAlbum* a, bool recursive, int count, QString* header, QString* subLine) const;
56 void textForTAlbum(TAlbum* a, bool recursive, int count, QString* header, QString* subLine) const;
57 void textForSAlbum(SAlbum* a, int count, QString* header, QString* subLine) const;
58 void textForDAlbum(DAlbum* a, int count, QString* header, QString* subLine) const;
59 void textForFormat(const QModelIndex& index, QString* header, QString* subLine) const;
60 void textForMonth(const QModelIndex& index, QString* header, QString* subLine) const;
61 void textForFace(const QModelIndex& index, QString* header, QString* subLine) const;
62
63private:
64
65 class Private;
66 Private* const d = nullptr;
67};
68
69} // namespace Digikam
Definition album.h:461
Definition dcategorydrawer.h:42
Definition itemcategorizedview.h:39
Definition itemcategorydrawer.h:34
void setLowerSpacing(int spacing)
Definition itemcategorydrawer.cpp:79
virtual int maximumHeight() const
Definition itemcategorydrawer.cpp:74
int categoryHeight(const QModelIndex &index, const QStyleOption &option) const override
Definition itemcategorydrawer.cpp:69
void invalidatePaintingCache()
Definition itemcategorydrawer.cpp:94
void drawCategory(const QModelIndex &index, int sortRole, const QStyleOption &option, QPainter *painter) const override
Definition itemcategorydrawer.cpp:104
~ItemCategoryDrawer() override
Definition itemcategorydrawer.cpp:64
void setDefaultViewOptions(const QStyleOptionViewItem &option)
Definition itemcategorydrawer.cpp:84
Definition album.h:357
Definition album.h:494
Definition album.h:421
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34