digiKam
Loading...
Searching...
No Matches
regionframeitem.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-09-09
7 * Description : tag region frame
8 *
9 * SPDX-FileCopyrightText: 2007 by Aurelien Gateau <agateau at kde dot org>
10 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QFlags>
21
22// Local includes
23
24#include "dimgchilditem.h"
25#include "digikam_export.h"
26
27class QWidget;
28
29namespace Digikam
30{
31
32class DIGIKAM_EXPORT RegionFrameItem : public DImgChildItem // clazy:exclude=ctor-missing-parent-argument
33{
34 Q_OBJECT
35
36public:
37
38 enum Flag
39 {
40 NoFlags = 0,
41 ShowResizeHandles = 1 << 0,
42 MoveByDrag = 1 << 1,
43
44 GeometryEditable = ShowResizeHandles | MoveByDrag
45 };
46 Q_DECLARE_FLAGS(Flags, Flag)
47
48public:
49
50 explicit RegionFrameItem(QGraphicsItem* const parent);
51 ~RegionFrameItem() override;
52
53 void setFlags(Flags flags);
54 void changeFlags(Flags flags, bool addOrRemove);
55 Flags flags() const;
56
63 void setHudWidget(QGraphicsWidget* const hudWidget);
64 void setHudWidget(QWidget* const widget, Qt::WindowFlags wFlags = Qt::WindowFlags());
65 QGraphicsWidget* hudWidget() const;
66 void setHudWidgetVisible(bool visible);
67
68 void setFixedRatio(double ratio);
69
70 void setRectInSceneCoordinatesAdjusted(const QRectF& rect);
71
72public Q_SLOTS:
73
81 void setViewportRect(const QRectF& rect);
82
83Q_SIGNALS:
84
86
87protected:
88
89 void paint(QPainter* painter,
90 const QStyleOptionGraphicsItem* option,
91 QWidget* widget = nullptr) override;
92 void mousePressEvent(QGraphicsSceneMouseEvent*) override;
93 void mouseMoveEvent(QGraphicsSceneMouseEvent*) override;
94 void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override;
95 void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
96 void hoverMoveEvent(QGraphicsSceneHoverEvent* event) override;
97 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
98
99 bool eventFilter(QObject* watched, QEvent* event) override;
100
101private Q_SLOTS:
102
103 void slotUpdate();
104 void slotSizeChanged();
105 void slotPosChanged();
106 void hudSizeChanged();
107 void moveHudWidget();
108
109private:
110
111 // Disable
113
114private:
115
116 class Private;
117 Private* const d = nullptr;
118};
119
120} // namespace Digikam
121
122Q_DECLARE_OPERATORS_FOR_FLAGS(Digikam::RegionFrameItem::Flags)
Definition dimgchilditem.h:31
Definition regionframeitem.h:33
Flag
Definition regionframeitem.h:39
Definition datefolderview.cpp:34