digiKam
Loading...
Searching...
No Matches
tagregion.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-08-26
7 * Description : Tag region formatting
8 *
9 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2011-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 <QRect>
21#include <QString>
22#include <QVariant>
23#include <QDebug>
24
25// Local includes
26
27#include "digikam_export.h"
28
29
30namespace Digikam
31{
32
33class DImg;
34
35class DIGIKAM_EXPORT TagRegion
36{
37
38public:
39
40 enum Type
41 {
43 Rect
44 };
45
46public:
47
57 TagRegion() = default;
58
62 explicit TagRegion(const QString& descriptor);
63
67 explicit TagRegion(const QRect& rect);
68
69 Type type() const;
70 bool isValid() const;
71
72 bool operator==(const TagRegion& other) const;
73
74 bool operator!=(const TagRegion& other) const;
75
79 QString toXml() const;
80
84 QRect toRect() const;
85
89 QVariant toVariant() const;
90 static TagRegion fromVariant(const QVariant& var);
91
101 bool intersects(const TagRegion& other, double fraction = 0);
102
106 static QRect mapToOriginalSize(const QSize& fullImageSize, const QSize& reducedImageSize, const QRect& reducedSizeDetail);
107 static QRect mapFromOriginalSize(const QSize& fullImageSize, const QSize& reducedImageSize, const QRect& fullSizeDetail);
108
112 static QRect mapToOriginalSize(const DImg& reducedSizeImage, const QRect& reducedSizeDetail);
113 static QRect mapFromOriginalSize(const DImg& reducedSizeImage, const QRect& fullSizeDetail);
114
118 static QRect relativeToAbsolute(const QRectF& region, const QSize& fullSize);
119
123 static QRect relativeToAbsolute(const QRectF& region, const DImg& reducedSizeImage);
124
129 static QRectF absoluteToRelative(const QRect& region, const QSize& fullSize);
130
135 static QSize adjustToOrientation(QRect& region, int orientation, const QSize& fullSize);
136
141 static void reverseToOrientation(QRect& region, int orientation, const QSize& fullSize);
142
143protected:
144
145 QVariant m_value;
146 Type m_type = Invalid;
147};
148
149QDebug DIGIKAM_EXPORT operator<<(QDebug dbg, const TagRegion& r);
150
151} // namespace Digikam
Definition dimg.h:52
Definition tagregion.h:36
QVariant m_value
Definition tagregion.h:145
Type
Definition tagregion.h:41
@ Invalid
Definition tagregion.h:42
Definition datefolderview.cpp:34
QDebug operator<<(QDebug dbg, const DbEngineParameters &p)
Definition dbengineparameters.cpp:930
bool operator==(const SearchTextSettings &a, const SearchTextSettings &b)
Definition searchtextbar.cpp:40