digiKam
Loading...
Searching...
No Matches
itemviewimportdelegate.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-05-07
7 * Description : Item delegate for import interface items.
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// Local includes
19
20#include "thumbnailsize.h"
21#include "ditemdelegate.h"
22#include "itemdelegateoverlay.h"
23
24namespace Digikam
25{
26
27class ImportCategoryDrawer;
28class ImportCategorizedView;
29class ImportFilterModel;
30class ImportItemModel;
31class ItemViewImportDelegatePrivate;
32
34
36{
37 Q_OBJECT
38
39public:
40
41 explicit ItemViewImportDelegate(QWidget* const parent);
42 ~ItemViewImportDelegate() override;
43
45 double displayRatio() const;
46 int spacing() const;
47 QRect rect() const;
48
49 QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
50 QSize gridSize() const override;
51
53
54 void setThumbnailSize(const ThumbnailSize& thumbSize) override;
55 void setSpacing(int spacing) override;
56 void setDefaultViewOptions(const QStyleOptionViewItem& option) override;
57 bool acceptsToolTip(const QPoint& pos, const QRect& visualRect,
58 const QModelIndex& index, QRect* tooltipRect = nullptr) const override;
59 bool acceptsActivation(const QPoint& pos, const QRect& visualRect,
60 const QModelIndex& index, QRect* activationRect = nullptr) const override;
61
66 virtual QRect pixmapRect() const;
67
75 virtual QRect imageInformationRect() const;
76
81 void setRatingEdited(const QModelIndex& index);
82
87 virtual QRect ratingRect() const;
88
89 void mouseMoved(QMouseEvent* e, const QRect& visualRect, const QModelIndex& index) override;
90
91protected Q_SLOTS:
92
93 void slotThemeChanged();
94 void slotSetupChanged();
95
96 void overlayDestroyed(QObject* o) override;
97
98Q_SIGNALS:
99
100 void requestNotification(const QModelIndex& index, const QString& message);
102
103protected:
104
106 QRect drawThumbnail(QPainter* p, const QRect& thumbRect, const QPixmap& background, const QPixmap& thumbnail) const;
107 void drawRating(QPainter* p, const QModelIndex& index, const QRect& ratingRect, int rating, bool isSelected) const;
108 void drawName(QPainter* p,const QRect& nameRect, const QString& name) const;
109 void drawCreationDate(QPainter* p, const QRect& dateRect, const QDateTime& date) const;
110 void drawImageSize(QPainter* p, const QRect& dimsRect, const QSize& dims) const;
111 void drawImageFormat(QPainter* p, const QRect& dimsRect, const QString& mime) const;
112 void drawFileSize(QPainter* p, const QRect& r, qlonglong bytes) const;
113 void drawTags(QPainter* p, const QRect& r, const QString& tagsString, bool isSelected) const;
114 void drawGroupIndicator(QPainter* p, const QRect& r, int numberOfGroupedImages, bool open) const;
115 void drawPickLabelIcon(QPainter* p, const QRect& r, int pickLabel) const;
116 void drawColorLabelLine(QPainter* p, const QRect& pixRect, int colorId) const;
117 void drawGeolocationIndicator(QPainter* p, const QRect& r) const;
118 void drawDownloadIndicator(QPainter* p, const QRect& r, int itemType) const;
119 void drawLockIndicator(QPainter* p, const QRect& r, int lockStatus) const;
120 void drawFocusRect(QPainter* p, const QStyleOptionViewItem& option, bool isSelected) const;
121 void drawMouseOverRect(QPainter* p, const QStyleOptionViewItem& option) const;
122 void prepareFonts();
123 void prepareMetrics(int maxWidth);
124 void prepareBackground();
125 void prepareRatingPixmaps(bool composeOverBackground = true);
126
128 QPixmap ratingPixmap(int rating, bool selected) const;
129
130 QAbstractItemDelegate* asDelegate() override;
131
133 virtual void invalidatePaintingCache();
134 virtual void updateSizeRectsAndPixmaps() = 0;
135
136protected:
137
139 ItemViewImportDelegate(ItemViewImportDelegatePrivate& dd, QWidget* const parent);
140
141private:
142
143 // Disable
145 ItemViewImportDelegate& operator=(const ItemViewImportDelegate&) = delete;
146
147private:
148
149 Q_DECLARE_PRIVATE(ItemViewImportDelegate)
150};
151
152} // namespace Digikam
Definition ditemdelegate.h:33
Definition itemdelegateoverlay.h:323
Definition itemviewimportdelegate_p.h:40
NOTE: Some reuse of the existing model-view classes.
Definition itemviewimportdelegate.h:36
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition itemviewimportdelegate.cpp:171
void drawFileSize(QPainter *p, const QRect &r, qlonglong bytes) const
Definition itemviewimportdelegate.cpp:379
void prepareBackground()
Definition itemviewimportdelegate.cpp:612
void setThumbnailSize(const ThumbnailSize &thumbSize) override
reimplemented from DItemDelegate
Definition itemviewimportdelegate.cpp:109
QRect drawThumbnail(QPainter *p, const QRect &thumbRect, const QPixmap &background, const QPixmap &thumbnail) const
Use the tool methods for painting in subclasses.
Definition itemviewimportdelegate.cpp:259
void prepareRatingPixmaps(bool composeOverBackground=true)
Definition itemviewimportdelegate.cpp:637
void drawName(QPainter *p, const QRect &nameRect, const QString &name) const
Definition itemviewimportdelegate.cpp:306
void prepareMetrics(int maxWidth)
Definition itemviewimportdelegate.cpp:594
void setSpacing(int spacing) override
Definition itemviewimportdelegate.cpp:120
void slotSetupChanged()
Definition itemviewimportdelegate.cpp:236
void drawRating(QPainter *p, const QModelIndex &index, const QRect &ratingRect, int rating, bool isSelected) const
Definition itemviewimportdelegate.cpp:292
void drawCreationDate(QPainter *p, const QRect &dateRect, const QDateTime &date) const
Definition itemviewimportdelegate.cpp:314
void drawGroupIndicator(QPainter *p, const QRect &r, int numberOfGroupedImages, bool open) const
Definition itemviewimportdelegate.cpp:531
void drawImageFormat(QPainter *p, const QRect &dimsRect, const QString &mime) const
Definition itemviewimportdelegate.cpp:324
ItemViewImportDelegatePrivate *const d_ptr
Definition itemviewimportdelegate.h:138
void drawImageSize(QPainter *p, const QRect &dimsRect, const QSize &dims) const
Definition itemviewimportdelegate.cpp:355
QAbstractItemDelegate * asDelegate() override
Returns the delegate, typically, the derived class.
Definition itemviewimportdelegate.cpp:206
void setDefaultViewOptions(const QStyleOptionViewItem &option) override
Definition itemviewimportdelegate.cpp:223
void prepareFonts()
Definition itemviewimportdelegate.cpp:570
QPixmap ratingPixmap(int rating, bool selected) const
Returns the relevant pixmap from the cached rating pixmaps.
Definition itemviewimportdelegate.cpp:719
void drawLockIndicator(QPainter *p, const QRect &r, int lockStatus) const
Definition itemviewimportdelegate.cpp:493
void mouseMoved(QMouseEvent *e, const QRect &visualRect, const QModelIndex &index) override
Definition itemviewimportdelegate.cpp:216
virtual QRect imageInformationRect() const
Definition itemviewimportdelegate.cpp:152
void drawPickLabelIcon(QPainter *p, const QRect &r, int pickLabel) const
Definition itemviewimportdelegate.cpp:401
void drawDownloadIndicator(QPainter *p, const QRect &r, int itemType) const
Definition itemviewimportdelegate.cpp:468
int spacing() const
Definition itemviewimportdelegate.cpp:133
virtual QRect pixmapRect() const
Definition itemviewimportdelegate.cpp:147
QRect rect() const
Definition itemviewimportdelegate.cpp:140
virtual QRect ratingRect() const
Definition itemviewimportdelegate.cpp:157
void setRatingEdited(const QModelIndex &index)
Definition itemviewimportdelegate.cpp:164
void requestNotification(const QModelIndex &index, const QString &message)
QSize gridSize() const override
Definition itemviewimportdelegate.cpp:178
virtual void updateSizeRectsAndPixmaps()=0
void slotThemeChanged()
Definition itemviewimportdelegate.cpp:231
bool acceptsToolTip(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *tooltipRect=nullptr) const override
Definition itemviewimportdelegate.cpp:185
void overlayDestroyed(QObject *o) override
Definition itemviewimportdelegate.cpp:211
void drawTags(QPainter *p, const QRect &r, const QString &tagsString, bool isSelected) const
Definition itemviewimportdelegate.cpp:387
double displayRatio() const
Definition itemviewimportdelegate.cpp:102
void drawFocusRect(QPainter *p, const QStyleOptionViewItem &option, bool isSelected) const
Definition itemviewimportdelegate.cpp:516
void drawGeolocationIndicator(QPainter *p, const QRect &r) const
Definition itemviewimportdelegate.cpp:452
bool acceptsActivation(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *activationRect=nullptr) const override
Definition itemviewimportdelegate.cpp:195
virtual void invalidatePaintingCache()
reimplement these in subclasses
Definition itemviewimportdelegate.cpp:241
ThumbnailSize thumbnailSize() const
Definition itemviewimportdelegate.cpp:95
~ItemViewImportDelegate() override
Definition itemviewimportdelegate.cpp:87
void drawColorLabelLine(QPainter *p, const QRect &pixRect, int colorId) const
Definition itemviewimportdelegate.cpp:426
void drawMouseOverRect(QPainter *p, const QStyleOptionViewItem &option) const
Definition itemviewimportdelegate.cpp:559
Definition thumbnailsize.h:32
Definition datefolderview.cpp:34