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 }