File indexing completed on 2024-06-23 05:18:34

0001 /*
0002   SPDX-FileCopyrightText: 2023 Daniel Vrátil <dvratil@kde.org>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QString>
0010 #include <memory>
0011 
0012 #include "messagecomposer_export.h"
0013 #include "messagepart.h"
0014 
0015 namespace MessageComposer
0016 {
0017 /**
0018  * @brief The ItipPart class
0019  */
0020 class MESSAGECOMPOSER_EXPORT ItipPart : public MessagePart
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(QString invitation READ invitation WRITE setInvitation NOTIFY invitationChanged)
0024     Q_PROPERTY(QString invitationBody READ invitationBody WRITE setInvitationBody NOTIFY invitationBodyChanged)
0025     Q_PROPERTY(bool outlookConformInvitation READ outlookConformInvitation WRITE setOutlookConformInvitation NOTIFY outlookConformInvitationChanged)
0026     Q_PROPERTY(QString method READ method WRITE setMethod NOTIFY methodChanged)
0027 
0028 public:
0029     explicit ItipPart(QObject *parent = nullptr);
0030     ~ItipPart() override;
0031 
0032     [[nodiscard]] QString method() const;
0033     void setMethod(const QString &method);
0034 
0035     [[nodiscard]] QString invitation() const;
0036     void setInvitation(const QString &invitation);
0037 
0038     [[nodiscard]] QString invitationBody() const;
0039     void setInvitationBody(const QString &invitationBody);
0040 
0041     // default false
0042     [[nodiscard]] bool outlookConformInvitation() const;
0043     void setOutlookConformInvitation(bool enabled);
0044 
0045 Q_SIGNALS:
0046     void methodChanged();
0047     void invitationChanged();
0048     void invitationBodyChanged();
0049     void outlookConformInvitationChanged();
0050 
0051 private:
0052     class ItipPartPrivate;
0053     std::unique_ptr<ItipPartPrivate> const d;
0054 };
0055 }