1/*
2 This file is part of libkabc.
3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/
20
21#ifndef KABC_VCARDTOOL_H
22#define KABC_VCARDTOOL_H
23
24#include "kabc_export.h"
25#include "addressee.h"
26#include "vcardparser/vcardparser.h"
27
28class QDateTime;
29
30namespace KABC {
31
32class Key;
33class Picture;
34class Secrecy;
35class Sound;
36
37class KABC_EXPORT VCardTool
38{
39 public:
40 VCardTool();
41 ~VCardTool();
42
43 /**
44 Creates a string that contains the addressees from the list in
45 the vCard format.
46 */
47 QByteArray createVCards( const Addressee::List &list,
48 VCard::Version version = VCard::v3_0 ) const;
49
50 /**
51 * since 4.9.1
52 */
53 QByteArray exportVCards( const Addressee::List &list,
54 VCard::Version version = VCard::v3_0 ) const;
55 /**
56 Parses the string and returns a list of addressee objects.
57 */
58 Addressee::List parseVCards( const QByteArray &vcard ) const;
59
60 private:
61
62 QByteArray createVCards( const Addressee::List &list,
63 VCard::Version version, bool exportVcard ) const;
64
65 /**
66 Split a string and replaces escaped separators on the fly with
67 unescaped ones.
68 */
69 QStringList splitString( const QChar &sep, const QString &value ) const;
70
71 QDateTime parseDateTime( const QString &str ) const;
72 QString createDateTime( const QDateTime &dateTime ) const;
73
74 Picture parsePicture( const VCardLine &line ) const;
75 VCardLine createPicture( const QString &identifier, const Picture &pic ) const;
76
77 Sound parseSound( const VCardLine &line ) const;
78 VCardLine createSound( const Sound &snd ) const;
79
80 Key parseKey( const VCardLine &line ) const;
81 VCardLine createKey( const Key &key ) const;
82
83 Secrecy parseSecrecy( const VCardLine &line ) const;
84 VCardLine createSecrecy( const Secrecy &secrecy ) const;
85
86 QMap<QString, Address::TypeFlag> mAddressTypeMap;
87 QMap<QString, PhoneNumber::TypeFlag> mPhoneTypeMap;
88
89 class VCardToolPrivate;
90 VCardToolPrivate *d;
91};
92
93}
94
95#endif
96