diff options
Diffstat (limited to 'pokemodr/models/AbilityModel.cpp')
| -rw-r--r-- | pokemodr/models/AbilityModel.cpp | 19 |
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); } |
