digiKam
Loading...
Searching...
No Matches
itemposition.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 : 2007-11-01
7 * Description : Access item position stored in database.
8 *
9 * SPDX-FileCopyrightText: 2007-2009 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2008 by Patrick Spendrin <ps_ml at gmx dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QString>
22#include <QSharedDataPointer>
23#include <QSharedData>
24
25// Local includes
26
27#include "digikam_export.h"
28#include "coredbfields.h"
29
30namespace Digikam
31{
32
33class CoreDbAccess;
34class ItemPositionPriv;
35
36class DIGIKAM_DATABASE_EXPORT ItemPosition
37{
38
39public:
40
45
50 explicit ItemPosition(qlonglong imageId);
51 ItemPosition(const CoreDbAccess& access, qlonglong imageId);
52
53 ItemPosition(const ItemPosition& other);
55
56 ItemPosition& operator=(const ItemPosition& other);
57
58 bool isNull() const;
65 bool isEmpty() const;
66
73 QString latitude() const;
74 QString longitude() const;
75
83 double latitudeNumber() const;
84 double longitudeNumber() const;
85
90 QString latitudeFormatted() const;
91 QString longitudeFormatted() const;
92
100 bool latitudeUserPresentableNumbers(int* degrees, int* minutes, double* seconds, char* directionReference);
101 bool longitudeUserPresentableNumbers(int* degrees, int* minutes, double* seconds, char* directionReference);
102
106 double altitude() const;
107
111 QString altitudeFormatted() const;
112 double orientation() const;
113 double tilt() const;
114 double roll() const;
115 double accuracy() const;
116 QString description() const;
117
118 bool hasCoordinates() const;
119 bool hasAltitude() const;
120 bool hasOrientation() const;
121 bool hasTilt() const;
122 bool hasRoll() const;
123 bool hasAccuracy() const;
124
129 bool setLatitude(const QString& latitude);
130 bool setLongitude(const QString& longitude);
131
137 bool setLatitude(double latitudeNumber);
138 bool setLongitude(double longitudeNumber);
139
143 void setAltitude(double altitude);
144 void setOrientation(double orientation);
145 void setTilt(double tilt);
146 void setRoll(double roll);
147 void setAccuracy(double accuracy);
148 void setDescription(const QString& description);
149
154 void apply();
155
162 void remove();
163
168 void removeAltitude();
169
170private:
171
172 QSharedDataPointer<ItemPositionPriv> d;
173};
174
175} // namespace Digikam
Definition coredbaccess.h:46
Definition itemposition.h:37
Definition datefolderview.cpp:34