digiKam
Loading...
Searching...
No Matches
importdelegate.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 : 2012-07-08
7 * Description : Qt item view to import items - the delegate
8 *
9 * SPDX-FileCopyrightText: 2012 by Islam Wazery <wazery at ubuntu dot com>
10 * SPDX-FileCopyrightText: 2012-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#include <QtGlobal>
19#include <QListView>
20
21// Local includes
22
26
27namespace Digikam
28{
29
30class ImportCategorizedView;
31class ImportThumbnailDelegatePrivate;
32class ImportNormalDelegatePrivate;
33
35{
36 Q_OBJECT
37
38public:
39
40 explicit ImportDelegate(QWidget* const parent);
41 ~ImportDelegate() override;
42
44
46
47/*
48 QRect commentsRect() const;
49*/
50 QRect tagsRect() const;
51 QRect actualPixmapRect(const QModelIndex& index) const;
52 QRect groupIndicatorRect() const;
53 QRect downloadIndicatorRect() const;
54 QRect lockIndicatorRect() const;
55 QRect coordinatesIndicatorRect() const;
56
57 int calculatethumbSizeToFit(int ws);
58
59 void setSpacing(int spacing) override;
60 void setDefaultViewOptions(const QStyleOptionViewItem& option) override;
61 bool acceptsToolTip(const QPoint& pos, const QRect& visualRect,
62 const QModelIndex& index, QRect* tooltipRect = nullptr) const override;
63 bool acceptsActivation(const QPoint& pos, const QRect& visualRect,
64 const QModelIndex& index, QRect* activationRect = nullptr) const override;
65
66 QRect pixmapRect() const override;
67 QRect imageInformationRect() const override;
68
69 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
70 QPixmap pixmapForDrag(const QStyleOptionViewItem& option, const QList<QModelIndex>& indexes) const override;
71
76 static QPixmap retrieveThumbnailPixmap(const QModelIndex& index, int thumbnailSize);
77
78public:
79
80 // Declared as public because of use in ImportNormalDelegate class.
82
83protected:
84
85 bool onActualPixmapRect(const QPoint& pos, const QRect& visualRect,
86 const QModelIndex& index, QRect* actualRect) const;
87 void updateActualPixmapRect(const QModelIndex& index, const QRect& rect);
88
89 void setModel(QAbstractItemModel* model);
90
91 ImportDelegate(ImportDelegate::ImportDelegatePrivate& dd, QWidget* const parent);
92
97 virtual void updateContentWidth();
98
103 virtual void updateRects() = 0;
104
105 void clearCaches() override;
106
111 virtual void clearModelDataCaches();
112
113 virtual QPixmap thumbnailPixmap(const QModelIndex& index) const;
114
115 void invalidatePaintingCache() override;
116 void updateSizeRectsAndPixmaps() override;
117
118protected Q_SLOTS:
119
120 void modelChanged();
122
123private:
124
125 Q_DECLARE_PRIVATE(ImportDelegate)
126};
127
128// ------ ImportThumbnailDelegate ----------------------------------------
129
131{
132 Q_OBJECT
133
134public:
135
136 explicit ImportThumbnailDelegate(ImportCategorizedView* const parent);
137 ~ImportThumbnailDelegate() override;
138
139 void setFlow(QListView::Flow flow);
140
145 int maximumSize() const;
146 int minimumSize() const;
147
148 void setDefaultViewOptions(const QStyleOptionViewItem& option) override;
149 bool acceptsActivation(const QPoint& pos, const QRect& visualRect, const QModelIndex& index,
150 QRect* activationRect) const override;
151
152protected:
153
154 void updateContentWidth() override;
155 void updateRects() override;
156 int thumbnailPixmapSize(bool withHighlight, int size);
157
158private:
159
160 Q_DECLARE_PRIVATE(ImportThumbnailDelegate)
161};
162
163// ------ ImportNormalDelegate ----------------------------------------
164
166{
167 Q_OBJECT
168
169public:
170
171 explicit ImportNormalDelegate(ImportCategorizedView* const parent);
172 ~ImportNormalDelegate() override;
173
174protected:
175
177
178 void updateRects() override;
179
180private:
181
182 Q_DECLARE_PRIVATE(ImportNormalDelegate)
183};
184
185} // namespace Digikam
Definition importcategorizedview.h:34
Definition importcategorydrawer.h:31
Definition importdelegate_p.h:36
Definition importdelegate.h:35
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition importdelegate.cpp:240
void clearCaches() override
Definition importdelegate.cpp:490
bool onActualPixmapRect(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *actualRect) const
Definition importdelegate.cpp:404
void setDefaultViewOptions(const QStyleOptionViewItem &option) override
Definition importdelegate.cpp:424
virtual void updateRects()=0
virtual QPixmap thumbnailPixmap(const QModelIndex &index) const
Definition importdelegate.cpp:233
virtual void clearModelDataCaches()
Definition importdelegate.cpp:498
void modelChanged()
Definition importdelegate.cpp:505
void updateSizeRectsAndPixmaps() override
Definition importdelegate.cpp:455
QRect downloadIndicatorRect() const
Definition importdelegate.cpp:195
void modelContentsChanged()
Definition importdelegate.cpp:513
void setSpacing(int spacing) override
Definition importdelegate.cpp:140
QRect imageInformationRect() const override
Definition importdelegate.cpp:181
QRect pixmapRect() const override
Definition importdelegate.cpp:174
QPixmap pixmapForDrag(const QStyleOptionViewItem &option, const QList< QModelIndex > &indexes) const override
Definition importdelegate.cpp:380
QRect lockIndicatorRect() const
Definition importdelegate.cpp:202
void invalidatePaintingCache() override
reimplement these in subclasses
Definition importdelegate.cpp:436
QRect coordinatesIndicatorRect() const
Definition importdelegate.cpp:209
void setView(ImportCategorizedView *view)
Definition importdelegate.cpp:78
~ImportDelegate() override
Definition importdelegate.cpp:72
bool acceptsToolTip(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *tooltipRect=nullptr) const override
Definition importdelegate.cpp:392
void updateActualPixmapRect(const QModelIndex &index, const QRect &rect)
Definition importdelegate.cpp:536
void setModel(QAbstractItemModel *model)
Definition importdelegate.cpp:101
QRect groupIndicatorRect() const
Definition importdelegate.cpp:188
QRect tagsRect() const
Definition importdelegate.cpp:167
QRect actualPixmapRect(const QModelIndex &index) const
Definition importdelegate.cpp:518
ImportCategoryDrawer * categoryDrawer() const
Definition importdelegate.cpp:152
virtual void updateContentWidth()
Definition importdelegate.cpp:448
int calculatethumbSizeToFit(int ws)
Definition importdelegate.cpp:548
static QPixmap retrieveThumbnailPixmap(const QModelIndex &index, int thumbnailSize)
Definition importdelegate.cpp:216
bool acceptsActivation(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *activationRect=nullptr) const override
Definition importdelegate.cpp:398
Definition importdelegate_p.h:104
Definition importdelegate.h:166
void updateRects() override
Definition importdelegate.cpp:773
~ImportNormalDelegate() override
Definition importdelegate.cpp:769
Definition importdelegate.h:131
int maximumSize() const
Definition importdelegate.cpp:647
void setFlow(QListView::Flow flow)
Definition importdelegate.cpp:630
int thumbnailPixmapSize(bool withHighlight, int size)
Definition importdelegate.cpp:689
void setDefaultViewOptions(const QStyleOptionViewItem &option) override
Definition importdelegate.cpp:637
void updateRects() override
Definition importdelegate.cpp:699
void updateContentWidth() override
Definition importdelegate.cpp:669
int minimumSize() const
Definition importdelegate.cpp:654
~ImportThumbnailDelegate() override
Definition importdelegate.cpp:626
bool acceptsActivation(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *activationRect) const override
Definition importdelegate.cpp:661
NOTE: Some reuse of the existing model-view classes.
Definition itemviewimportdelegate.h:36
int spacing() const
Definition itemviewimportdelegate.cpp:133
QRect rect() const
Definition itemviewimportdelegate.cpp:140
ThumbnailSize thumbnailSize() const
Definition itemviewimportdelegate.cpp:95
Definition datefolderview.cpp:34