digiKam
Loading...
Searching...
No Matches
dwitemdelegatepool.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 : 2007-11-15
7 * Description : widget item delegate for setup collection view
8 *
9 * SPDX-FileCopyrightText: 2015-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2007-2008 by Rafael Fernández López <ereslibre at kde dot org>
11 * SPDX-FileCopyrightText: 2008 by Kevin Ottens <ervin at kde dot org>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QModelIndex>
22#include <QHash>
23#include <QList>
24
25// Local includes
26
27#include "digikam_export.h"
28
29class QWidget;
30class QStyleOptionViewItem;
31
32namespace Digikam
33{
34
35class DWItemDelegate;
36class DWItemDelegatePoolPrivate;
37
38class DIGIKAM_GUI_EXPORT DWItemDelegatePool
39{
40public:
41
43 {
44 UpdateWidgets = 0,
45 NotUpdateWidgets
46 };
47
48public:
49
55 explicit DWItemDelegatePool(DWItemDelegate* const delegate);
57
65 QList<QWidget*> findWidgets(const QPersistentModelIndex& index, const QStyleOptionViewItem& option,
66 UpdateWidgetsEnum updateWidgets = UpdateWidgets) const;
67
68 QList<QWidget*> invalidIndexesWidgets() const;
69
70 void fullClear();
71
72private:
73
74 // Disable
76 DWItemDelegatePool& operator=(const DWItemDelegatePool&) = delete;
77
78private:
79
80 friend class DWItemDelegate;
82
83 DWItemDelegatePoolPrivate* const d = nullptr;
84};
85
86// -----------------------------------------------------------------------------------------------------------
87
88class DWItemDelegateEventListener;
89
91{
92public:
93
94 explicit DWItemDelegatePoolPrivate(DWItemDelegate* const dd);
95
96public:
97
99 DWItemDelegateEventListener* eventListener = nullptr;
100
101 QHash<QPersistentModelIndex, QList<QWidget*> > usedWidgets;
102 QHash<QWidget*, QPersistentModelIndex> widgetInIndex;
103
104 bool clearing = false;
105
106private:
107
108 // Disable
110 DWItemDelegatePoolPrivate& operator=(const DWItemDelegatePoolPrivate&) = delete;
111};
112
113} // namespace Digikam
Definition dwitemdelegatepool.h:91
DWItemDelegate * delegate
Definition dwitemdelegatepool.h:98
DWItemDelegateEventListener * eventListener
Definition dwitemdelegatepool.h:99
bool clearing
Definition dwitemdelegatepool.h:104
QHash< QPersistentModelIndex, QList< QWidget * > > usedWidgets
Definition dwitemdelegatepool.h:101
QHash< QWidget *, QPersistentModelIndex > widgetInIndex
Definition dwitemdelegatepool.h:102
Definition dwitemdelegatepool.h:39
UpdateWidgetsEnum
Definition dwitemdelegatepool.h:43
Definition dwitemdelegate_p.h:33
Definition dwitemdelegate.h:50
Definition datefolderview.cpp:34