1/****************************************************************************
2**
3** Copyright (C) 2015 The Qt Company Ltd.
4** Contact: http://www.qt.io/licensing/
5**
6** This file is part of the QtVersit module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL21$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see http://www.qt.io/terms-conditions. For further
15** information use the contact form at http://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 2.1 or version 3 as published by the Free
20** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22** following information to ensure the GNU Lesser General Public License
23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25**
26** As a special exception, The Qt Company gives you certain additional
27** rights. These rights are described in The Qt Company LGPL Exception
28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29**
30** $QT_END_LICENSE$
31**
32****************************************************************************/
33
34#ifndef QVERSITCONTACTIMPORTER_H
35#define QVERSITCONTACTIMPORTER_H
36
37#include <QtCore/qlist.h>
38#include <QtCore/qmap.h>
39
40#include <QtContacts/qcontact.h>
41#include <QtContacts/qcontactdetail.h>
42
43#include <QtVersit/qversitdocument.h>
44#include <QtVersit/qversitresourcehandler.h>
45
46QTCONTACTS_USE_NAMESPACE
47
48QT_BEGIN_NAMESPACE_VERSIT
49
50class QVersitProperty;
51
52class QVersitContactImporterPrivate;
53
54class Q_VERSIT_EXPORT QVersitContactImporterPropertyHandler
55{
56public:
57 virtual ~QVersitContactImporterPropertyHandler() {}
58 virtual bool preProcessProperty(const QVersitDocument& document,
59 const QVersitProperty& property,
60 int contactIndex,
61 QContact* contact) = 0;
62 virtual bool postProcessProperty(const QVersitDocument& document,
63 const QVersitProperty& property,
64 bool alreadyProcessed,
65 int contactIndex,
66 QContact* contact) = 0;
67};
68
69class Q_VERSIT_EXPORT QVersitContactImporterPropertyHandlerV2
70{
71public:
72 virtual ~QVersitContactImporterPropertyHandlerV2() {}
73 virtual void propertyProcessed(const QVersitDocument& document,
74 const QVersitProperty& property,
75 const QContact& contact,
76 bool *alreadyProcessed,
77 QList<QContactDetail>* updatedDetails) = 0;
78 virtual void documentProcessed(const QVersitDocument& document,
79 QContact* contact) = 0;
80};
81
82class Q_VERSIT_EXPORT QVersitContactImporter
83{
84public:
85 enum Error {
86 NoError = 0,
87 InvalidDocumentError,
88 EmptyDocumentError
89 };
90
91 QVersitContactImporter();
92 explicit QVersitContactImporter(const QString& profile);
93 explicit QVersitContactImporter(const QStringList& profiles);
94 ~QVersitContactImporter();
95
96 bool importDocuments(const QList<QVersitDocument>& documents);
97 QList<QContact> contacts() const;
98 QMap<int, Error> errorMap() const;
99
100 void setPropertyHandler(QVersitContactImporterPropertyHandlerV2* handler);
101
102 void setResourceHandler(QVersitResourceHandler* handler);
103 QVersitResourceHandler* resourceHandler() const;
104
105 /* deprecated */
106 QMap<int, Error> errors() const;
107 void setPropertyHandler(QVersitContactImporterPropertyHandler* handler);
108 QVersitContactImporterPropertyHandler* propertyHandler() const;
109
110private:
111 QVersitContactImporterPrivate* d;
112};
113
114QT_END_NAMESPACE_VERSIT
115
116#endif // QVERSITCONTACTIMPORTER_H
117
118

source code of qtpim/src/versit/qversitcontactimporter.h