File indexing completed on 2024-04-28 09:19:56
0001 /* 0002 * SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QImage> 0010 #include <QObject> 0011 0012 #include <KContacts/Addressee> 0013 #include <KContacts/Email> 0014 #include <KContacts/Impp> 0015 #include <KContacts/PhoneNumber> 0016 #include <KContacts/Picture> 0017 0018 #include <KSharedConfig> 0019 #include <memory> 0020 0021 class QFileDialog; 0022 class QQuickWindow; 0023 0024 class ContactController : public QObject 0025 { 0026 Q_OBJECT 0027 0028 Q_PROPERTY(QString lastPersonUri READ lastPersonUri WRITE setLastPersonUri NOTIFY lastPersonUriChanged) 0029 0030 public: 0031 ContactController(); 0032 0033 QString lastPersonUri() const; 0034 void setLastPersonUri(const QString &lastPersonUri); 0035 0036 Q_INVOKABLE void saveWindowGeometry(QQuickWindow *window); 0037 Q_INVOKABLE KContacts::Addressee addresseeFromVCard(const QByteArray &vcard); 0038 Q_INVOKABLE QByteArray addresseeToVCard(const KContacts::Addressee &addressee); 0039 Q_INVOKABLE KContacts::Addressee emptyAddressee(); 0040 Q_INVOKABLE KContacts::Picture preparePhoto(const QUrl &url); 0041 Q_INVOKABLE KContacts::Email createEmail(const QString &email); 0042 Q_INVOKABLE KContacts::PhoneNumber createPhoneNumber(const QString &number); 0043 Q_INVOKABLE KContacts::Impp createImpp(const QString &address); 0044 0045 Q_SIGNALS: 0046 void lastPersonUriChanged(); 0047 0048 private: 0049 KConfig m_dataResource; 0050 };