digiKam
Loading...
Searching...
No Matches
importoverlays.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-08-21
7 * Description : Overlays for the import interface
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// Qt includes
19
20#include <QAbstractButton>
21#include <QAbstractItemView>
22
23// Local includes
24
25#include "itemviewhoverbutton.h"
26#include "itemdelegateoverlay.h"
28#include "ratingwidget.h"
29
30namespace Digikam
31{
32
33class ImportOverlayWidget : public QAbstractButton
34{
35 Q_OBJECT
36
37public:
38
39 explicit ImportOverlayWidget(QWidget* const parent = nullptr);
40
41protected:
42
43 void paintEvent(QPaintEvent*) override;
44};
45
46// --------------------------------------------------------------------
47
49{
50 Q_OBJECT
52
53public:
54
55 explicit ImportCoordinatesOverlay(QObject* const parent);
57
58protected:
59
60 void updatePosition();
61
62 QWidget* createWidget() override;
63 void setActive(bool active) override;
64 void visualChange() override;
65 bool checkIndex(const QModelIndex& index) const override;
66 void slotEntered(const QModelIndex& index) override;
67
68protected:
69
70 QPersistentModelIndex m_index;
71};
72
73// --------------------------------------------------------------------
74
76{
77 Q_OBJECT
79
80public:
81
82 explicit ImportLockOverlay(QObject* const parent);
84
85protected:
86
87 void updatePosition();
88
89 QWidget* createWidget() override;
90 void setActive(bool active) override;
91 void visualChange() override;
92 bool checkIndex(const QModelIndex& index) const override;
93 void slotEntered(const QModelIndex& index) override;
94
95protected:
96
97 QPersistentModelIndex m_index;
98};
99
100// --------------------------------------------------------------------
101
103{
104 Q_OBJECT
106
107public:
108
109 explicit ImportDownloadOverlay(QObject* const parent);
111
112protected:
113
114 void updatePosition();
115
116 QWidget* createWidget() override;
117 void setActive(bool active) override;
118 void visualChange() override;
119 bool checkIndex(const QModelIndex& index) const override;
120 void slotEntered(const QModelIndex& index) override;
121
122protected:
123
124 QPersistentModelIndex m_index;
125};
126
127// ------------------------------------------------------------------------------------------------
128
130{
131 Q_OBJECT
133
134public:
135
136 explicit ImportRatingOverlay(QObject* const parent);
137 RatingWidget* ratingWidget() const;
138
139Q_SIGNALS:
140
141 void ratingEdited(const QList<QModelIndex>& indexes, int rating);
142
143protected Q_SLOTS:
144
145 void slotRatingChanged(int);
146 void slotDataChanged(const QModelIndex&, const QModelIndex&);
147
148protected:
149
150 QWidget* createWidget() override;
151 void setActive(bool) override;
152 void visualChange() override;
153 void hide() override;
154 void slotEntered(const QModelIndex& index) override;
155 void widgetEnterEvent() override;
156 void widgetLeaveEvent() override;
157
158 void updatePosition();
159 void updateRating();
160
161protected:
162
163 QPersistentModelIndex m_index;
164};
165
166// ------------------------------------------------------------------------------------------------
167
173
175{
176 Q_OBJECT
177
178public:
179
180 explicit ImportRotateOverlayButton(ImportRotateOverlayDirection dir, QAbstractItemView* const parentView);
181 QSize sizeHint() const override;
182
183protected:
184
185 QIcon icon() override;
186 void updateToolTip() override;
187
188protected:
189
191};
192
193// --------------------------------------------------------------------
194
196{
197 Q_OBJECT
198
199public:
200
201 explicit ImportRotateOverlay(ImportRotateOverlayDirection dir, QObject* const parent);
202 void setActive(bool active) override;
203
204 ImportRotateOverlayDirection direction() const { return m_direction; }
205 bool isLeft() const { return m_direction == ImportRotateOverlayLeft; }
206 bool isRight() const { return m_direction == ImportRotateOverlayRight; }
207
208 static ImportRotateOverlay* left (QObject* const parent) { return new ImportRotateOverlay(ImportRotateOverlayLeft, parent); }
209 static ImportRotateOverlay* right(QObject* const parent) { return new ImportRotateOverlay(ImportRotateOverlayRight, parent); }
210
211Q_SIGNALS:
212
213 void signalRotate(const QList<QModelIndex>& indexes);
214
215protected:
216
218 void updateButton(const QModelIndex& index) override;
219 bool checkIndex(const QModelIndex& index) const override;
220 void widgetEnterEvent() override;
221 void widgetLeaveEvent() override;
222
223private Q_SLOTS:
224
225 void slotClicked();
226
227private:
228
229 ImportRotateOverlayDirection const m_direction;
230};
231
232} // namespace Digikam
Definition itemdelegateoverlay.h:115
Definition itemdelegateoverlay.h:215
Definition importoverlays.h:49
QWidget * createWidget() override
Definition importoverlays.cpp:52
void updatePosition()
Definition importoverlays.cpp:74
void setActive(bool active) override
Definition importoverlays.cpp:61
bool checkIndex(const QModelIndex &index) const override
Definition importoverlays.cpp:89
ImportOverlayWidget * buttonWidget() const
Definition importoverlays.cpp:47
void slotEntered(const QModelIndex &index) override
Definition importoverlays.cpp:105
void visualChange() override
Definition importoverlays.cpp:66
QPersistentModelIndex m_index
Definition importoverlays.h:70
Definition importoverlays.h:103
void updatePosition()
Definition importoverlays.cpp:217
void setActive(bool active) override
Definition importoverlays.cpp:204
void visualChange() override
Definition importoverlays.cpp:209
void slotEntered(const QModelIndex &index) override
Definition importoverlays.cpp:257
QWidget * createWidget() override
Definition importoverlays.cpp:195
bool checkIndex(const QModelIndex &index) const override
Definition importoverlays.cpp:232
ImportOverlayWidget * buttonWidget() const
Definition importoverlays.cpp:190
QPersistentModelIndex m_index
Definition importoverlays.h:124
Definition importoverlays.h:76
void visualChange() override
Definition importoverlays.cpp:138
void setActive(bool active) override
Definition importoverlays.cpp:133
void updatePosition()
Definition importoverlays.cpp:146
bool checkIndex(const QModelIndex &index) const override
Definition importoverlays.cpp:161
QWidget * createWidget() override
Definition importoverlays.cpp:124
QPersistentModelIndex m_index
Definition importoverlays.h:97
ImportOverlayWidget * buttonWidget() const
Definition importoverlays.cpp:119
void slotEntered(const QModelIndex &index) override
Definition importoverlays.cpp:176
Definition importoverlays.h:34
void paintEvent(QPaintEvent *) override
Definition importoverlays.cpp:36
Definition importoverlays.h:130
void updateRating()
Definition importoverlays.cpp:357
QPersistentModelIndex m_index
Definition importoverlays.h:163
void slotEntered(const QModelIndex &index) override
Definition importoverlays.cpp:376
void setActive(bool) override
Definition importoverlays.cpp:285
void slotRatingChanged(int)
Definition importoverlays.cpp:368
void hide() override
Definition importoverlays.cpp:329
RatingWidget * ratingWidget() const
Definition importoverlays.cpp:271
void slotDataChanged(const QModelIndex &, const QModelIndex &)
Definition importoverlays.cpp:396
void ratingEdited(const QList< QModelIndex > &indexes, int rating)
void updatePosition()
Definition importoverlays.cpp:335
void widgetLeaveEvent() override
Definition importoverlays.cpp:324
void visualChange() override
Definition importoverlays.cpp:311
QWidget * createWidget() override
Definition importoverlays.cpp:276
void widgetEnterEvent() override
Definition importoverlays.cpp:319
Definition importoverlays.h:175
QIcon icon() override
Definition importoverlays.cpp:418
QSize sizeHint() const override
Definition importoverlays.cpp:413
void updateToolTip() override
Definition importoverlays.cpp:430
ImportRotateOverlayDirection const m_direction
Definition importoverlays.h:190
Definition importoverlays.h:196
void updateButton(const QModelIndex &index) override
Definition importoverlays.cpp:466
bool checkIndex(const QModelIndex &index) const override
Definition importoverlays.cpp:487
bool isRight() const
Definition importoverlays.h:206
static ImportRotateOverlay * right(QObject *const parent)
Definition importoverlays.h:209
void widgetLeaveEvent() override
Definition importoverlays.cpp:499
static ImportRotateOverlay * left(QObject *const parent)
Definition importoverlays.h:208
void widgetEnterEvent() override
Definition importoverlays.cpp:494
bool isLeft() const
Definition importoverlays.h:205
ItemViewHoverButton * createButton() override
Definition importoverlays.cpp:461
void signalRotate(const QList< QModelIndex > &indexes)
void setActive(bool active) override
Definition importoverlays.cpp:450
ImportRotateOverlayDirection direction() const
Definition importoverlays.h:204
Definition itemviewhoverbutton.h:32
NOTE: Some reuse of the existing model-view classes.
Definition itemviewimportdelegate.h:36
Definition ratingwidget.h:36
#define REQUIRE_DELEGATE(Delegate)
Definition itemdelegateoverlay.h:102
Definition datefolderview.cpp:34
ImportRotateOverlayDirection
Definition importoverlays.h:169
@ ImportRotateOverlayLeft
Definition importoverlays.h:170
@ ImportRotateOverlayRight
Definition importoverlays.h:171