File indexing completed on 2024-11-10 04:40:41
0001 /* 0002 SPDX-FileCopyrightText: 2008 Kevin Krammer <kevin.krammer@gmx.at> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "itemfetchscope.h" 0008 0009 #include "itemfetchscope_p.h" 0010 0011 using namespace Akonadi; 0012 0013 ItemFetchScope::ItemFetchScope() 0014 : d(new ItemFetchScopePrivate()) 0015 { 0016 } 0017 0018 ItemFetchScope::ItemFetchScope(const ItemFetchScope &other) 0019 : d(other.d) 0020 { 0021 } 0022 0023 ItemFetchScope::~ItemFetchScope() 0024 { 0025 } 0026 0027 ItemFetchScope &ItemFetchScope::operator=(const ItemFetchScope &other) 0028 { 0029 if (&other != this) { 0030 d = other.d; 0031 } 0032 0033 return *this; 0034 } 0035 0036 QSet<QByteArray> ItemFetchScope::payloadParts() const 0037 { 0038 return d->mPayloadParts; 0039 } 0040 0041 void ItemFetchScope::fetchPayloadPart(const QByteArray &part, bool fetch) 0042 { 0043 if (fetch) { 0044 d->mPayloadParts.insert(part); 0045 } else { 0046 d->mPayloadParts.remove(part); 0047 } 0048 } 0049 0050 bool ItemFetchScope::fullPayload() const 0051 { 0052 return d->mFullPayload; 0053 } 0054 0055 void ItemFetchScope::fetchFullPayload(bool fetch) 0056 { 0057 d->mFullPayload = fetch; 0058 } 0059 0060 QSet<QByteArray> ItemFetchScope::attributes() const 0061 { 0062 return d->mAttributes; 0063 } 0064 0065 void ItemFetchScope::fetchAttribute(const QByteArray &type, bool fetch) 0066 { 0067 if (fetch) { 0068 d->mAttributes.insert(type); 0069 } else { 0070 d->mAttributes.remove(type); 0071 } 0072 } 0073 0074 bool ItemFetchScope::allAttributes() const 0075 { 0076 return d->mAllAttributes; 0077 } 0078 0079 void ItemFetchScope::fetchAllAttributes(bool fetch) 0080 { 0081 d->mAllAttributes = fetch; 0082 } 0083 0084 bool ItemFetchScope::isEmpty() const 0085 { 0086 return d->mPayloadParts.isEmpty() && d->mAttributes.isEmpty() && !d->mFullPayload && !d->mAllAttributes && !d->mCacheOnly 0087 && !d->mCheckCachedPayloadPartsOnly && d->mFetchMtime // true by default -> false = non-empty 0088 && !d->mIgnoreRetrievalErrors && d->mFetchRid // true by default 0089 && !d->mFetchGid && !d->mFetchTags && !d->mFetchVRefs && !d->mFetchRelations && d->mAncestorDepth == AncestorRetrieval::None; 0090 } 0091 0092 bool ItemFetchScope::cacheOnly() const 0093 { 0094 return d->mCacheOnly; 0095 } 0096 0097 void ItemFetchScope::setCacheOnly(bool cacheOnly) 0098 { 0099 d->mCacheOnly = cacheOnly; 0100 } 0101 0102 void ItemFetchScope::setCheckForCachedPayloadPartsOnly(bool check) 0103 { 0104 if (check) { 0105 setCacheOnly(true); 0106 } 0107 d->mCheckCachedPayloadPartsOnly = check; 0108 } 0109 0110 bool ItemFetchScope::checkForCachedPayloadPartsOnly() const 0111 { 0112 return d->mCheckCachedPayloadPartsOnly; 0113 } 0114 0115 ItemFetchScope::AncestorRetrieval ItemFetchScope::ancestorRetrieval() const 0116 { 0117 return d->mAncestorDepth; 0118 } 0119 0120 void ItemFetchScope::setAncestorRetrieval(AncestorRetrieval depth) 0121 { 0122 d->mAncestorDepth = depth; 0123 } 0124 0125 void ItemFetchScope::setFetchModificationTime(bool retrieveMtime) 0126 { 0127 d->mFetchMtime = retrieveMtime; 0128 } 0129 0130 bool ItemFetchScope::fetchModificationTime() const 0131 { 0132 return d->mFetchMtime; 0133 } 0134 0135 void ItemFetchScope::setFetchGid(bool retrieveGid) 0136 { 0137 d->mFetchGid = retrieveGid; 0138 } 0139 0140 bool ItemFetchScope::fetchGid() const 0141 { 0142 return d->mFetchGid; 0143 } 0144 0145 void ItemFetchScope::setIgnoreRetrievalErrors(bool ignore) 0146 { 0147 d->mIgnoreRetrievalErrors = ignore; 0148 } 0149 0150 bool ItemFetchScope::ignoreRetrievalErrors() const 0151 { 0152 return d->mIgnoreRetrievalErrors; 0153 } 0154 0155 void ItemFetchScope::setFetchChangedSince(const QDateTime &changedSince) 0156 { 0157 d->mChangedSince = changedSince; 0158 } 0159 0160 QDateTime ItemFetchScope::fetchChangedSince() const 0161 { 0162 return d->mChangedSince; 0163 } 0164 0165 void ItemFetchScope::setFetchRemoteIdentification(bool retrieveRid) 0166 { 0167 d->mFetchRid = retrieveRid; 0168 } 0169 0170 bool ItemFetchScope::fetchRemoteIdentification() const 0171 { 0172 return d->mFetchRid; 0173 } 0174 0175 void ItemFetchScope::setFetchTags(bool fetchTags) 0176 { 0177 d->mFetchTags = fetchTags; 0178 } 0179 0180 bool ItemFetchScope::fetchTags() const 0181 { 0182 return d->mFetchTags; 0183 } 0184 0185 void ItemFetchScope::setTagFetchScope(const TagFetchScope &tagFetchScope) 0186 { 0187 d->mTagFetchScope = tagFetchScope; 0188 } 0189 0190 TagFetchScope &ItemFetchScope::tagFetchScope() 0191 { 0192 return d->mTagFetchScope; 0193 } 0194 0195 TagFetchScope ItemFetchScope::tagFetchScope() const 0196 { 0197 return d->mTagFetchScope; 0198 } 0199 0200 void ItemFetchScope::setFetchVirtualReferences(bool fetchVRefs) 0201 { 0202 d->mFetchVRefs = fetchVRefs; 0203 } 0204 0205 bool ItemFetchScope::fetchVirtualReferences() const 0206 { 0207 return d->mFetchVRefs; 0208 } 0209 0210 void ItemFetchScope::setFetchRelations(bool fetchRelations) 0211 { 0212 d->mFetchRelations = fetchRelations; 0213 } 0214 0215 bool ItemFetchScope::fetchRelations() const 0216 { 0217 return d->mFetchRelations; 0218 }