summaryrefslogtreecommitdiffstats
path: root/pokemodr/models/AbilityModel.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-04-24 20:21:59 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-04-24 20:21:59 +0000
commit446fcd9248d4cef74e905c485ef767a94a8463ec (patch)
tree66fa3e7a0536303395bd5b88abb6e1b2cacc8383 /pokemodr/models/AbilityModel.cpp
parentd7b6b0627a7d5e0875a263bf9501506a3d8da450 (diff)
downloadsigen-446fcd9248d4cef74e905c485ef767a94a8463ec.tar.gz
sigen-446fcd9248d4cef74e905c485ef767a94a8463ec.tar.xz
sigen-446fcd9248d4cef74e905c485ef767a94a8463ec.zip
[ADD] More model classes
[FIX] Minor things within the models git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@106 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/models/AbilityModel.cpp')
-rw-r--r--pokemodr/models/AbilityModel.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/pokemodr/models/AbilityModel.cpp b/pokemodr/models/AbilityModel.cpp
index 07d54945..dde7a8b8 100644
--- a/pokemodr/models/AbilityModel.cpp
+++ b/pokemodr/models/AbilityModel.cpp
@@ -19,6 +19,14 @@
#include <QDomDocument>
#include <QFile>
+// Pokemod includes
+#include <Ability.h>
+#include <AbilityEffect.h>
+#include <Pokemod.h>
+
+// PokeModr includes
+#include "AbilityUI.h"
+
// Model includes
#include "AbilityEffectModel.h"
@@ -35,7 +43,8 @@ AbilityModel::AbilityModel(BaseModel* parent, Object* object) :
AbilityModel::~AbilityModel()
{
- // TODO: destruct
+ foreach (AbilityEffectModel* model, m_effects)
+ delete model;
}
QVariant AbilityModel::data(int role) const
@@ -61,6 +70,7 @@ bool AbilityModel::setData(const QVariant& value, int role)
{
if (value.canConvert<void*>())
{
+ // TODO: reset effects
*static_cast<Ability*>(m_object) = *static_cast<Ability*>(value.value<void*>());
return true;
}
@@ -73,14 +83,20 @@ bool AbilityModel::setData(const QVariant& value, int role)
if (xml.setContent(&file))
{
if (xml.doctype().name() == m_object->className())
+ {
+ // TODO: reset effects
m_object->load(xml.documentElement());
+ }
}
file.close();
}
else if (xml.setContent(value.toString()))
{
if (xml.doctype().name() == m_object->className())
+ {
+ // TODO: reset effects
m_object->load(xml.documentElement());
+ }
}
}
}
@@ -118,6 +134,7 @@ bool AbilityModel::removeRows(const int position, const int rows)
{
for (int i = 0; i < rows; ++i)
{
+ static_cast<Ability*>(m_object)->deleteEffect(position);
delete m_effects[position];
m_effects.removeAt(position);
}