summaryrefslogtreecommitdiffstats
path: root/sigmodr/tree/TreeItem.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-05-01 22:25:29 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-05-01 22:25:29 -0400
commitd43500d8f348a77a7db32e6f16594dacf3b52ad9 (patch)
tree091807eed93c40bdefa0d21d531668512768b201 /sigmodr/tree/TreeItem.cpp
parentca4425dfe13eba4e595d1d77a2548521c2dc0e2e (diff)
downloadsigen-d43500d8f348a77a7db32e6f16594dacf3b52ad9.tar.gz
sigen-d43500d8f348a77a7db32e6f16594dacf3b52ad9.tar.xz
sigen-d43500d8f348a77a7db32e6f16594dacf3b52ad9.zip
Add TreeItem for new MVC
Diffstat (limited to 'sigmodr/tree/TreeItem.cpp')
-rw-r--r--sigmodr/tree/TreeItem.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/sigmodr/tree/TreeItem.cpp b/sigmodr/tree/TreeItem.cpp
new file mode 100644
index 00000000..4652bb38
--- /dev/null
+++ b/sigmodr/tree/TreeItem.cpp
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2009 Ben Boeckel <MathStuf@gmail.com>
+ *
+ * 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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/>.
+ */
+
+// Header include
+#include "TreeItem.h"
+
+// Sigmod includes
+#include <sigmod/Object.h>
+
+using namespace Sigmod;
+using namespace Sigmodr::Tree;
+
+TreeItem::TreeItem(const ItemType type, Object* object, TreeItem* parent) :
+ m_type(type),
+ m_object(object),
+ m_parent(parent)
+{
+}
+
+TreeItem::~TreeItem()
+{
+ foreach (TreeItem* item, m_children)
+ delete item;
+}
+
+int TreeItem::row()
+{
+ if (m_parent)
+ return m_parent->m_children.indexOf(this);
+ return -1;
+}
+
+TreeItem* TreeItem::parent()
+{
+ return m_parent;
+}
+
+QString TreeItem::text() const
+{
+ // TODO
+}
+
+Qt::ItemFlags TreeItem::flags() const
+{
+ // TODO
+}
+
+KMenu* TreeItem::menu()
+{
+ // TODO
+}
+
+bool TreeItem::canAddTo() const
+{
+ switch (m_type)
+ {
+ case GroupGame ... GroupWeather:
+ case EntryGame:
+ case EntryCoinList:
+ case EntryMap:
+ case EntryMapTrainer:
+ case EntryMapWildList:
+ case EntrySpecies:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool TreeItem::canRemove() const
+{
+ switch (m_type)
+ {
+ case GroupGame ... GroupWeather:
+ case EntryRules:
+ return false;
+ default:
+ return true;
+ }
+}
+
+bool TreeItem::canCopy() const
+{
+ switch (m_type)
+ {
+ case GroupGame ... GroupWeather:
+ return false;
+ default:
+ return true;
+ }
+}
+
+int TreeItem::childCount() const
+{
+ return m_children.size();
+}
+
+TreeItem* TreeItem::addChild()
+{
+ // TODO
+}
+
+TreeItem* TreeItem::childAt(const int child)
+{
+ if ((0 <= child) && (child <= m_children.size()))
+ return m_children[child];
+ return NULL;
+}
+
+void TreeItem::removeChild(const int child)
+{
+ // TODO
+}
+
+const Game* TreeItem::game() const
+{
+ if (m_object)
+ return m_object->game();
+ return NULL;
+}
+
+QStringList TreeItem::acceptedMimeTypes() const
+{
+ // TODO
+}
+
+QString TreeItem::mimeType() const
+{
+ // TODO
+}
+
+QByteArray TreeItem::copyData() const
+{
+ // TODO
+}
+
+bool TreeItem::dropData(QMimeData* data)
+{
+ // TODO
+}