File indexing completed on 2025-03-16 08:32:47
0001 /* 0002 SPDX-FileCopyrightText: 2008, 2009, 2012 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 #include "KGpgNode.h" 0007 0008 #include "KGpgGroupMemberNode.h" 0009 #include "KGpgGroupNode.h" 0010 #include "KGpgOrphanNode.h" 0011 #include "KGpgRootNode.h" 0012 #include "KGpgSubkeyNode.h" 0013 #include "KGpgUatNode.h" 0014 #include "KGpgUidNode.h" 0015 #include "model/kgpgitemmodel.h" 0016 0017 #include <KLocalizedString> 0018 0019 KGpgNode::KGpgNode(KGpgExpandableNode *parent) 0020 : QObject(), m_parent(parent) 0021 { 0022 if (parent == nullptr) 0023 m_model = nullptr; 0024 else 0025 m_model = parent->m_model; 0026 } 0027 0028 KGpgNode::~KGpgNode() 0029 { 0030 Q_ASSERT(m_model); 0031 m_model->invalidateIndexes(this); 0032 0033 if (m_parent != nullptr) 0034 m_parent->deleteChild(this); 0035 } 0036 0037 QString 0038 KGpgNode::getNameComment() const 0039 { 0040 if (getComment().isEmpty()) 0041 return getName(); 0042 else 0043 return i18nc("Name of uid (comment)", "%1 (%2)", getName(), getComment()); 0044 } 0045 0046 KGpgExpandableNode * 0047 KGpgNode::toExpandableNode() 0048 { 0049 Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && !(getType() & KgpgCore::ITYPE_PAIR)) || 0050 (getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT))); 0051 0052 return qobject_cast<KGpgExpandableNode *>(this); 0053 } 0054 0055 const KGpgExpandableNode * 0056 KGpgNode::toExpandableNode() const 0057 { 0058 Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && !(getType() & KgpgCore::ITYPE_PAIR)) || 0059 (getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT))); 0060 0061 return qobject_cast<const KGpgExpandableNode *>(this); 0062 } 0063 0064 KGpgSignableNode * 0065 KGpgNode::toSignableNode() 0066 { 0067 Q_ASSERT(getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT)); 0068 0069 return qobject_cast<KGpgSignableNode *>(this); 0070 } 0071 0072 const KGpgSignableNode * 0073 KGpgNode::toSignableNode() const 0074 { 0075 Q_ASSERT(getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT)); 0076 0077 return qobject_cast<const KGpgSignableNode *>(this); 0078 } 0079 0080 KGpgKeyNode * 0081 KGpgNode::toKeyNode() 0082 { 0083 Q_ASSERT(getType() & KgpgCore::ITYPE_PAIR); 0084 Q_ASSERT(!(getType() & KgpgCore::ITYPE_GROUP)); 0085 0086 return qobject_cast<KGpgKeyNode *>(this); 0087 } 0088 0089 const KGpgKeyNode * 0090 KGpgNode::toKeyNode() const 0091 { 0092 Q_ASSERT(getType() & KgpgCore::ITYPE_PAIR); 0093 Q_ASSERT(!(getType() & KgpgCore::ITYPE_GROUP)); 0094 0095 return qobject_cast<const KGpgKeyNode *>(this); 0096 } 0097 0098 KGpgRootNode * 0099 KGpgNode::toRootNode() 0100 { 0101 Q_ASSERT((m_parent == nullptr) && (getType() == 0)); 0102 0103 return static_cast<KGpgRootNode *>(this); 0104 } 0105 0106 const KGpgRootNode * 0107 KGpgNode::toRootNode() const 0108 { 0109 Q_ASSERT((m_parent == nullptr) && (getType() == 0)); 0110 0111 return static_cast<const KGpgRootNode *>(this); 0112 } 0113 0114 KGpgUidNode * 0115 KGpgNode::toUidNode() 0116 { 0117 Q_ASSERT(getType() == KgpgCore::ITYPE_UID); 0118 0119 return static_cast<KGpgUidNode *>(this); 0120 } 0121 0122 const KGpgUidNode * 0123 KGpgNode::toUidNode() const 0124 { 0125 Q_ASSERT(getType() == KgpgCore::ITYPE_UID); 0126 0127 return static_cast<const KGpgUidNode *>(this); 0128 } 0129 0130 KGpgSubkeyNode * 0131 KGpgNode::toSubkeyNode() 0132 { 0133 Q_ASSERT(getType() == KgpgCore::ITYPE_SUB); 0134 0135 return static_cast<KGpgSubkeyNode *>(this); 0136 } 0137 0138 const KGpgSubkeyNode * 0139 KGpgNode::toSubkeyNode() const 0140 { 0141 Q_ASSERT(getType() == KgpgCore::ITYPE_SUB); 0142 0143 return static_cast<const KGpgSubkeyNode *>(this); 0144 } 0145 0146 KGpgUatNode * 0147 KGpgNode::toUatNode() 0148 { 0149 Q_ASSERT(getType() == KgpgCore::ITYPE_UAT); 0150 0151 return static_cast<KGpgUatNode *>(this); 0152 } 0153 0154 const KGpgUatNode * 0155 KGpgNode::toUatNode() const 0156 { 0157 Q_ASSERT(getType() == KgpgCore::ITYPE_UAT); 0158 0159 return static_cast<const KGpgUatNode *>(this); 0160 } 0161 0162 KGpgGroupNode * 0163 KGpgNode::toGroupNode() 0164 { 0165 Q_ASSERT(getType() == KgpgCore::ITYPE_GROUP); 0166 0167 return static_cast<KGpgGroupNode *>(this); 0168 } 0169 0170 const KGpgGroupNode * 0171 KGpgNode::toGroupNode() const 0172 { 0173 Q_ASSERT(getType() == KgpgCore::ITYPE_GROUP); 0174 0175 return static_cast<const KGpgGroupNode *>(this); 0176 } 0177 0178 KGpgRefNode * 0179 KGpgNode::toRefNode() 0180 { 0181 Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)) || (getType() & KgpgCore::ITYPE_SIGN)); 0182 0183 return qobject_cast<KGpgRefNode *>(this); 0184 } 0185 0186 const KGpgRefNode * 0187 KGpgNode::toRefNode() const 0188 { 0189 Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)) || (getType() & KgpgCore::ITYPE_SIGN)); 0190 0191 return qobject_cast<const KGpgRefNode *>(this); 0192 } 0193 0194 KGpgGroupMemberNode * 0195 KGpgNode::toGroupMemberNode() 0196 { 0197 Q_ASSERT((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)); 0198 0199 return static_cast<KGpgGroupMemberNode *>(this); 0200 } 0201 0202 const KGpgGroupMemberNode * 0203 KGpgNode::toGroupMemberNode() const 0204 { 0205 Q_ASSERT((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)); 0206 0207 return static_cast<const KGpgGroupMemberNode *>(this); 0208 } 0209 0210 KGpgSignNode * 0211 KGpgNode::toSignNode() 0212 { 0213 Q_ASSERT(getType() == KgpgCore::ITYPE_SIGN); 0214 0215 return static_cast<KGpgSignNode *>(this); 0216 } 0217 0218 const KGpgSignNode * 0219 KGpgNode::toSignNode() const 0220 { 0221 Q_ASSERT(getType() == KgpgCore::ITYPE_SIGN); 0222 0223 return static_cast<const KGpgSignNode *>(this); 0224 } 0225 0226 KGpgOrphanNode * 0227 KGpgNode::toOrphanNode() 0228 { 0229 Q_ASSERT(getType() == KgpgCore::ITYPE_SECRET); 0230 0231 return static_cast<KGpgOrphanNode *>(this); 0232 } 0233 0234 const KGpgOrphanNode * 0235 KGpgNode::toOrphanNode() const 0236 { 0237 Q_ASSERT(getType() == KgpgCore::ITYPE_SECRET); 0238 0239 return static_cast<const KGpgOrphanNode *>(this); 0240 } 0241 0242 bool 0243 KGpgNode::hasChildren() const 0244 { 0245 return false; 0246 } 0247 0248 int 0249 KGpgNode::getChildCount() 0250 { 0251 return 0; 0252 } 0253 0254 KGpgNode * 0255 KGpgNode::getChild(const int index) const 0256 { 0257 Q_UNUSED(index); 0258 return nullptr; 0259 } 0260 0261 int 0262 KGpgNode::getChildIndex(KGpgNode *node) const 0263 { 0264 Q_UNUSED(node); 0265 return 0; 0266 } 0267 0268 KgpgCore::KgpgKeyTrust 0269 KGpgNode::getTrust() const 0270 { 0271 return TRUST_NOKEY; 0272 } 0273 0274 QString 0275 KGpgNode::getSize() const 0276 { 0277 return QString(); 0278 } 0279 0280 QString 0281 KGpgNode::getName() const 0282 { 0283 return QString(); 0284 } 0285 0286 QString 0287 KGpgNode::getEmail() const 0288 { 0289 return QString(); 0290 } 0291 0292 QDateTime 0293 KGpgNode::getExpiration() const 0294 { 0295 return QDateTime(); 0296 } 0297 0298 QDateTime 0299 KGpgNode::getCreation() const 0300 { 0301 return QDateTime(); 0302 } 0303 0304 QString 0305 KGpgNode::getId() const 0306 { 0307 return QString(); 0308 } 0309 0310 QString 0311 KGpgNode::getComment() const 0312 { 0313 return QString(); 0314 } 0315 0316 KGpgExpandableNode * 0317 KGpgNode::getParentKeyNode() const 0318 { 0319 return m_parent; 0320 }