aboutsummaryrefslogtreecommitdiffstats
path: root/kgpg/core/KGpgNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kgpg/core/KGpgNode.cpp')
-rw-r--r--kgpg/core/KGpgNode.cpp337
1 files changed, 337 insertions, 0 deletions
diff --git a/kgpg/core/KGpgNode.cpp b/kgpg/core/KGpgNode.cpp
new file mode 100644
index 0000000..18645f8
--- /dev/null
+++ b/kgpg/core/KGpgNode.cpp
@@ -0,0 +1,337 @@
+/* Copyright 2008,2009,2012 Rolf Eike Beer <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of version 3 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "KGpgNode.h"
+
+#include "KGpgGroupMemberNode.h"
+#include "KGpgGroupNode.h"
+#include "KGpgOrphanNode.h"
+#include "KGpgRootNode.h"
+#include "KGpgSubkeyNode.h"
+#include "KGpgUatNode.h"
+#include "KGpgUidNode.h"
+//#include "model/kgpgitemmodel.h"
+
+//#include <KLocale>
+
+KGpgNode::KGpgNode(KGpgExpandableNode *parent)
+ : QObject(), m_parent(parent)
+{
+/* if (parent == NULL)
+ m_model = NULL;
+ else
+ m_model = parent->m_model;
+*/
+}
+
+KGpgNode::~KGpgNode()
+{
+/* Q_ASSERT(m_model);
+ m_model->invalidateIndexes(this);
+*/
+ if (m_parent != NULL)
+ m_parent->deleteChild(this);
+}
+
+QString
+KGpgNode::getNameComment() const
+{
+ if (getComment().isEmpty())
+ return getName();
+ else
+ return tr("Name of uid (comment) %1 (%2)").arg(getName()).arg(getComment());
+ //return QString("Name of uid (comment)", "%1 (%2)", getName(), getComment());
+}
+
+KGpgExpandableNode *
+KGpgNode::toExpandableNode()
+{
+ Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && !(getType() & KgpgCore::ITYPE_PAIR)) ||
+ (getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT)));
+
+ return qobject_cast<KGpgExpandableNode *>(this);
+}
+
+const KGpgExpandableNode *
+KGpgNode::toExpandableNode() const
+{
+ Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && !(getType() & KgpgCore::ITYPE_PAIR)) ||
+ (getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT)));
+
+ return qobject_cast<const KGpgExpandableNode *>(this);
+}
+
+KGpgSignableNode *
+KGpgNode::toSignableNode()
+{
+ Q_ASSERT(getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT));
+
+ return qobject_cast<KGpgSignableNode *>(this);
+}
+
+const KGpgSignableNode *
+KGpgNode::toSignableNode() const
+{
+ Q_ASSERT(getType() & (KgpgCore::ITYPE_PAIR | KgpgCore::ITYPE_SUB | KgpgCore::ITYPE_UID | KgpgCore::ITYPE_UAT));
+
+ return qobject_cast<const KGpgSignableNode *>(this);
+}
+
+KGpgKeyNode *
+KGpgNode::toKeyNode()
+{
+ Q_ASSERT(getType() & KgpgCore::ITYPE_PAIR);
+ Q_ASSERT(!(getType() & KgpgCore::ITYPE_GROUP));
+
+ return qobject_cast<KGpgKeyNode *>(this);
+}
+
+const KGpgKeyNode *
+KGpgNode::toKeyNode() const
+{
+ Q_ASSERT(getType() & KgpgCore::ITYPE_PAIR);
+ Q_ASSERT(!(getType() & KgpgCore::ITYPE_GROUP));
+
+ return qobject_cast<const KGpgKeyNode *>(this);
+}
+
+KGpgRootNode *
+KGpgNode::toRootNode()
+{
+ Q_ASSERT((m_parent == NULL) && (getType() == 0));
+
+ return static_cast<KGpgRootNode *>(this)->asRootNode();
+}
+
+const KGpgRootNode *
+KGpgNode::toRootNode() const
+{
+ Q_ASSERT((m_parent == NULL) && (getType() == 0));
+
+ return static_cast<const KGpgRootNode *>(this)->asRootNode();
+}
+
+KGpgUidNode *
+KGpgNode::toUidNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_UID);
+
+ return static_cast<KGpgUidNode *>(this);
+}
+
+const KGpgUidNode *
+KGpgNode::toUidNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_UID);
+
+ return static_cast<const KGpgUidNode *>(this);
+}
+
+KGpgSubkeyNode *
+KGpgNode::toSubkeyNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SUB);
+
+ return static_cast<KGpgSubkeyNode *>(this);
+}
+
+const KGpgSubkeyNode *
+KGpgNode::toSubkeyNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SUB);
+
+ return static_cast<const KGpgSubkeyNode *>(this);
+}
+
+KGpgUatNode *
+KGpgNode::toUatNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_UAT);
+
+ return static_cast<KGpgUatNode *>(this);
+}
+
+const KGpgUatNode *
+KGpgNode::toUatNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_UAT);
+
+ return static_cast<const KGpgUatNode *>(this);
+}
+
+KGpgGroupNode *
+KGpgNode::toGroupNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_GROUP);
+
+ return static_cast<KGpgGroupNode *>(this);
+}
+
+const KGpgGroupNode *
+KGpgNode::toGroupNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_GROUP);
+
+ return static_cast<const KGpgGroupNode *>(this);
+}
+
+KGpgRefNode *
+KGpgNode::toRefNode()
+{
+ Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)) || (getType() & KgpgCore::ITYPE_SIGN));
+
+ return qobject_cast<KGpgRefNode *>(this);
+}
+
+const KGpgRefNode *
+KGpgNode::toRefNode() const
+{
+ Q_ASSERT(((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR)) || (getType() & KgpgCore::ITYPE_SIGN));
+
+ return qobject_cast<const KGpgRefNode *>(this);
+}
+
+KGpgGroupMemberNode *
+KGpgNode::toGroupMemberNode()
+{
+ Q_ASSERT((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR));
+
+ return static_cast<KGpgGroupMemberNode *>(this);
+}
+
+const KGpgGroupMemberNode *
+KGpgNode::toGroupMemberNode() const
+{
+ Q_ASSERT((getType() & KgpgCore::ITYPE_GROUP) && (getType() & KgpgCore::ITYPE_PAIR));
+
+ return static_cast<const KGpgGroupMemberNode *>(this);
+}
+
+KGpgSignNode *
+KGpgNode::toSignNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SIGN);
+
+ return static_cast<KGpgSignNode *>(this);
+}
+
+const KGpgSignNode *
+KGpgNode::toSignNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SIGN);
+
+ return static_cast<const KGpgSignNode *>(this);
+}
+
+KGpgOrphanNode *
+KGpgNode::toOrphanNode()
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SECRET);
+
+ return static_cast<KGpgOrphanNode *>(this);
+}
+
+const KGpgOrphanNode *
+KGpgNode::toOrphanNode() const
+{
+ Q_ASSERT(getType() == KgpgCore::ITYPE_SECRET);
+
+ return static_cast<const KGpgOrphanNode *>(this);
+}
+
+bool
+KGpgNode::hasChildren() const
+{
+ return false;
+}
+
+int
+KGpgNode::getChildCount()
+{
+ return 0;
+}
+
+KGpgNode *
+KGpgNode::getChild(const int index) const
+{
+ Q_UNUSED(index);
+ return NULL;
+}
+
+int
+KGpgNode::getChildIndex(KGpgNode *node) const
+{
+ Q_UNUSED(node);
+ return 0;
+}
+
+KgpgCore::KgpgKeyTrust
+KGpgNode::getTrust() const
+{
+ return TRUST_NOKEY;
+}
+
+QString
+KGpgNode::getSize() const
+{
+ return QString();
+}
+
+QString
+KGpgNode::getName() const
+{
+ return QString();
+}
+
+QString
+KGpgNode::getEmail() const
+{
+ return QString();
+}
+
+QDateTime
+KGpgNode::getExpiration() const
+{
+ return QDateTime();
+}
+
+QDateTime
+KGpgNode::getCreation() const
+{
+ return QDateTime();
+}
+
+QString
+KGpgNode::getId() const
+{
+ return QString();
+}
+
+QString
+KGpgNode::getComment() const
+{
+ return QString();
+}
+
+KGpgExpandableNode *
+KGpgNode::getParentKeyNode() const
+{
+ return m_parent;
+}
+
+//#include "KGpgNode.moc"