File indexing completed on 2024-06-23 05:18:37
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <Akonadi/Item> 0010 #include <QDateTime> 0011 0012 #include "messagecomposer_export.h" 0013 0014 namespace MessageComposer 0015 { 0016 /** Send later information. */ 0017 class MESSAGECOMPOSER_EXPORT SendLaterInfo 0018 { 0019 public: 0020 explicit SendLaterInfo() = default; 0021 0022 enum RecurrenceUnit { 0023 Days = 0, 0024 Weeks, 0025 Months, 0026 Years, 0027 }; 0028 0029 [[nodiscard]] bool isValid() const; 0030 0031 void setItemId(Akonadi::Item::Id id); 0032 [[nodiscard]] Akonadi::Item::Id itemId() const; 0033 0034 void setRecurrenceUnit(RecurrenceUnit unit); 0035 [[nodiscard]] RecurrenceUnit recurrenceUnit() const; 0036 0037 void setRecurrenceEachValue(int value); 0038 [[nodiscard]] int recurrenceEachValue() const; 0039 0040 [[nodiscard]] bool isRecurrence() const; 0041 void setRecurrence(bool b); 0042 0043 void setDateTime(const QDateTime &time); 0044 [[nodiscard]] QDateTime dateTime() const; 0045 0046 void setLastDateTimeSend(const QDateTime &date); 0047 [[nodiscard]] QDateTime lastDateTimeSend() const; 0048 0049 void setSubject(const QString &subject); 0050 [[nodiscard]] QString subject() const; 0051 0052 void setTo(const QString &to); 0053 [[nodiscard]] QString to() const; 0054 0055 bool operator==(const SendLaterInfo &other) const; 0056 inline bool operator!=(const SendLaterInfo &other) const 0057 { 0058 return !(*this == other); 0059 } 0060 0061 private: 0062 QString mTo; 0063 QString mSubject; 0064 QDateTime mDateTime; 0065 QDateTime mLastDateTimeSend; 0066 Akonadi::Item::Id mId = -1; 0067 int mRecurrenceEachValue = 1; 0068 RecurrenceUnit mRecurrenceUnit = Days; 0069 bool mRecurrence = false; 0070 }; 0071 } 0072 0073 MESSAGECOMPOSER_EXPORT QDebug operator<<(QDebug debug, const MessageComposer::SendLaterInfo &info);