digiKam
Loading...
Searching...
No Matches
dcategorizedview.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 : Item view for listing items in a categorized fashion optionally
8 *
9 * SPDX-FileCopyrightText: 2007 by Rafael Fernández López <ereslibre at kde dot org>
10 * SPDX-FileCopyrightText: 2009-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QListView>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class DCategoryDrawer;
31
38class DIGIKAM_EXPORT DCategorizedView : public QListView
39{
40 Q_OBJECT
41
42public:
43
44 explicit DCategorizedView(QWidget* const parent = nullptr);
45 ~DCategorizedView() override;
46
47 void setGridSize(const QSize& size);
48
49 void setCategoryDrawer(DCategoryDrawer* categoryDrawer);
50 DCategoryDrawer* categoryDrawer() const;
51
60 void setDrawDraggedItems(bool drawDraggedItems);
61
62 void setModel(QAbstractItemModel* model) override;
63 QRect visualRect(const QModelIndex& index) const override;
64 QModelIndex indexAt(const QPoint& point) const override;
65
71 virtual QModelIndexList categorizedIndexesIn(const QRect& rect) const;
72
78 virtual QRect categoryVisualRect(const QModelIndex& index) const;
79
85 virtual QModelIndex categoryAt(const QPoint& point) const;
86
92 virtual QItemSelectionRange categoryRange(const QModelIndex& index) const;
93
94public Q_SLOTS:
95
96 void reset() override;
97
98protected:
99
100 void paintEvent(QPaintEvent* event) override;
101
102 void resizeEvent(QResizeEvent* event) override;
103
104 void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags) override;
105
106 void mouseMoveEvent(QMouseEvent* event) override;
107
108 void mousePressEvent(QMouseEvent* event) override;
109
110 void mouseReleaseEvent(QMouseEvent* event) override;
111
112 void leaveEvent(QEvent* event) override;
113
114 void startDrag(Qt::DropActions supportedActions) override;
115
116 void dragMoveEvent(QDragMoveEvent* event) override;
117
118 void dragLeaveEvent(QDragLeaveEvent* event) override;
119
120 void dropEvent(QDropEvent* event) override;
121
122 QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override;
123
124protected Q_SLOTS:
125
126 void rowsInserted(const QModelIndex& parent, int start, int end) override;
127
128 virtual void rowsInsertedArtifficial(const QModelIndex& parent, int start, int end);
129
130 virtual void rowsRemoved(const QModelIndex& parent, int start, int end);
131
132 void updateGeometries() override;
133
134 virtual void slotLayoutChanged();
135
136 void currentChanged(const QModelIndex& current, const QModelIndex& previous) override;
137
138private:
139
140 class Private;
141 Private* const d = nullptr;
142};
143
144} // namespace Digikam
Definition dcategorizedview_p.h:93
Item view for listing items.
Definition dcategorizedview.h:39
Definition dcategorydrawer.h:42
Definition datefolderview.cpp:34