File indexing completed on 2024-12-08 10:25:50

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "retentioninfo.h"
0008 #include <QJsonObject>
0009 
0010 RetentionInfo::RetentionInfo() = default;
0011 
0012 bool RetentionInfo::isNotDefault() const
0013 {
0014     return mEnabled || mExcludePinned || mFilesOnly || mOverrideGlobal || (mMaxAge != -1);
0015 }
0016 
0017 void RetentionInfo::parseRetentionInfo(const QJsonObject &replyObject)
0018 {
0019     mEnabled = replyObject.value(QLatin1String("enabled")).toBool(false);
0020     mExcludePinned = replyObject.value(QLatin1String("excludePinned")).toBool(false);
0021     mFilesOnly = replyObject.value(QLatin1String("filesOnly")).toBool(false);
0022     mOverrideGlobal = replyObject.value(QLatin1String("overrideGlobal")).toBool(false);
0023     mMaxAge = replyObject.value(QLatin1String("maxAge")).toInt(-1);
0024 }
0025 
0026 bool RetentionInfo::enabled() const
0027 {
0028     return mEnabled;
0029 }
0030 
0031 void RetentionInfo::setEnabled(bool enabled)
0032 {
0033     mEnabled = enabled;
0034 }
0035 
0036 bool RetentionInfo::overrideGlobal() const
0037 {
0038     return mOverrideGlobal;
0039 }
0040 
0041 void RetentionInfo::setOverrideGlobal(bool overrideGlobal)
0042 {
0043     mOverrideGlobal = overrideGlobal;
0044 }
0045 
0046 bool RetentionInfo::excludePinned() const
0047 {
0048     return mExcludePinned;
0049 }
0050 
0051 void RetentionInfo::setExcludePinned(bool excludePinned)
0052 {
0053     mExcludePinned = excludePinned;
0054 }
0055 
0056 bool RetentionInfo::filesOnly() const
0057 {
0058     return mFilesOnly;
0059 }
0060 
0061 void RetentionInfo::setFilesOnly(bool filesOnly)
0062 {
0063     mFilesOnly = filesOnly;
0064 }
0065 
0066 int RetentionInfo::maxAge() const
0067 {
0068     return mMaxAge;
0069 }
0070 
0071 void RetentionInfo::setMaxAge(int maxAge)
0072 {
0073     mMaxAge = maxAge;
0074 }
0075 
0076 bool RetentionInfo::operator==(RetentionInfo other) const
0077 {
0078     return mMaxAge == other.maxAge() && mEnabled == other.enabled() && mOverrideGlobal == other.overrideGlobal() && mExcludePinned == other.excludePinned()
0079         && mFilesOnly == other.filesOnly();
0080 }
0081 
0082 bool RetentionInfo::operator!=(RetentionInfo other) const
0083 {
0084     return !RetentionInfo::operator==(other);
0085 }
0086 
0087 QJsonObject RetentionInfo::serialize(RetentionInfo retention)
0088 {
0089     QJsonObject obj;
0090     obj[QLatin1String("enabled")] = retention.enabled();
0091     obj[QLatin1String("overrideGlobal")] = retention.overrideGlobal();
0092     obj[QLatin1String("excludePinned")] = retention.excludePinned();
0093     obj[QLatin1String("filesOnly")] = retention.filesOnly();
0094     obj[QLatin1String("maxAge")] = retention.maxAge();
0095     return obj;
0096 }
0097 
0098 RetentionInfo RetentionInfo::deserialize(const QJsonObject &obj)
0099 {
0100     RetentionInfo info;
0101     info.setEnabled(obj[QLatin1String("enabled")].toBool());
0102     info.setOverrideGlobal(obj[QLatin1String("overrideGlobal")].toBool());
0103     info.setExcludePinned(obj[QLatin1String("excludePinned")].toBool());
0104     info.setFilesOnly(obj[QLatin1String("filesOnly")].toBool());
0105     info.setMaxAge(obj[QLatin1String("maxAge")].toInt(-1));
0106 
0107     return info;
0108 }
0109 
0110 QDebug operator<<(QDebug d, RetentionInfo t)
0111 {
0112     d << "Enabled " << t.enabled();
0113     d << "overrideGlobal " << t.overrideGlobal();
0114     d << "excludePinned " << t.excludePinned();
0115     d << "filesOnly " << t.filesOnly();
0116     d << "maxAge " << t.maxAge();
0117     return d;
0118 }