Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_meta_data_value.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6#ifndef _KIS_META_DATA_VALUE_H_
7#define _KIS_META_DATA_VALUE_H_
8
9#include <QList>
10#include <QMap>
11
12#include <kritametadata_export.h>
13#include <boost/operators.hpp>
14
15class QVariant;
16
17namespace KisMetaData
18{
19
20struct Rational : public boost::equality_comparable<Rational>
21{
22 explicit Rational(qint32 n = 0, qint32 d = 1) : numerator(n), denominator(d) {}
23 qint32 numerator;
25 bool operator==(const Rational& ur) const {
26 return numerator == ur.numerator && denominator == ur.denominator;
27 }
28};
29
34class KRITAMETADATA_EXPORT Value
35{
36 struct Private;
37public:
49public:
50 Value();
51 Value(const QVariant& value);
56 Value(const QList<Value>& array, ValueType type = OrderedArray);
57 Value(const QMap<QString, Value>& structure);
58 Value(const KisMetaData::Rational& rational);
59 Value(const Value& v);
60 Value& operator=(const Value& v);
61 ~Value();
62public:
63 void addPropertyQualifier(const QString& _name, const Value&);
64 const QMap<QString, Value>& propertyQualifiers() const;
65public:
67 ValueType type() const;
71 double asDouble() const;
75 int asInteger() const;
79 QVariant asVariant() const;
84 bool setVariant(const QVariant& variant);
85 bool setStructureVariant(const QString& fieldNAme, const QVariant& variant);
86 bool setArrayVariant(int index, const QVariant& variant);
91 KisMetaData::Rational asRational() const;
96 QList<KisMetaData::Value> asArray() const;
100 bool isArray() const;
104 QMap<QString, KisMetaData::Value> asStructure() const;
109 QMap<QString, KisMetaData::Value> asLangArray() const;
110 QString toString() const;
111public:
112 bool operator==(const Value&) const;
113 Value& operator+=(const Value&);
114private:
115 Private* const d;
116};
117}
118
119
120KRITAMETADATA_EXPORT QDebug operator<<(QDebug debug, const KisMetaData::Value &v);
121
122#endif
float value(const T *src, size_t ch)
qreal v
bool operator==(const KisRegion &lhs, const KisRegion &rhs)
const QMap< QString, Value > & propertyQualifiers() const
Value(const KisMetaData::Rational &rational)
ValueType
Define the possible value type.
Value(const QVariant &value)
ValueType type() const
KRITAMETADATA_EXPORT QDebug operator<<(QDebug debug, const KisMetaData::Value &v)
bool operator==(const Rational &ur) const
Rational(qint32 n=0, qint32 d=1)