File indexing completed on 2025-02-09 06:21:08

0001 /*
0002    SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "followupreminderinfo.h"
0007 
0008 #include <KConfigGroup>
0009 using namespace FollowUpReminder;
0010 
0011 FollowUpReminderInfo::FollowUpReminderInfo() = default;
0012 
0013 FollowUpReminderInfo::FollowUpReminderInfo(const KConfigGroup &config)
0014 {
0015     readConfig(config);
0016 }
0017 
0018 FollowUpReminderInfo::FollowUpReminderInfo(const FollowUpReminderInfo &info)
0019     : mOriginalMessageItemId(info.originalMessageItemId())
0020     , mAnswerMessageItemId(info.answerMessageItemId())
0021     , mTodoId(info.todoId())
0022     , mMessageId(info.messageId())
0023     , mFollowUpReminderDate(info.followUpReminderDate())
0024     , mTo(info.to())
0025     , mSubject(info.subject())
0026     , mUniqueIdentifier(info.uniqueIdentifier())
0027     , mAnswerWasReceived(info.answerWasReceived())
0028 {
0029 }
0030 
0031 void FollowUpReminderInfo::readConfig(const KConfigGroup &config)
0032 {
0033     if (config.hasKey(QStringLiteral("followUpReminderDate"))) {
0034         mFollowUpReminderDate = QDate::fromString(config.readEntry("followUpReminderDate"), Qt::ISODate);
0035     }
0036     mOriginalMessageItemId = config.readEntry("itemId", -1);
0037     mMessageId = config.readEntry("messageId", QString());
0038     mTo = config.readEntry("to", QString());
0039     mSubject = config.readEntry("subject", QString());
0040     mAnswerWasReceived = config.readEntry("answerWasReceived", false);
0041     mAnswerMessageItemId = config.readEntry("answerMessageItemId", -1);
0042     mTodoId = config.readEntry("todoId", -1);
0043     mUniqueIdentifier = config.readEntry("identifier", -1);
0044 }
0045 
0046 qint32 FollowUpReminderInfo::uniqueIdentifier() const
0047 {
0048     return mUniqueIdentifier;
0049 }
0050 
0051 void FollowUpReminderInfo::setUniqueIdentifier(qint32 uniqueIdentifier)
0052 {
0053     mUniqueIdentifier = uniqueIdentifier;
0054 }
0055 
0056 Akonadi::Item::Id FollowUpReminderInfo::answerMessageItemId() const
0057 {
0058     return mAnswerMessageItemId;
0059 }
0060 
0061 void FollowUpReminderInfo::setAnswerMessageItemId(Akonadi::Item::Id answerMessageId)
0062 {
0063     mAnswerMessageItemId = answerMessageId;
0064 }
0065 
0066 bool FollowUpReminderInfo::answerWasReceived() const
0067 {
0068     return mAnswerWasReceived;
0069 }
0070 
0071 void FollowUpReminderInfo::setAnswerWasReceived(bool answerWasReceived)
0072 {
0073     mAnswerWasReceived = answerWasReceived;
0074 }
0075 
0076 QString FollowUpReminderInfo::subject() const
0077 {
0078     return mSubject;
0079 }
0080 
0081 void FollowUpReminderInfo::setSubject(const QString &subject)
0082 {
0083     mSubject = subject;
0084 }
0085 
0086 void FollowUpReminderInfo::writeConfig(KConfigGroup &config, qint32 identifier)
0087 {
0088     if (mFollowUpReminderDate.isValid()) {
0089         config.writeEntry("followUpReminderDate", mFollowUpReminderDate.toString(Qt::ISODate));
0090     }
0091     setUniqueIdentifier(identifier);
0092     config.writeEntry("messageId", mMessageId);
0093     config.writeEntry("itemId", mOriginalMessageItemId);
0094     config.writeEntry("to", mTo);
0095     config.writeEntry("subject", mSubject);
0096     config.writeEntry("answerWasReceived", mAnswerWasReceived);
0097     config.writeEntry("answerMessageItemId", mAnswerMessageItemId);
0098     config.writeEntry("todoId", mTodoId);
0099     config.writeEntry("identifier", identifier);
0100     config.sync();
0101 }
0102 
0103 Akonadi::Item::Id FollowUpReminderInfo::originalMessageItemId() const
0104 {
0105     return mOriginalMessageItemId;
0106 }
0107 
0108 void FollowUpReminderInfo::setOriginalMessageItemId(Akonadi::Item::Id value)
0109 {
0110     mOriginalMessageItemId = value;
0111 }
0112 
0113 Akonadi::Item::Id FollowUpReminderInfo::todoId() const
0114 {
0115     return mTodoId;
0116 }
0117 
0118 void FollowUpReminderInfo::setTodoId(Akonadi::Item::Id value)
0119 {
0120     mTodoId = value;
0121 }
0122 
0123 bool FollowUpReminderInfo::isValid() const
0124 {
0125     return !mMessageId.isEmpty() && mFollowUpReminderDate.isValid() && !mTo.isEmpty();
0126 }
0127 
0128 QString FollowUpReminderInfo::messageId() const
0129 {
0130     return mMessageId;
0131 }
0132 
0133 void FollowUpReminderInfo::setMessageId(const QString &messageId)
0134 {
0135     mMessageId = messageId;
0136 }
0137 
0138 void FollowUpReminderInfo::setTo(const QString &to)
0139 {
0140     mTo = to;
0141 }
0142 
0143 QString FollowUpReminderInfo::to() const
0144 {
0145     return mTo;
0146 }
0147 
0148 QDate FollowUpReminderInfo::followUpReminderDate() const
0149 {
0150     return mFollowUpReminderDate;
0151 }
0152 
0153 void FollowUpReminderInfo::setFollowUpReminderDate(QDate followUpReminderDate)
0154 {
0155     mFollowUpReminderDate = followUpReminderDate;
0156 }
0157 
0158 bool FollowUpReminderInfo::operator==(const FollowUpReminderInfo &other) const
0159 {
0160     return mOriginalMessageItemId == other.originalMessageItemId() && mMessageId == other.messageId() && mTo == other.to()
0161         && mFollowUpReminderDate == other.followUpReminderDate() && mSubject == other.subject() && mAnswerWasReceived == other.answerWasReceived()
0162         && mAnswerMessageItemId == other.answerMessageItemId() && mUniqueIdentifier == other.uniqueIdentifier() && mTodoId == other.todoId();
0163 }
0164 
0165 QDebug operator<<(QDebug d, const FollowUpReminderInfo &other)
0166 {
0167     d << "mOriginalMessageItemId: " << other.originalMessageItemId();
0168     d << "mMessageId: " << other.messageId();
0169     d << "mTo: " << other.to();
0170     d << "mFollowUpReminderDate: " << other.followUpReminderDate();
0171     d << "mSubject: " << other.subject();
0172     d << "mAnswerWasReceived: " << other.answerWasReceived();
0173     d << "mAnswerMessageItemId: " << other.answerMessageItemId();
0174     d << "mUniqueIdentifier: " << other.uniqueIdentifier();
0175     d << "mTodoId: " << other.todoId();
0176 
0177     return d;
0178 }