digiKam
Loading...
Searching...
No Matches
iteminfo_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 : 2005-04-21
7 * Description : Handling access to one item and associated data - private
8 *
9 * SPDX-FileCopyrightText: 2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2007-2013 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20#include "iteminfo.h"
21
22// Qt includes
23
24#include <QFile>
25#include <QFileInfo>
26#include <QHash>
27
28// Local includes
29
30#include "digikam_debug.h"
31#include "digikam_globals.h"
32#include "coredb.h"
33#include "coredbaccess.h"
36#include "dimagehistory.h"
37#include "collectionmanager.h"
38#include "collectionlocation.h"
39#include "iteminfodata.h"
40#include "iteminfocache.h"
41#include "itemlister.h"
42#include "itemlisterrecord.h"
43#include "iteminfolist.h"
44#include "itemcomments.h"
45#include "itemcopyright.h"
47#include "itemposition.h"
48#include "itemscanner.h"
49#include "itemtagpair.h"
50#include "facetagseditor.h"
51#include "tagscache.h"
52#include "template.h"
53#include "thumbnailinfo.h"
54#include "photoinfocontainer.h"
55#include "videoinfocontainer.h"
56
57namespace Digikam
58{
59
60MetadataInfo::Field DatabaseVideoMetadataFieldsToMetadataInfoField(const DatabaseFields::VideoMetadata videoMetadataField);
61MetadataInfo::Field DatabaseImageMetadataFieldsToMetadataInfoField(const DatabaseFields::ImageMetadata imageMetadataField);
62
63#define RETURN_IF_CACHED(x) \
64 \
65 { \
66 ItemInfoReadLocker lock; \
67 \
68 if (m_data->x##Cached) \
69 { \
70 return m_data->x; \
71 } \
72 }
73
74#define RETURN_ASPECTRATIO_IF_IMAGESIZE_CACHED() \
75 \
76 { \
77 ItemInfoReadLocker lock; \
78 \
79 if (m_data->imageSizeCached) \
80 { \
81 return (double)m_data->imageSize.width() / \
82 m_data->imageSize.height(); \
83 } \
84 }
85
86#define STORE_IN_CACHE_AND_RETURN(x, retrieveMethod) \
87 \
88 { \
89 ItemInfoWriteLocker lock; \
90 \
91 if (!values.isEmpty()) \
92 { \
93 m_data.data()->x##Cached = true; \
94 m_data.data()->x = retrieveMethod; \
95 } \
96 \
97 return m_data->x; \
98 }
99
100} // namespace Digikam
Field
Definition metadatainfo.h:83
Definition datefolderview.cpp:34
MetadataInfo::Field DatabaseImageMetadataFieldsToMetadataInfoField(const DatabaseFields::ImageMetadata imageMetadataField)
Definition iteminfo_p.cpp:73
MetadataInfo::Field DatabaseVideoMetadataFieldsToMetadataInfoField(const DatabaseFields::VideoMetadata videoMetadataField)
Definition iteminfo_p.cpp:23