digiKam
Loading...
Searching...
No Matches
ditemdelegate.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 : 2010-01-16
7 * Description : Qt item view for images - common delegate code
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// Qt includes
18
19#include <QWidget>
20#include <QAbstractItemDelegate>
21
22// Local includes
23
24#include "digikam_export.h"
25#include "thumbnailsize.h"
26
27namespace Digikam
28{
29
30class ItemViewCategorized;
31
32class DIGIKAM_EXPORT DItemDelegate : public QAbstractItemDelegate
33{
34 Q_OBJECT
35
36public:
37
38 explicit DItemDelegate(QObject* const parent = nullptr);
39 ~DItemDelegate() override;
40
44 virtual QSize gridSize() const = 0;
45 virtual QPixmap pixmapForDrag(const QStyleOptionViewItem& option, const QList<QModelIndex>& indexes) const = 0;
46
50 virtual void setThumbnailSize(const ThumbnailSize& thumbSize) = 0;
51 virtual void setSpacing(int spacing) = 0;
52
58 virtual void setDefaultViewOptions(const QStyleOptionViewItem& option) = 0;
59
65 virtual bool acceptsToolTip(const QPoint& pos, const QRect& visualRect,
66 const QModelIndex& index, QRect* tooltipRect = nullptr) const = 0;
67 virtual bool acceptsActivation(const QPoint& pos, const QRect& visualRect,
68 const QModelIndex& index, QRect* activationRect = nullptr) const = 0;
69
73 virtual void mouseMoved(QMouseEvent* e, const QRect& visualRect, const QModelIndex& index) = 0;
74
75 static QString squeezedText(const QFontMetrics& fm, int width, const QString& text);
76 static QString dateToString(const QDateTime& datetime);
77 static QPixmap makeDragPixmap(const QStyleOptionViewItem& option, const QList<QModelIndex>& indexes,
78 double displayRatio, const QPixmap& suggestedPixmap = QPixmap());
79
80Q_SIGNALS:
81
82 void gridSizeChanged(const QSize& newSize);
84
85protected:
86
87 virtual void clearCaches();
88
89 QString squeezedTextCached(QPainter* const p, int width, const QString& text) const;
90 QPixmap thumbnailBorderPixmap(const QSize& pixSize, bool isGrouped = false) const;
91
92private:
93
94 class Private;
95 Private* const d = nullptr;
96};
97
98} // namespace Digikam
Definition ditemdelegate.h:33
virtual QSize gridSize() const =0
virtual bool acceptsActivation(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *activationRect=nullptr) const =0
virtual void setThumbnailSize(const ThumbnailSize &thumbSize)=0
void gridSizeChanged(const QSize &newSize)
virtual void mouseMoved(QMouseEvent *e, const QRect &visualRect, const QModelIndex &index)=0
virtual void setDefaultViewOptions(const QStyleOptionViewItem &option)=0
virtual QPixmap pixmapForDrag(const QStyleOptionViewItem &option, const QList< QModelIndex > &indexes) const =0
virtual bool acceptsToolTip(const QPoint &pos, const QRect &visualRect, const QModelIndex &index, QRect *tooltipRect=nullptr) const =0
virtual void setSpacing(int spacing)=0
Definition thumbnailsize.h:32
Definition datefolderview.cpp:34