digiKam
Loading...
Searching...
No Matches
itemdelegate.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-19
7 * Description : Qt model-view for items - the delegate
8 *
9 * SPDX-FileCopyrightText: 2009-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "itemviewdelegate.h"
21#include "thumbnailsize.h"
22
23namespace Digikam
24{
25
26class ItemCategoryDrawer;
27class ItemCategorizedView;
28class ItemDelegateOverlay;
29class ItemFilterModel;
30class ItemModel;
31class ItemThumbnailModel;
32
34{
35 Q_OBJECT
36
37public:
38
39 explicit ItemDelegate(QWidget* const parent);
40 ~ItemDelegate() override;
41
42 void setView(ItemCategorizedView* view);
43
45
46 QRect commentsRect() const;
47 QRect tagsRect() const;
48 QRect actualPixmapRect(const QModelIndex& index) const;
49 QRect groupIndicatorRect() const;
50 QRect coordinatesIndicatorRect() const;
51
52 int calculatethumbSizeToFit(int ws);
53
54 void setSpacing(int spacing) override;
55 void setDefaultViewOptions(const QStyleOptionViewItem& option) override;
56 bool acceptsToolTip(const QPoint& pos, const QRect& visualRect,
57 const QModelIndex& index, QRect* tooltipRect = nullptr) const override;
58 bool acceptsActivation(const QPoint& pos, const QRect& visualRect,
59 const QModelIndex& index, QRect* activationRect = nullptr) const override;
60
61 QRect pixmapRect() const override;
62 QRect imageInformationRect() const override;
63
64 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
65 QPixmap pixmapForDrag(const QStyleOptionViewItem& option, const QList<QModelIndex>& indexes) const override;
66
71 static QPixmap retrieveThumbnailPixmap(const QModelIndex& index, int thumbnailSize);
72
73public:
74
75 // Declared as public because of use in DigikamItemDelegate class.
77
78protected:
79
84 virtual void updateContentWidth();
85
90 virtual void updateRects() = 0;
91
92 void clearCaches() override;
93
98 virtual void clearModelDataCaches();
99
100 virtual QPixmap thumbnailPixmap(const QModelIndex& index) const;
101
102 bool onActualPixmapRect(const QPoint& pos, const QRect& visualRect,
103 const QModelIndex& index, QRect* actualRect) const;
104 void updateActualPixmapRect(const QModelIndex& index, const QRect& rect);
105
106 void invalidatePaintingCache() override;
107 void updateSizeRectsAndPixmaps() override;
108
109 void setModel(QAbstractItemModel* model);
110
111 ItemDelegate(ItemDelegate::ItemDelegatePrivate& dd, QWidget* const parent);
112
113protected Q_SLOTS:
114
115 void modelChanged();
117
118private:
119
120 Q_DECLARE_PRIVATE(ItemDelegate)
121};
122
123} // namespace Digikam
Definition itemcategorizedview.h:39
Definition itemcategorydrawer.h:34
Definition itemdelegate_p.h:35
Definition itemdelegate.h:34
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition itemdelegate.cpp:240
virtual QPixmap thumbnailPixmap(const QModelIndex &index) const
Definition itemdelegate.cpp:233
QRect actualPixmapRect(const QModelIndex &index) const
Definition itemdelegate.cpp:552
QRect tagsRect() const
Definition itemdelegate.cpp:177
QRect pixmapRect() const override
Definition itemdelegate.cpp:184
void updateSizeRectsAndPixmaps() override
Definition itemdelegate.cpp:490
virtual void updateRects()=0
QRect commentsRect() const
Definition itemdelegate.cpp:170
virtual void clearModelDataCaches()
Definition itemdelegate.cpp:532
QRect groupIndicatorRect() const
Definition itemdelegate.cpp:198
void invalidatePaintingCache() override
Definition itemdelegate.cpp:471
ItemCategoryDrawer * categoryDrawer() const
Definition itemdelegate.cpp:163
static QPixmap retrieveThumbnailPixmap(const QModelIndex &index, int thumbnailSize)
Definition itemdelegate.cpp:212
void updateActualPixmapRect(const QModelIndex &index, const QRect &rect)
Definition itemdelegate.cpp:570
virtual void updateContentWidth()
Definition itemdelegate.cpp:483
bool acceptsActivation(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *activationRect=nullptr) const override
Definition itemdelegate.cpp:429
QRect coordinatesIndicatorRect() const
Definition itemdelegate.cpp:205
void setDefaultViewOptions(const QStyleOptionViewItem &option) override
Definition itemdelegate.cpp:459
void modelChanged()
Definition itemdelegate.cpp:539
void clearCaches() override
Definition itemdelegate.cpp:524
void setView(ItemCategorizedView *view)
Definition itemdelegate.cpp:91
int calculatethumbSizeToFit(int ws)
Definition itemdelegate.cpp:582
~ItemDelegate() override
Definition itemdelegate.cpp:81
bool onActualPixmapRect(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *actualRect) const
Definition itemdelegate.cpp:437
QPixmap pixmapForDrag(const QStyleOptionViewItem &option, const QList< QModelIndex > &indexes) const override
Definition itemdelegate.cpp:409
QRect imageInformationRect() const override
Definition itemdelegate.cpp:191
void setSpacing(int spacing) override
Definition itemdelegate.cpp:151
void setModel(QAbstractItemModel *model)
Definition itemdelegate.cpp:113
void modelContentsChanged()
Definition itemdelegate.cpp:547
bool acceptsToolTip(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *tooltipRect=nullptr) const override
Definition itemdelegate.cpp:421
Definition itemviewdelegate.h:32
ThumbnailSize thumbnailSize() const
Definition itemviewdelegate.cpp:98
int spacing() const
Definition itemviewdelegate.cpp:136
QRect rect() const
Definition itemviewdelegate.cpp:143
Definition datefolderview.cpp:34