digiKam
Loading...
Searching...
No Matches
facegroup_p.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-17
7 * Description : Managing of face tag region items on a GraphicsDImgView
8 *
9 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
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#include "facegroup.h"
19
20// Qt includes
21
22#include <QGraphicsSceneHoverEvent>
23#include <QTimer>
24
25// Local includes
26
27#include "assignnamewidget_p.h"
28#include "digikam_debug.h"
29#include "addtagscombobox.h"
30#include "albummodel.h"
31#include "albumfiltermodel.h"
32#include "albummanager.h"
34#include "dimgpreviewitem.h"
35#include "facepipeline.h"
36#include "faceitem.h"
37#include "facetags.h"
38#include "faceutils.h"
39#include "facetagseditor.h"
40#include "graphicsdimgview.h"
41#include "iteminfo.h"
42#include "taggingaction.h"
43#include "metaenginesettings.h"
45
46namespace Digikam
47{
48
54
55//-------------------------------------------------------------------------------
56
57class Q_DECL_HIDDEN FaceGroup::Private
58{
59public:
60
61 explicit Private(FaceGroup* const qq);
62
63 void applyVisible();
64 FaceItem* createItem(const FaceTagsIface& face);
65 FaceItem* addItem(const FaceTagsIface& face);
66 AssignNameWidget* createAssignNameWidget(const FaceTagsIface& face,
67 const QVariant& identifier);
68 AssignNameWidget::Mode assignWidgetMode(FaceTagsIface::Type type);
69 void checkModels();
70 QList<QGraphicsItem*> hotItems(const QPointF& scenePos);
71
72public:
73
78 const qreal MaxMouseDistance = 25.0;
79
83 const int MaxFaceListSize = 5;
84
85public:
86
87 GraphicsDImgView* view = nullptr;
89 bool exifRotate = true;
90 bool autoSuggest = false;
91 bool showOnHover = false;
92
93 QList<FaceItem*> items;
94
95 ClickDragReleaseItem* manuallyAddWrapItem = nullptr;
96 FaceItem* manuallyAddedItem = nullptr;
97
99 ItemVisibilityController* visibilityController = nullptr;
100
101 TagModel* tagModel = nullptr;
102 CheckableAlbumFilterModel* filterModel = nullptr;
103 TagPropertiesFilterModel* filteredModel = nullptr;
104
106
107 FaceGroup* const q = nullptr;
108};
109
110} // namespace Digikam
Definition assignnamewidget.h:38
Mode
Definition assignnamewidget.h:48
Definition albumfiltermodel.h:284
Definition clickdragreleaseitem.h:29
Definition facegroup_p.h:58
ItemInfo info
Definition facegroup_p.h:88
FacePipeline editPipeline
Definition facegroup_p.h:105
QList< FaceItem * > items
Definition facegroup_p.h:93
Definition facegroup.h:35
Definition faceitem.h:34
Definition facepipeline.h:28
Definition facetagsiface.h:34
Type
Definition facetagsiface.h:38
Definition graphicsdimgview.h:34
Definition iteminfo.h:68
Definition itemvisibilitycontroller.h:34
Definition albummodel.h:57
Definition albumfiltermodel.h:366
Definition datefolderview.cpp:34
FaceGroupState
Definition facegroup_p.h:50
@ FacesLoaded
Definition facegroup_p.h:52
@ NoFaces
Definition facegroup_p.h:51