digiKam
Loading...
Searching...
No Matches
focuspointgroup.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 : 28/08/2021
7 * Description : Managing of focus point items on a GraphicsDImgView
8 *
9 * SPDX-FileCopyrightText: 2021-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2021 by Phuoc Khanh Le <phuockhanhnk94 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 <QObject>
21#include <QPointF>
22#include <QGraphicsWidget>
23#include <QGraphicsSceneHoverEvent>
24
25// Local includes
26
27#include "assignnamewidget.h"
28#include "regionframeitem.h"
29#include "addtagscombobox.h"
30#include "albummodel.h"
31#include "albumfiltermodel.h"
32#include "albummanager.h"
34#include "dimgpreviewitem.h"
35#include "graphicsdimgview.h"
36#include "iteminfo.h"
37#include "taggingaction.h"
38#include "metadatahub.h"
39#include "tagregion.h"
40#include "digikam_debug.h"
42
43
44namespace Digikam
45{
46
47class Album;
48class ItemInfo;
49class GraphicsDImgView;
50class RegionFrameItem;
51class TaggingAction;
52
53class FocusPointGroup : public QObject
54{
55 Q_OBJECT
56 Q_PROPERTY(bool visible READ isVisible WRITE setVisible)
57
58public:
59
60 explicit FocusPointGroup(GraphicsDImgView* const view);
61 ~FocusPointGroup() override;
62
63 bool isVisible() const;
64 ItemInfo info() const;
65 bool hasVisibleItems() const;
66
67 QList<RegionFrameItem*> items() const;
68
69 void leaveEvent(QEvent*);
70
71public:
72
73 bool isAllowedToAddFocusPoint() const;
74
75public Q_SLOTS:
76
80 void setVisible(bool visible);
81 void setVisibleItem(RegionFrameItem* const item);
82
86 void setInfo(const ItemInfo& info);
87
88 void addPoint();
89
91
92protected:
93
94 void load();
95 void clear();
96/*
97 void applyItemGeometryChanges();
98*/
99
100protected Q_SLOTS:
101
102 void itemStateChanged(int);
103 void slotAlbumsUpdated(int type);
104
105 void slotAddItemStarted(const QPointF& pos);
106 void slotAddItemMoving(const QRectF& rect);
107 void slotAddItemFinished(const QRectF& rect);
108 void slotCancelAddItem();
109
110private:
111
112 // Disable
113 FocusPointGroup() = delete;
114 FocusPointGroup(const FocusPointGroup&) = delete;
115 FocusPointGroup& operator=(const FocusPointGroup&) = delete;
116
117private:
118
119 class Private;
120 Private* const d = nullptr;
121};
122
123} // namespace Digikam
Definition focuspointgroup_p.h:36
Definition focuspointgroup.h:54
void leaveEvent(QEvent *)
Definition focuspointgroup.cpp:146
bool isVisible() const
Definition focuspointgroup.cpp:74
bool hasVisibleItems() const
Definition focuspointgroup.cpp:79
void slotAlbumsUpdated(int type)
Definition focuspointgroup.cpp:217
ItemInfo info() const
Definition focuspointgroup.cpp:84
void setVisibleItem(RegionFrameItem *const item)
Definition focuspointgroup.cpp:114
void itemStateChanged(int)
Definition focuspointgroup.cpp:49
void slotAddItemMoving(const QRectF &rect)
Definition focuspointgroup.cpp:284
void clear()
Definition focuspointgroup.cpp:203
QList< RegionFrameItem * > items() const
Definition focuspointgroup.cpp:89
void slotAddItemStarted(const QPointF &pos)
Definition focuspointgroup.cpp:279
void setInfo(const ItemInfo &info)
Definition focuspointgroup.cpp:120
void setVisible(bool visible)
Definition focuspointgroup.cpp:101
void slotCancelAddItem()
Definition focuspointgroup.cpp:330
void load()
Definition focuspointgroup.cpp:154
bool isAllowedToAddFocusPoint() const
Definition focuspointgroup.cpp:343
void slotAddItemFinished(const QRectF &rect)
Definition focuspointgroup.cpp:298
bool visible
Definition focuspointgroup.h:56
void addPoint()
Definition focuspointgroup.cpp:254
~FocusPointGroup() override
Definition focuspointgroup.cpp:44
void aboutToSetInfoAfterRotate(const ItemInfo &info)
Definition focuspointgroup.cpp:136
Definition graphicsdimgview.h:34
Definition iteminfo.h:68
Definition regionframeitem.h:33
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34