diff options
Diffstat (limited to 'pokemodr/models/MapModel.cpp')
-rw-r--r-- | pokemodr/models/MapModel.cpp | 219 |
1 files changed, 8 insertions, 211 deletions
diff --git a/pokemodr/models/MapModel.cpp b/pokemodr/models/MapModel.cpp index e3834e1a..4fc65ae1 100644 --- a/pokemodr/models/MapModel.cpp +++ b/pokemodr/models/MapModel.cpp @@ -19,10 +19,10 @@ #include "MapModel.h" // Model includes -#include "MapEffectModel.h" -#include "MapTrainerModel.h" -#include "MapWarpModel.h" -#include "MapWildListModel.h" +#include "MapEffectGroupModel.h" +#include "MapTrainerGroupModel.h" +#include "MapWarpGroupModel.h" +#include "MapWildListGroupModel.h" // PokeModr includes #include "../MapUI.h" @@ -34,166 +34,6 @@ // Qt includes #include <QFile> -MapEffectGroupModel::MapEffectGroupModel(BaseModel* parent, Map* map) : - GroupModel(parent, map, "Effects") -{ - setupData(); -} - -MapEffectGroupModel::~MapEffectGroupModel() -{ -} - -int MapEffectGroupModel::indexNumber() const -{ - return 0; -} - -bool MapEffectGroupModel::insertRows(const int rows) -{ - for (int i = 0; i < rows; ++i) - m_objects.append(new MapEffectModel(this, static_cast<Map*>(m_object)->newEffect())); - return true; -} - -bool MapEffectGroupModel::removeRows(const int position, const int rows) -{ - for (int i = 0; i < rows; ++i) - { - static_cast<Map*>(m_object)->deleteEffect(position); - delete m_objects[position]; - m_objects.removeAt(position); - } - return true; -} - -void MapEffectGroupModel::setupData() -{ - Map* map = static_cast<Map*>(m_object); - for (int i = 0; i < map->effectCount(); ++i) - m_objects.append(new MapEffectModel(this, map->effect(i))); -} - -MapTrainerGroupModel::MapTrainerGroupModel(BaseModel* parent, Map* map) : - GroupModel(parent, map, "Trainers") -{ - setupData(); -} - -MapTrainerGroupModel::~MapTrainerGroupModel() -{ -} - -int MapTrainerGroupModel::indexNumber() const -{ - return 1; -} - -bool MapTrainerGroupModel::insertRows(const int rows) -{ - for (int i = 0; i < rows; ++i) - m_objects.append(new MapTrainerModel(this, static_cast<Map*>(m_object)->newTrainer())); - return true; -} - -bool MapTrainerGroupModel::removeRows(const int position, const int rows) -{ - for (int i = 0; i < rows; ++i) - { - static_cast<Map*>(m_object)->deleteTrainer(position); - delete m_objects[position]; - m_objects.removeAt(position); - } - return true; -} - -void MapTrainerGroupModel::setupData() -{ - Map* map = static_cast<Map*>(m_object); - for (int i = 0; i < map->trainerCount(); ++i) - m_objects.append(new MapTrainerModel(this, map->trainer(i))); -} - -MapWarpGroupModel::MapWarpGroupModel(BaseModel* parent, Map* map) : - GroupModel(parent, map, "Warps") -{ - setupData(); -} - -MapWarpGroupModel::~MapWarpGroupModel() -{ -} - -int MapWarpGroupModel::indexNumber() const -{ - return 2; -} - -bool MapWarpGroupModel::insertRows(const int rows) -{ - for (int i = 0; i < rows; ++i) - m_objects.append(new MapWarpModel(this, static_cast<Map*>(m_object)->newWarp())); - return true; -} - -bool MapWarpGroupModel::removeRows(const int position, const int rows) -{ - for (int i = 0; i < rows; ++i) - { - static_cast<Map*>(m_object)->deleteWarp(position); - delete m_objects[position]; - m_objects.removeAt(position); - } - return true; -} - -void MapWarpGroupModel::setupData() -{ - Map* map = static_cast<Map*>(m_object); - for (int i = 0; i < map->warpCount(); ++i) - m_objects.append(new MapWarpModel(this, map->warp(i))); -} - -MapWildListGroupModel::MapWildListGroupModel(BaseModel* parent, Map* map) : - GroupModel(parent, map, "Wild Lists") -{ - setupData(); -} - -MapWildListGroupModel::~MapWildListGroupModel() -{ -} - -int MapWildListGroupModel::indexNumber() const -{ - return 3; -} - -bool MapWildListGroupModel::insertRows(const int rows) -{ - for (int i = 0; i < rows; ++i) - m_objects.append(new MapWildListModel(this, static_cast<Map*>(m_object)->newWildList())); - return true; -} - -bool MapWildListGroupModel::removeRows(const int position, const int rows) -{ - for (int i = 0; i < rows; ++i) - { - static_cast<Map*>(m_object)->deleteWildList(position); - delete m_objects[position]; - m_objects.removeAt(position); - } - return true; -} - -void MapWildListGroupModel::setupData() -{ - Map* map = static_cast<Map*>(m_object); - for (int i = 0; i < map->wildListCount(); ++i) - m_objects.append(new MapWildListModel(this, map->wildList(i))); -} - MapModel::MapModel(BaseModel* parent, Map* map) : GroupObjectModel(parent, map) { @@ -202,7 +42,6 @@ MapModel::MapModel(BaseModel* parent, Map* map) : MapModel::~MapModel() { - clearData(); } QVariant MapModel::data(int role) const @@ -223,11 +62,6 @@ QVariant MapModel::data(int role) const return GroupObjectModel::data(role); } -int MapModel::rowCount() const -{ - return 4; -} - bool MapModel::setData(const QVariant& value, int role) { if (role == BaseModel::XmlRole) @@ -252,35 +86,6 @@ bool MapModel::setData(const QVariant& value, int role) return false; } -BaseModel* MapModel::childItem(const int row) -{ - BaseModel* model; - switch (row) - { - case 0: - model = m_effects; - break; - case 1: - model = m_trainers; - break; - case 2: - model = m_warps; - break; - case 3: - model = m_wildLists; - break; - default: - model = NULL; - break; - } - return model; -} - -int MapModel::indexNumber() const -{ - return static_cast<const Pokemod*>(m_object->parent())->mapIndex(m_object->id()); -} - bool MapModel::insertRows(const int /*rows*/) { return false; @@ -293,16 +98,8 @@ bool MapModel::removeRows(const int /*position*/, const int /*rows*/) void MapModel::setupData() { - m_effects = new MapEffectGroupModel(this, static_cast<Map*>(m_object)); - m_trainers = new MapTrainerGroupModel(this, static_cast<Map*>(m_object)); - m_warps = new MapWarpGroupModel(this, static_cast<Map*>(m_object)); - m_wildLists = new MapWildListGroupModel(this, static_cast<Map*>(m_object)); -} - -void MapModel::clearData() -{ - delete m_effects; - delete m_trainers; - delete m_warps; - delete m_wildLists; + m_objects.append(new MapEffectGroupModel(this, static_cast<Map*>(m_object))); + m_objects.append(new MapTrainerGroupModel(this, static_cast<Map*>(m_object))); + m_objects.append(new MapWarpGroupModel(this, static_cast<Map*>(m_object))); + m_objects.append(new MapWildListGroupModel(this, static_cast<Map*>(m_object))); } |