1/*
2 This file is part of the KContacts framework.
3 SPDX-FileCopyrightText: 2016-2019 Laurent Montel <montel@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#ifndef FIELDGROUP_H
9#define FIELDGROUP_H
10
11#include "kcontacts_export.h"
12
13#include <QMap>
14#include <QSharedDataPointer>
15#include <QString>
16
17class FieldGroupTest;
18
19namespace KContacts
20{
21class ParameterMap;
22
23/** @short Class that holds a FieldGroup for a contact.
24 * @since 5.3
25 */
26class KCONTACTS_EXPORT FieldGroup
27{
28 friend KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &, const FieldGroup &);
29 friend KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &, FieldGroup &);
30 friend class VCardTool;
31 friend class ::FieldGroupTest;
32
33public:
34 FieldGroup();
35 FieldGroup(const FieldGroup &other);
36 FieldGroup(const QString &fieldGroupName);
37
38 ~FieldGroup();
39
40 typedef QList<FieldGroup> List;
41
42 void setFieldGroupName(const QString &fieldGroup);
43 Q_REQUIRED_RESULT QString fieldGroupName() const;
44
45 Q_REQUIRED_RESULT bool isValid() const;
46
47 void setValue(const QString &value);
48 Q_REQUIRED_RESULT QString value() const;
49
50 Q_REQUIRED_RESULT bool operator==(const FieldGroup &other) const;
51 Q_REQUIRED_RESULT bool operator!=(const FieldGroup &other) const;
52
53 FieldGroup &operator=(const FieldGroup &other);
54
55 Q_REQUIRED_RESULT QString toString() const;
56
57private:
58 void setParams(const ParameterMap &params);
59 Q_REQUIRED_RESULT ParameterMap params() const;
60
61 class Private;
62 QSharedDataPointer<Private> d;
63};
64KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &stream, const FieldGroup &object);
65
66KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &stream, FieldGroup &object);
67}
68Q_DECLARE_TYPEINFO(KContacts::FieldGroup, Q_RELOCATABLE_TYPE);
69#endif // FIELDGROUP_H
70

source code of kcontacts/src/fieldgroup.h