digiKam
Loading...
Searching...
No Matches
itemrotationoverlay.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 : 2009-05-31
7 * Description : rotate icon view item at mouse hover
8 *
9 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QAbstractItemView>
20
21// Local includes
22
23#include "itemviewhoverbutton.h"
24#include "itemdelegateoverlay.h"
25
26namespace Digikam
27{
28
34
36{
37 Q_OBJECT
38
39public:
40
41 ItemRotateOverlayButton(ItemRotateOverlayDirection dir, QAbstractItemView* const parentView);
42 QSize sizeHint() const override;
43
44protected:
45
46 QIcon icon() override;
47 void updateToolTip() override;
48
49protected:
50
52};
53
54// --------------------------------------------------------------------
55
57{
58 Q_OBJECT
59
60public:
61
62 ItemRotateOverlay(ItemRotateOverlayDirection dir, QObject* const parent);
63 void setActive(bool active) override;
64
66
67 bool isLeft() const;
68 bool isRight() const;
69
70 static ItemRotateOverlay* left(QObject* const parent);
71 static ItemRotateOverlay* right(QObject* const parent);
72
73Q_SIGNALS:
74
75 void signalRotate(const QList<QModelIndex>& indexes);
76
77protected:
78
80 void updateButton(const QModelIndex& index) override;
81 bool checkIndex(const QModelIndex& index) const override;
82 void widgetEnterEvent() override;
83 void widgetLeaveEvent() override;
84
85private Q_SLOTS:
86
87 void slotClicked();
88
89private:
90
91 ItemRotateOverlayDirection const m_direction;
92};
93
94} // namespace Digikam
Definition itemdelegateoverlay.h:215
Definition itemrotationoverlay.h:36
void updateToolTip() override
Definition itemrotationoverlay.cpp:54
QSize sizeHint() const override
Definition itemrotationoverlay.cpp:37
QIcon icon() override
Definition itemrotationoverlay.cpp:42
ItemRotateOverlayDirection const m_direction
Definition itemrotationoverlay.h:51
Definition itemrotationoverlay.h:57
ItemRotateOverlayDirection direction() const
Definition itemrotationoverlay.cpp:139
bool isRight() const
Definition itemrotationoverlay.cpp:149
static ItemRotateOverlay * right(QObject *const parent)
Definition itemrotationoverlay.cpp:159
ItemViewHoverButton * createButton() override
Definition itemrotationoverlay.cpp:87
void updateButton(const QModelIndex &index) override
Definition itemrotationoverlay.cpp:92
void setActive(bool active) override
Definition itemrotationoverlay.cpp:74
static ItemRotateOverlay * left(QObject *const parent)
Definition itemrotationoverlay.cpp:154
void widgetLeaveEvent() override
Definition itemrotationoverlay.cpp:134
bool checkIndex(const QModelIndex &index) const override
Definition itemrotationoverlay.cpp:119
void signalRotate(const QList< QModelIndex > &indexes)
bool isLeft() const
Definition itemrotationoverlay.cpp:144
void widgetEnterEvent() override
Definition itemrotationoverlay.cpp:129
Definition itemviewhoverbutton.h:32
Definition datefolderview.cpp:34
ItemRotateOverlayDirection
Definition itemrotationoverlay.h:30
@ ItemRotateOverlayRight
Definition itemrotationoverlay.h:32
@ ItemRotateOverlayLeft
Definition itemrotationoverlay.h:31