File indexing completed on 2025-02-16 03:43:19
0001 /* 0002 SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 SPDX-FileCopyrightText: 2015 Martin Klapetek <mklapetek@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #ifndef KPEOPLEVCARD_H 0009 #define KPEOPLEVCARD_H 0010 0011 #include <KDirWatch> 0012 #include <KPeopleBackend/AbstractContact> 0013 #include <KPeopleBackend/AbstractEditableContact> 0014 #include <KPeopleBackend/AllContactsMonitor> 0015 #include <KPeopleBackend/BasePersonsDataSource> 0016 0017 class QFileInfo; 0018 0019 class KPeopleVCard : public KPeople::AllContactsMonitor 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 KPeopleVCard(); 0025 ~KPeopleVCard() override; 0026 0027 QMap<QString, KPeople::AbstractContact::Ptr> contacts() override; 0028 static QString contactsVCardPath(); 0029 static QString contactsVCardWritePath(); 0030 0031 private: 0032 void processVCard(const QString &path); 0033 void deleteVCard(const QString &path); 0034 void processDirectory(const QFileInfo &fi); 0035 0036 QMap<QString, KPeople::AbstractContact::Ptr> m_contactForUri; 0037 KDirWatch *m_fs; 0038 }; 0039 0040 class VCardDataSource : public KPeople::BasePersonsDataSourceV2 0041 { 0042 public: 0043 VCardDataSource(QObject *parent, const QVariantList &data); 0044 ~VCardDataSource() override; 0045 QString sourcePluginId() const override; 0046 0047 KPeople::AllContactsMonitor *createAllContactsMonitor() override; 0048 bool addContact(const QVariantMap &properties) override; 0049 bool deleteContact(const QString &uri) override; 0050 }; 0051 0052 #endif