File indexing completed on 2024-10-27 04:51:03

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "folderarchiveaccountinfo.h"
0008 
0009 FolderArchiveAccountInfo::FolderArchiveAccountInfo() = default;
0010 
0011 FolderArchiveAccountInfo::FolderArchiveAccountInfo(const KConfigGroup &config)
0012 {
0013     readConfig(config);
0014 }
0015 
0016 FolderArchiveAccountInfo::~FolderArchiveAccountInfo() = default;
0017 
0018 bool FolderArchiveAccountInfo::isValid() const
0019 {
0020     return (mArchiveTopLevelCollectionId > -1) && (!mInstanceName.isEmpty());
0021 }
0022 
0023 void FolderArchiveAccountInfo::setFolderArchiveType(FolderArchiveAccountInfo::FolderArchiveType type)
0024 {
0025     mArchiveType = type;
0026 }
0027 
0028 FolderArchiveAccountInfo::FolderArchiveType FolderArchiveAccountInfo::folderArchiveType() const
0029 {
0030     return mArchiveType;
0031 }
0032 
0033 void FolderArchiveAccountInfo::setArchiveTopLevel(Akonadi::Collection::Id id)
0034 {
0035     mArchiveTopLevelCollectionId = id;
0036 }
0037 
0038 Akonadi::Collection::Id FolderArchiveAccountInfo::archiveTopLevel() const
0039 {
0040     return mArchiveTopLevelCollectionId;
0041 }
0042 
0043 QString FolderArchiveAccountInfo::instanceName() const
0044 {
0045     return mInstanceName;
0046 }
0047 
0048 void FolderArchiveAccountInfo::setInstanceName(const QString &instance)
0049 {
0050     mInstanceName = instance;
0051 }
0052 
0053 void FolderArchiveAccountInfo::setEnabled(bool enabled)
0054 {
0055     mEnabled = enabled;
0056 }
0057 
0058 bool FolderArchiveAccountInfo::enabled() const
0059 {
0060     return mEnabled;
0061 }
0062 
0063 void FolderArchiveAccountInfo::setKeepExistingStructure(bool b)
0064 {
0065     mKeepExistingStructure = b;
0066 }
0067 
0068 bool FolderArchiveAccountInfo::keepExistingStructure() const
0069 {
0070     return mKeepExistingStructure;
0071 }
0072 
0073 void FolderArchiveAccountInfo::readConfig(const KConfigGroup &config)
0074 {
0075     mInstanceName = config.readEntry(QStringLiteral("instanceName"));
0076     mArchiveTopLevelCollectionId = config.readEntry(QStringLiteral("topLevelCollectionId"), -1);
0077     mArchiveType = static_cast<FolderArchiveType>(config.readEntry("folderArchiveType", (int)UniqueFolder));
0078     mEnabled = config.readEntry("enabled", false);
0079     mKeepExistingStructure = config.readEntry("keepExistingStructure", false);
0080     mUseDateFromMessage = config.readEntry("useDateFromMessage", false);
0081 }
0082 
0083 void FolderArchiveAccountInfo::writeConfig(KConfigGroup &config)
0084 {
0085     config.writeEntry(QStringLiteral("instanceName"), mInstanceName);
0086     if (mArchiveTopLevelCollectionId > -1) {
0087         config.writeEntry(QStringLiteral("topLevelCollectionId"), mArchiveTopLevelCollectionId);
0088     } else {
0089         config.deleteEntry(QStringLiteral("topLevelCollectionId"));
0090     }
0091 
0092     config.writeEntry(QStringLiteral("folderArchiveType"), (int)mArchiveType);
0093     config.writeEntry(QStringLiteral("enabled"), mEnabled);
0094     config.writeEntry("keepExistingStructure", mKeepExistingStructure);
0095     config.writeEntry("useDateFromMessage", mUseDateFromMessage);
0096 }
0097 
0098 bool FolderArchiveAccountInfo::operator==(const FolderArchiveAccountInfo &other) const
0099 {
0100     return (mInstanceName == other.instanceName()) && (mArchiveTopLevelCollectionId == other.archiveTopLevel()) && (mArchiveType == other.folderArchiveType())
0101         && (mEnabled == other.enabled()) && (mKeepExistingStructure == other.keepExistingStructure()) && (mUseDateFromMessage == other.useDateFromMessage());
0102 }
0103 
0104 bool FolderArchiveAccountInfo::useDateFromMessage() const
0105 {
0106     return mUseDateFromMessage;
0107 }
0108 
0109 void FolderArchiveAccountInfo::setUseDateFromMessage(bool newUseDateFromMessage)
0110 {
0111     mUseDateFromMessage = newUseDateFromMessage;
0112 }