1 /* 2 SPDX-FileCopyrightText: 2010 Tobias Koenig <tokoe@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "akonadi-contact_export.h" 10 11 #include <KJob> 12 13 #include <memory> 14 15 namespace Akonadi 16 { 17 class OpenEmailAddressJobPrivate; 18 19 /** 20 * @short A job to open the contact editor for a contact with a given email address. 21 * 22 * The job will check whether a contact with the given email address already 23 * exists in Akonadi. If not, it will add a new contact with the email address 24 * to Akonadi and then opens the contact editor. 25 */ 26 class AKONADI_CONTACT_EXPORT OpenEmailAddressJob : public KJob 27 { 28 Q_OBJECT 29 30 public: 31 /** 32 * Creates a new open email address job. 33 * 34 * @param email The email address to open. 35 * @param parentWidget The widget that will be used as parent for dialog. 36 * @param parent The parent object. 37 */ 38 explicit OpenEmailAddressJob(const QString &email, QWidget *parentWidget, QObject *parent = nullptr); 39 40 /** 41 * Destroys the open email address job. 42 */ 43 ~OpenEmailAddressJob() override; 44 45 /** 46 * Starts the job. 47 */ 48 void start() override; 49 50 private: 51 //@cond PRIVATE 52 friend class OpenEmailAddressJobPrivate; 53 std::unique_ptr<OpenEmailAddressJobPrivate> const d; 54 //@endcond 55 }; 56 } 57 58