Krita Source Code Documentation
Loading...
Searching...
No Matches
KoID.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2006 Thomas Zander <zander@kde.org>
3 * SPDX-FileCopyrightText: 2004 Cyrille Berger <cberger@cberger.net>
4 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
5 * SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
6 *
7 * SPDX-License-Identifier: LGPL-2.0-or-later
8 */
9
10#ifndef _KO_ID_H_
11#define _KO_ID_H_
12
13#include <QDebug>
14#include <QMetaType>
15#include <QString>
16
17#include <boost/optional.hpp>
18#include <utility>
19
20#include <klocalizedstring.h>
21#include <KisLazyStorage.h>
22
23#include "kritaglobal_export.h"
24
29class KRITAGLOBAL_EXPORT KoID
30{
31private:
32 struct TranslatedString : public QString
33 {
34 TranslatedString(const boost::optional<KLocalizedString> &source);
35
36 TranslatedString(const QString &value);
37 };
38
41 boost::optional<KLocalizedString>>;
42
43 struct KoIDPrivate {
44 KoIDPrivate(QString _id, const KLocalizedString &_name);
45
46 KoIDPrivate(QString _id, const QString &_name);
47
48 QString id;
50 };
51
52public:
53 KoID();
54
64 explicit KoID(const QString &id, const QString &name = QString());
65
72 explicit KoID(const QString &id, const KLocalizedString &name);
73
74 KoID(const KoID &rhs);
75
76 KoID &operator=(const KoID &rhs);
77
78 QString id() const;
79
80 QString name() const;
81
82 friend inline bool operator==(const KoID &, const KoID &);
83 friend inline bool operator!=(const KoID &, const KoID &);
84 friend inline bool operator<(const KoID &, const KoID &);
85 friend inline bool operator>(const KoID &, const KoID &);
86
87 static bool compareNames(const KoID &id1, const KoID &id2)
88 {
89 return id1.name() < id2.name();
90 }
91
92private:
94};
95
97
98inline bool operator==(const KoID &v1, const KoID &v2)
99{
100 return v1.m_d == v2.m_d || v1.m_d->id == v2.m_d->id;
101}
102
103inline bool operator!=(const KoID &v1, const KoID &v2)
104{
105 return !(v1 == v2);
106}
107
108inline bool operator<(const KoID &v1, const KoID &v2)
109{
110 return v1.m_d->id < v2.m_d->id;
111}
112
113inline bool operator>(const KoID &v1, const KoID &v2)
114{
115 return v1.m_d->id > v2.m_d->id;;
116}
117
118inline QDebug operator<<(QDebug dbg, const KoID &id)
119{
120 dbg.nospace() << id.name() << " (" << id.id() << " )";
121
122 return dbg.space();
123}
124
125#endif
float value(const T *src, size_t ch)
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
bool operator==(const KisRegion &lhs, const KisRegion &rhs)
QDebug operator<<(QDebug dbg, const KoID &id)
Definition KoID.h:118
bool operator!=(const KoID &v1, const KoID &v2)
Definition KoID.h:103
bool operator>(const KoID &v1, const KoID &v2)
Definition KoID.h:113
bool operator<(const KoID &v1, const KoID &v2)
Definition KoID.h:108
bool operator<(KoSnapStrategy::SnapType lhs, KoSnapStrategy::SnapType rhs)
Definition KoID.h:30
QString name() const
Definition KoID.cpp:68
QSharedPointer< KoIDPrivate > m_d
Definition KoID.h:93
static bool compareNames(const KoID &id1, const KoID &id2)
Definition KoID.h:87
Q_DECLARE_METATYPE(KisPaintopLodLimitations)
QString id
Definition KoID.h:48
StorageType name
Definition KoID.h:49