1 | /* |
2 | This file is part of the KContacts framework. |
3 | |
4 | SPDX-FileCopyrightText: 2002-2010 Tobias Koenig <tokoe@kde.org> |
5 | |
6 | SPDX-License-Identifier: LGPL-2.0-or-later |
7 | */ |
8 | |
9 | #ifndef KCONTACTS_VCARDDRAG_H |
10 | #define KCONTACTS_VCARDDRAG_H |
11 | |
12 | #include "kcontacts_export.h" |
13 | |
14 | #include <QMimeData> |
15 | #include <kcontacts/addressee.h> |
16 | |
17 | namespace KContacts |
18 | { |
19 | /** |
20 | @brief Utility function for implementing drag&drop for vCards |
21 | |
22 | See the Qt drag'n'drop documentation. |
23 | |
24 | @since 4.5 |
25 | */ |
26 | namespace VCardDrag |
27 | { |
28 | /** |
29 | Adds the vCard representation as data of the drag object. |
30 | |
31 | @param md the object to set the data on |
32 | @param content the vCard data to set |
33 | |
34 | @return Always @c true |
35 | */ |
36 | KCONTACTS_EXPORT bool populateMimeData(QMimeData *md, const QByteArray &content); |
37 | |
38 | /** |
39 | Adds the vCard representation as data of the drag object. |
40 | |
41 | @param md the object to set the data on |
42 | @param contacts list of Addressee objects to serialize to vCard |
43 | |
44 | @return @c true if serializing of the given list worked, otherwise @c false |
45 | |
46 | @see VCardConverter::createVCards() |
47 | */ |
48 | KCONTACTS_EXPORT bool populateMimeData(QMimeData *md, const KContacts::Addressee::List &contacts); |
49 | |
50 | /** |
51 | Returns if drag&drop object can be decoded to vCard. |
52 | |
53 | @param md the object to check for vCard data |
54 | |
55 | @return @c true if the given data object contains a vCard MIME type, otherwise @c false |
56 | */ |
57 | KCONTACTS_EXPORT bool canDecode(const QMimeData *md); |
58 | |
59 | /** |
60 | Decodes the drag&drop object to vCard component @p content. |
61 | |
62 | @param md the object to check for vCard data |
63 | @param content where to put the vCard data from @p md |
64 | |
65 | @return @c true if there was data for the vCard MIME type, otherwise @c false |
66 | |
67 | @see canDecode() |
68 | */ |
69 | KCONTACTS_EXPORT bool fromMimeData(const QMimeData *md, QByteArray &content); |
70 | |
71 | /** |
72 | Decodes the MIME data @p md and puts the resulting vCard into @p contacts. |
73 | |
74 | @param md the object to check for vCard data |
75 | @param contacts where to put the parsed vCards from @p md |
76 | |
77 | @return @c true if there was data for the vCard MIME type and it could be parsed successfully, |
78 | otherwise @c false |
79 | |
80 | @see canDecode() |
81 | */ |
82 | KCONTACTS_EXPORT bool fromMimeData(const QMimeData *md, KContacts::Addressee::List &contacts); |
83 | } |
84 | } |
85 | |
86 | #endif // VCARDDRAG_H |
87 | |