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 TITLE_H
9#define TITLE_H
10
11#include "kcontacts_export.h"
12
13#include <QMap>
14#include <QSharedDataPointer>
15#include <QString>
16
17class TitleTest;
18
19namespace KContacts
20{
21class ParameterMap;
22
23/** @short Class that holds a Title for a contact.
24 * @since 5.3
25 */
26class KCONTACTS_EXPORT Title
27{
28 friend KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &, const Title &);
29 friend KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &, Title &);
30 friend class VCardTool;
31 friend class ::TitleTest;
32
33public:
34 Title();
35 Title(const Title &other);
36 Title(const QString &title);
37
38 ~Title();
39
40 typedef QList<Title> List;
41
42 void setTitle(const QString &title);
43 Q_REQUIRED_RESULT QString title() const;
44
45 Q_REQUIRED_RESULT bool isValid() const;
46
47 Q_REQUIRED_RESULT bool operator==(const Title &other) const;
48 Q_REQUIRED_RESULT bool operator!=(const Title &other) const;
49
50 Title &operator=(const Title &other);
51
52 Q_REQUIRED_RESULT QString toString() const;
53
54private:
55 // exported for TitleTest
56 void setParams(const ParameterMap &params);
57 Q_REQUIRED_RESULT ParameterMap params() const;
58
59 class Private;
60 QSharedDataPointer<Private> d;
61};
62KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &stream, const Title &object);
63
64KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &stream, Title &object);
65}
66Q_DECLARE_TYPEINFO(KContacts::Title, Q_RELOCATABLE_TYPE);
67#endif // TITLE_H
68

source code of kcontacts/src/title.h