diff options
36 files changed, 428 insertions, 293 deletions
@@ -1,4 +1,12 @@ ----------------- +Rev: 116 +Date: 28 April 2008 +User: MathStuf +----------------- +[FIX] Organized some more model code +[ADD] Added AbilityGroupModel class + +----------------- Rev: 115 Date: 28 April 2008 User: MathStuf diff --git a/pokemodr/PokemodTreeModel.cpp b/pokemodr/PokemodTreeModel.cpp index 17331047..9c6964ff 100644 --- a/pokemodr/PokemodTreeModel.cpp +++ b/pokemodr/PokemodTreeModel.cpp @@ -24,6 +24,9 @@ // Qt includes #include <QMimeData> +// Test code includes +#include <QtDebug> + PokemodTreeModel::PokemodTreeModel(const QStringList& pokemods, QObject* parent) : QAbstractItemModel(parent) { diff --git a/pokemodr/models/AbilityEffectModel.cpp b/pokemodr/models/AbilityEffectModel.cpp index 54fb67da..ff801cc8 100644 --- a/pokemodr/models/AbilityEffectModel.cpp +++ b/pokemodr/models/AbilityEffectModel.cpp @@ -22,14 +22,15 @@ // #include "../AbilityEffectUI.h" // Pokemod includes +#include "../../pokemod/Ability.h" #include "../../pokemod/AbilityEffect.h" #include "../../pokemod/Pokemod.h" // Qt includes #include <QFile> -AbilityEffectModel::AbilityEffectModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +AbilityEffectModel::AbilityEffectModel(BaseModel* parent, AbilityEffect* effect) : + ObjectModel(parent, effect) { } @@ -80,5 +81,5 @@ bool AbilityEffectModel::setData(const QVariant& value, int role) int AbilityEffectModel::indexNumber() const { - // TODO: get effect index + return static_cast<const Ability*>(m_object->parent())->effectIndex(m_object->id()); } diff --git a/pokemodr/models/AbilityEffectModel.h b/pokemodr/models/AbilityEffectModel.h index 867c742b..f5d61a05 100644 --- a/pokemodr/models/AbilityEffectModel.h +++ b/pokemodr/models/AbilityEffectModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class AbilityEffect; + class AbilityEffectModel : public ObjectModel { public: - AbilityEffectModel(BaseModel* parent, Object* object); + AbilityEffectModel(BaseModel* parent, AbilityEffect* effect); ~AbilityEffectModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/AbilityModel.cpp b/pokemodr/models/AbilityModel.cpp index 58772fba..90de201c 100644 --- a/pokemodr/models/AbilityModel.cpp +++ b/pokemodr/models/AbilityModel.cpp @@ -33,8 +33,8 @@ #include <QDomDocument> #include <QFile> -AbilityModel::AbilityModel(BaseModel* parent, Object* object) : - GroupObjectModel(parent, object) +AbilityModel::AbilityModel(BaseModel* parent, Ability* ability) : + GroupObjectModel(parent, ability) { setupData(); } @@ -100,7 +100,7 @@ BaseModel* AbilityModel::childItem(const int row) int AbilityModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->abilityIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->abilityIndex(m_object->id()); } bool AbilityModel::insertRows(const int rows) diff --git a/pokemodr/models/AbilityModel.h b/pokemodr/models/AbilityModel.h index 7219b806..756abfbe 100644 --- a/pokemodr/models/AbilityModel.h +++ b/pokemodr/models/AbilityModel.h @@ -22,12 +22,13 @@ #include "BaseModel.h" // Forward declarations +class Ability; class AbilityEffectModel; class AbilityModel : public GroupObjectModel { public: - AbilityModel(BaseModel* parent, Object* object); + AbilityModel(BaseModel* parent, Ability* ability); ~AbilityModel(); QVariant data(int role = Qt::DisplayRole) const; @@ -41,10 +42,10 @@ class AbilityModel : public GroupObjectModel bool insertRows(const int rows); bool removeRows(const int position, const int rows); - private: + protected: void setupData(); void clearData(); - + private: QList<AbilityEffectModel*> m_effects; }; diff --git a/pokemodr/models/BadgeModel.cpp b/pokemodr/models/BadgeModel.cpp index 8953b457..21ce961b 100644 --- a/pokemodr/models/BadgeModel.cpp +++ b/pokemodr/models/BadgeModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -BadgeModel::BadgeModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +BadgeModel::BadgeModel(BaseModel* parent, Badge* badge) : + ObjectModel(parent, badge) { } @@ -80,5 +80,5 @@ bool BadgeModel::setData(const QVariant& value, int role) int BadgeModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->badgeIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->badgeIndex(m_object->id()); } diff --git a/pokemodr/models/BadgeModel.h b/pokemodr/models/BadgeModel.h index 92981d14..30ca6d61 100644 --- a/pokemodr/models/BadgeModel.h +++ b/pokemodr/models/BadgeModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Badge; + class BadgeModel : public ObjectModel { public: - BadgeModel(BaseModel* parent, Object* object); + BadgeModel(BaseModel* parent, Badge* badge); ~BadgeModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/BaseModel.h b/pokemodr/models/BaseModel.h index 3007c169..a9efd3ca 100644 --- a/pokemodr/models/BaseModel.h +++ b/pokemodr/models/BaseModel.h @@ -172,6 +172,8 @@ class GroupModel : public BaseModel QString type() const; protected: + virtual void setupData() = 0; + QList<BaseObjectModel*> m_objects; private: void clearData(); diff --git a/pokemodr/models/CoinListModel.cpp b/pokemodr/models/CoinListModel.cpp index c830a1e4..b9e662fb 100644 --- a/pokemodr/models/CoinListModel.cpp +++ b/pokemodr/models/CoinListModel.cpp @@ -33,8 +33,8 @@ #include <QDomDocument> #include <QFile> -CoinListModel::CoinListModel(BaseModel* parent, Object* object) : - GroupObjectModel(parent, object) +CoinListModel::CoinListModel(BaseModel* parent, CoinList* coinList) : + GroupObjectModel(parent, coinList) { setupData(); } @@ -100,7 +100,7 @@ BaseModel* CoinListModel::childItem(const int row) int CoinListModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->coinListIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->coinListIndex(m_object->id()); } bool CoinListModel::insertRows(const int rows) diff --git a/pokemodr/models/CoinListModel.h b/pokemodr/models/CoinListModel.h index ad75dbdb..ac5d14c9 100644 --- a/pokemodr/models/CoinListModel.h +++ b/pokemodr/models/CoinListModel.h @@ -22,12 +22,13 @@ #include "BaseModel.h" // Forward declarations +class CoinList; class CoinListObjectModel; class CoinListModel : public GroupObjectModel { public: - CoinListModel(BaseModel* parent, Object* object); + CoinListModel(BaseModel* parent, CoinList* coinList); ~CoinListModel(); QVariant data(int role = Qt::DisplayRole) const; @@ -41,10 +42,10 @@ class CoinListModel : public GroupObjectModel bool insertRows(const int rows); bool removeRows(const int position, const int rows); - private: + protected: void setupData(); void clearData(); - + private: QList<CoinListObjectModel*> m_objects; }; diff --git a/pokemodr/models/CoinListObjectModel.cpp b/pokemodr/models/CoinListObjectModel.cpp index ed788cae..ffe860c1 100644 --- a/pokemodr/models/CoinListObjectModel.cpp +++ b/pokemodr/models/CoinListObjectModel.cpp @@ -22,6 +22,7 @@ #include "../CoinListObjectUI.h" // Pokemod includes +#include "../../pokemod/CoinList.h" #include "../../pokemod/CoinListObject.h" #include "../../pokemod/Item.h" #include "../../pokemod/Species.h" @@ -30,7 +31,7 @@ #include <QDomDocument> #include <QFile> -CoinListObjectModel::CoinListObjectModel(BaseModel* parent, Object* object) : +CoinListObjectModel::CoinListObjectModel(BaseModel* parent, CoinListObject* object) : ObjectModel(parent, object) { } @@ -87,5 +88,5 @@ bool CoinListObjectModel::setData(const QVariant& value, int role) int CoinListObjectModel::indexNumber() const { - // TODO: get index number + return static_cast<const CoinList*>(m_object->parent())->objectIndex(m_object->id()); } diff --git a/pokemodr/models/CoinListObjectModel.h b/pokemodr/models/CoinListObjectModel.h index 8ab37164..7a7d0ff4 100644 --- a/pokemodr/models/CoinListObjectModel.h +++ b/pokemodr/models/CoinListObjectModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class CoinListObject; + class CoinListObjectModel : public ObjectModel { public: - CoinListObjectModel(BaseModel* parent, Object* object); + CoinListObjectModel(BaseModel* parent, CoinListObject* object); ~CoinListObjectModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/DialogModel.cpp b/pokemodr/models/DialogModel.cpp index 7cf453b6..2a7fb180 100644 --- a/pokemodr/models/DialogModel.cpp +++ b/pokemodr/models/DialogModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -DialogModel::DialogModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +DialogModel::DialogModel(BaseModel* parent, Dialog* dialog) : + ObjectModel(parent, dialog) { } @@ -81,5 +81,5 @@ bool DialogModel::setData(const QVariant& value, int role) int DialogModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->dialogIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->dialogIndex(m_object->id()); } diff --git a/pokemodr/models/DialogModel.h b/pokemodr/models/DialogModel.h index 5902ae4f..5f4d4a8c 100644 --- a/pokemodr/models/DialogModel.h +++ b/pokemodr/models/DialogModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Dialog; + class DialogModel : public ObjectModel { public: - DialogModel(BaseModel* parent, Object* object); + DialogModel(BaseModel* parent, Dialog* dialog); ~DialogModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/EggGroupModel.cpp b/pokemodr/models/EggGroupModel.cpp index 867b58c0..e43d2a72 100644 --- a/pokemodr/models/EggGroupModel.cpp +++ b/pokemodr/models/EggGroupModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -EggGroupModel::EggGroupModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +EggGroupModel::EggGroupModel(BaseModel* parent, EggGroup* eggGroup) : + ObjectModel(parent, eggGroup) { } @@ -80,5 +80,5 @@ bool EggGroupModel::setData(const QVariant& value, int role) int EggGroupModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->eggGroupIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->eggGroupIndex(m_object->id()); } diff --git a/pokemodr/models/EggGroupModel.h b/pokemodr/models/EggGroupModel.h index c90aad31..14ff212f 100644 --- a/pokemodr/models/EggGroupModel.h +++ b/pokemodr/models/EggGroupModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class EggGroup; + class EggGroupModel : public ObjectModel { public: - EggGroupModel(BaseModel* parent, Object* object); + EggGroupModel(BaseModel* parent, EggGroup* eggGroup); ~EggGroupModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/ItemTypeModel.cpp b/pokemodr/models/ItemTypeModel.cpp index d90548c2..da604644 100644 --- a/pokemodr/models/ItemTypeModel.cpp +++ b/pokemodr/models/ItemTypeModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -ItemTypeModel::ItemTypeModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +ItemTypeModel::ItemTypeModel(BaseModel* parent, ItemType* itemType) : + ObjectModel(parent, itemType) { } @@ -80,5 +80,5 @@ bool ItemTypeModel::setData(const QVariant& value, int role) int ItemTypeModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->itemTypeIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->itemTypeIndex(m_object->id()); } diff --git a/pokemodr/models/ItemTypeModel.h b/pokemodr/models/ItemTypeModel.h index 6db72f93..abf933ea 100644 --- a/pokemodr/models/ItemTypeModel.h +++ b/pokemodr/models/ItemTypeModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class ItemType; + class ItemTypeModel : public ObjectModel { public: - ItemTypeModel(BaseModel* parent, Object* object); + ItemTypeModel(BaseModel* parent, ItemType* itemType); ~ItemTypeModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/NatureModel.cpp b/pokemodr/models/NatureModel.cpp index 6f0c9e1c..d8821ded 100644 --- a/pokemodr/models/NatureModel.cpp +++ b/pokemodr/models/NatureModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -NatureModel::NatureModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +NatureModel::NatureModel(BaseModel* parent, Nature* nature) : + ObjectModel(parent, nature) { } @@ -80,5 +80,5 @@ bool NatureModel::setData(const QVariant& value, int role) int NatureModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->natureIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->natureIndex(m_object->id()); } diff --git a/pokemodr/models/NatureModel.h b/pokemodr/models/NatureModel.h index 89a00b61..3f441601 100644 --- a/pokemodr/models/NatureModel.h +++ b/pokemodr/models/NatureModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Nature; + class NatureModel : public ObjectModel { public: - NatureModel(BaseModel* parent, Object* object); + NatureModel(BaseModel* parent, Nature* nature); ~NatureModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/PokemodModel.cpp b/pokemodr/models/PokemodModel.cpp index febc4ae6..8fc799bc 100644 --- a/pokemodr/models/PokemodModel.cpp +++ b/pokemodr/models/PokemodModel.cpp @@ -20,6 +20,7 @@ // Model includes #include "AbilityModel.h" +// #include "AuthorModel.h" #include "BadgeModel.h" #include "CoinListModel.h" #include "DialogModel.h" @@ -41,6 +42,7 @@ // Pokemod includes #include "../../pokemod/Ability.h" +#include "../../pokemod/Author.h" #include "../../pokemod/Badge.h" #include "../../pokemod/CoinList.h" #include "../../pokemod/Dialog.h" @@ -59,23 +61,16 @@ // Qt includes #include <QFile> -AbilityGroupModel::AbilityGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Abilities") +AbilityGroupModel::AbilityGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Abilities") { - Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->abilityCount(); ++i) - m_objects.append(new AbilityModel(this, pokemod->ability(i))); + setupData(); } AbilityGroupModel::~AbilityGroupModel() { } -int AbilityGroupModel::rowCount() const -{ - return static_cast<Pokemod*>(m_object)->abilityCount(); -} - int AbilityGroupModel::indexNumber() const { return 1; @@ -99,28 +94,70 @@ bool AbilityGroupModel::removeRows(const int position, const int rows) return true; } -BadgeGroupModel::BadgeGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Badges") +void AbilityGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->badgeCount(); ++i) - m_objects.append(new BadgeModel(this, pokemod->badge(i))); + for (int i = 0; i < pokemod->abilityCount(); ++i) + m_objects.append(new AbilityModel(this, pokemod->ability(i))); } -BadgeGroupModel::~BadgeGroupModel() +AuthorGroupModel::AuthorGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Abilities") { + setupData(); } -int BadgeGroupModel::rowCount() const +AuthorGroupModel::~AuthorGroupModel() { - return static_cast<Pokemod*>(m_object)->badgeCount(); } -int BadgeGroupModel::indexNumber() const +int AuthorGroupModel::indexNumber() const { return 2; } +bool AuthorGroupModel::insertRows(const int rows) +{ + // TODO: AuthorModel +// for (int i = 0; i < rows; ++i) +// m_objects.append(new AuthorModel(this, static_cast<Pokemod*>(m_object)->newAuthor())); +// return true; +} + +bool AuthorGroupModel::removeRows(const int position, const int rows) +{ + for (int i = 0; i < rows; ++i) + { + static_cast<Pokemod*>(m_object)->deleteAuthor(position); + delete m_objects[position]; + m_objects.removeAt(position); + } + return true; +} + +void AuthorGroupModel::setupData() +{ + // TODO: AuthorModel +// Pokemod* pokemod = static_cast<Pokemod*>(m_object); +// for (int i = 0; i < pokemod->authorCount(); ++i) +// m_objects.append(new AuthorModel(this, pokemod->author(i))); +} + +BadgeGroupModel::BadgeGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Badges") +{ + setupData(); +} + +BadgeGroupModel::~BadgeGroupModel() +{ +} + +int BadgeGroupModel::indexNumber() const +{ + return 3; +} + bool BadgeGroupModel::insertRows(const int rows) { for (int i = 0; i < rows; ++i) @@ -139,26 +176,26 @@ bool BadgeGroupModel::removeRows(const int position, const int rows) return true; } -CoinListGroupModel::CoinListGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Coin Lists") +void BadgeGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->coinListCount(); ++i) - m_objects.append(new CoinListModel(this, pokemod->coinList(i))); + for (int i = 0; i < pokemod->badgeCount(); ++i) + m_objects.append(new BadgeModel(this, pokemod->badge(i))); } -CoinListGroupModel::~CoinListGroupModel() +CoinListGroupModel::CoinListGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Coin Lists") { + setupData(); } -int CoinListGroupModel::rowCount() const +CoinListGroupModel::~CoinListGroupModel() { - return static_cast<Pokemod*>(m_object)->coinListCount(); } int CoinListGroupModel::indexNumber() const { - return 3; + return 4; } bool CoinListGroupModel::insertRows(const int rows) @@ -179,26 +216,26 @@ bool CoinListGroupModel::removeRows(const int position, const int rows) return true; } -DialogGroupModel::DialogGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Dialogs") +void CoinListGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->dialogCount(); ++i) - m_objects.append(new DialogModel(this, pokemod->dialog(i))); + for (int i = 0; i < pokemod->coinListCount(); ++i) + m_objects.append(new CoinListModel(this, pokemod->coinList(i))); } -DialogGroupModel::~DialogGroupModel() +DialogGroupModel::DialogGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Dialogs") { + setupData(); } -int DialogGroupModel::rowCount() const +DialogGroupModel::~DialogGroupModel() { - return static_cast<Pokemod*>(m_object)->dialogCount(); } int DialogGroupModel::indexNumber() const { - return 4; + return 5; } bool DialogGroupModel::insertRows(const int rows) @@ -219,26 +256,26 @@ bool DialogGroupModel::removeRows(const int position, const int rows) return true; } -EggGroupGroupModel::EggGroupGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Egg Groups") +void DialogGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->eggGroupCount(); ++i) - m_objects.append(new EggGroupModel(this, pokemod->eggGroup(i))); + for (int i = 0; i < pokemod->dialogCount(); ++i) + m_objects.append(new DialogModel(this, pokemod->dialog(i))); } -EggGroupGroupModel::~EggGroupGroupModel() +EggGroupGroupModel::EggGroupGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Egg Groups") { + setupData(); } -int EggGroupGroupModel::rowCount() const +EggGroupGroupModel::~EggGroupGroupModel() { - return static_cast<Pokemod*>(m_object)->eggGroupCount(); } int EggGroupGroupModel::indexNumber() const { - return 5; + return 6; } bool EggGroupGroupModel::insertRows(const int rows) @@ -259,27 +296,26 @@ bool EggGroupGroupModel::removeRows(const int position, const int rows) return true; } -ItemGroupModel::ItemGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Items") +void EggGroupGroupModel::setupData() { - // TODO: ItemModel -// Pokemod* pokemod = static_cast<Pokemod*>(m_object); -// for (int i = 0; i < pokemod->itemCount(); ++i) -// m_objects.append(new ItemModel(this, pokemod->item(i))); + Pokemod* pokemod = static_cast<Pokemod*>(m_object); + for (int i = 0; i < pokemod->eggGroupCount(); ++i) + m_objects.append(new EggGroupModel(this, pokemod->eggGroup(i))); } -ItemGroupModel::~ItemGroupModel() +ItemGroupModel::ItemGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Items") { + setupData(); } -int ItemGroupModel::rowCount() const +ItemGroupModel::~ItemGroupModel() { - return static_cast<Pokemod*>(m_object)->itemCount(); } int ItemGroupModel::indexNumber() const { - return 6; + return 7; } bool ItemGroupModel::insertRows(const int rows) @@ -301,26 +337,27 @@ bool ItemGroupModel::removeRows(const int position, const int rows) return true; } -ItemTypeGroupModel::ItemTypeGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Item Types") +void ItemGroupModel::setupData() { - Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->itemTypeCount(); ++i) - m_objects.append(new ItemTypeModel(this, pokemod->itemType(i))); + // TODO: ItemModel +// Pokemod* pokemod = static_cast<Pokemod*>(m_object); +// for (int i = 0; i < pokemod->itemCount(); ++i) +// m_objects.append(new ItemModel(this, pokemod->item(i))); } -ItemTypeGroupModel::~ItemTypeGroupModel() +ItemTypeGroupModel::ItemTypeGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Item Types") { + setupData(); } -int ItemTypeGroupModel::rowCount() const +ItemTypeGroupModel::~ItemTypeGroupModel() { - return static_cast<Pokemod*>(m_object)->itemTypeCount(); } int ItemTypeGroupModel::indexNumber() const { - return 7; + return 8; } bool ItemTypeGroupModel::insertRows(const int rows) @@ -341,27 +378,26 @@ bool ItemTypeGroupModel::removeRows(const int position, const int rows) return true; } -MapGroupModel::MapGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Maps") +void ItemTypeGroupModel::setupData() { - // TODO: MapModel -// Pokemod* pokemod = static_cast<Pokemod*>(m_object); -// for (int i = 0; i < pokemod->mapCount(); ++i) -// m_objects.append(new MapModel(this, pokemod->map(i))); + Pokemod* pokemod = static_cast<Pokemod*>(m_object); + for (int i = 0; i < pokemod->itemTypeCount(); ++i) + m_objects.append(new ItemTypeModel(this, pokemod->itemType(i))); } -MapGroupModel::~MapGroupModel() +MapGroupModel::MapGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Maps") { + setupData(); } -int MapGroupModel::rowCount() const +MapGroupModel::~MapGroupModel() { - return static_cast<Pokemod*>(m_object)->mapCount(); } int MapGroupModel::indexNumber() const { - return 8; + return 9; } bool MapGroupModel::insertRows(const int rows) @@ -383,27 +419,27 @@ bool MapGroupModel::removeRows(const int position, const int rows) return true; } -MoveGroupModel::MoveGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Moves") +void MapGroupModel::setupData() { - // TODO: MoveModel + // TODO: MapModel // Pokemod* pokemod = static_cast<Pokemod*>(m_object); -// for (int i = 0; i < pokemod->moveCount(); ++i) -// m_objects.append(new MoveModel(this, pokemod->move(i))); +// for (int i = 0; i < pokemod->mapCount(); ++i) +// m_objects.append(new MapModel(this, pokemod->map(i))); } -MoveGroupModel::~MoveGroupModel() +MoveGroupModel::MoveGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Moves") { + setupData(); } -int MoveGroupModel::rowCount() const +MoveGroupModel::~MoveGroupModel() { - return static_cast<Pokemod*>(m_object)->moveCount(); } int MoveGroupModel::indexNumber() const { - return 9; + return 10; } bool MoveGroupModel::insertRows(const int rows) @@ -425,26 +461,27 @@ bool MoveGroupModel::removeRows(const int position, const int rows) return true; } -NatureGroupModel::NatureGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Natures") +void MoveGroupModel::setupData() { - Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->natureCount(); ++i) - m_objects.append(new NatureModel(this, pokemod->nature(i))); + // TODO: MoveModel +// Pokemod* pokemod = static_cast<Pokemod*>(m_object); +// for (int i = 0; i < pokemod->moveCount(); ++i) +// m_objects.append(new MoveModel(this, pokemod->move(i))); } -NatureGroupModel::~NatureGroupModel() +NatureGroupModel::NatureGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Natures") { + setupData(); } -int NatureGroupModel::rowCount() const +NatureGroupModel::~NatureGroupModel() { - return static_cast<Pokemod*>(m_object)->natureCount(); } int NatureGroupModel::indexNumber() const { - return 10; + return 11; } bool NatureGroupModel::insertRows(const int rows) @@ -465,27 +502,26 @@ bool NatureGroupModel::removeRows(const int position, const int rows) return true; } -SpeciesGroupModel::SpeciesGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Species") +void NatureGroupModel::setupData() { - // TODO: SpeciesModel -// Pokemod* pokemod = static_cast<Pokemod*>(m_object); -// for (int i = 0; i < pokemod->speciesCount(); ++i) -// m_objects.append(new SpeciesModel(this, pokemod->species(i))); + Pokemod* pokemod = static_cast<Pokemod*>(m_object); + for (int i = 0; i < pokemod->natureCount(); ++i) + m_objects.append(new NatureModel(this, pokemod->nature(i))); } -SpeciesGroupModel::~SpeciesGroupModel() +SpeciesGroupModel::SpeciesGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Species") { + setupData(); } -int SpeciesGroupModel::rowCount() const +SpeciesGroupModel::~SpeciesGroupModel() { - return static_cast<Pokemod*>(m_object)->speciesCount(); } int SpeciesGroupModel::indexNumber() const { - return 11; + return 12; } bool SpeciesGroupModel::insertRows(const int rows) @@ -507,26 +543,27 @@ bool SpeciesGroupModel::removeRows(const int position, const int rows) return true; } -StoreGroupModel::StoreGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Stores") +void SpeciesGroupModel::setupData() { - Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->storeCount(); ++i) - m_objects.append(new StoreModel(this, pokemod->store(i))); + // TODO: SpeciesModel +// Pokemod* pokemod = static_cast<Pokemod*>(m_object); +// for (int i = 0; i < pokemod->speciesCount(); ++i) +// m_objects.append(new SpeciesModel(this, pokemod->species(i))); } -StoreGroupModel::~StoreGroupModel() +StoreGroupModel::StoreGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Stores") { + setupData(); } -int StoreGroupModel::rowCount() const +StoreGroupModel::~StoreGroupModel() { - return static_cast<Pokemod*>(m_object)->storeCount(); } int StoreGroupModel::indexNumber() const { - return 12; + return 13; } bool StoreGroupModel::insertRows(const int rows) @@ -547,26 +584,26 @@ bool StoreGroupModel::removeRows(const int position, const int rows) return true; } -TileGroupModel::TileGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Tiles") +void StoreGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->tileCount(); ++i) - m_objects.append(new TileModel(this, pokemod->tile(i))); + for (int i = 0; i < pokemod->storeCount(); ++i) + m_objects.append(new StoreModel(this, pokemod->store(i))); } -TileGroupModel::~TileGroupModel() +TileGroupModel::TileGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Tiles") { + setupData(); } -int TileGroupModel::rowCount() const +TileGroupModel::~TileGroupModel() { - return static_cast<Pokemod*>(m_object)->tileCount(); } int TileGroupModel::indexNumber() const { - return 13; + return 14; } bool TileGroupModel::insertRows(const int rows) @@ -587,26 +624,26 @@ bool TileGroupModel::removeRows(const int position, const int rows) return true; } -TimeGroupModel::TimeGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Times") +void TileGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->timeCount(); ++i) - m_objects.append(new TimeModel(this, pokemod->time(i))); + for (int i = 0; i < pokemod->tileCount(); ++i) + m_objects.append(new TileModel(this, pokemod->tile(i))); } -TimeGroupModel::~TimeGroupModel() +TimeGroupModel::TimeGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Times") { + setupData(); } -int TimeGroupModel::rowCount() const +TimeGroupModel::~TimeGroupModel() { - return static_cast<Pokemod*>(m_object)->timeCount(); } int TimeGroupModel::indexNumber() const { - return 14; + return 15; } bool TimeGroupModel::insertRows(const int rows) @@ -627,26 +664,27 @@ bool TimeGroupModel::removeRows(const int position, const int rows) return true; } -TrainerGroupModel::TrainerGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Trainers") +void TimeGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->trainerCount(); ++i) - m_objects.append(new TrainerModel(this, pokemod->trainer(i))); + for (int i = 0; i < pokemod->timeCount(); ++i) + m_objects.append(new TimeModel(this, pokemod->time(i))); } -TrainerGroupModel::~TrainerGroupModel() +TrainerGroupModel::TrainerGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Trainers") { + setupData(); } -int TrainerGroupModel::rowCount() const +TrainerGroupModel::~TrainerGroupModel() { - return static_cast<Pokemod*>(m_object)->trainerCount(); + setupData(); } int TrainerGroupModel::indexNumber() const { - return 15; + return 16; } bool TrainerGroupModel::insertRows(const int rows) @@ -667,26 +705,26 @@ bool TrainerGroupModel::removeRows(const int position, const int rows) return true; } -TypeGroupModel::TypeGroupModel(BaseModel* parent, Object* object) : - GroupModel(parent, object, "Types") +void TrainerGroupModel::setupData() { Pokemod* pokemod = static_cast<Pokemod*>(m_object); - for (int i = 0; i < pokemod->typeCount(); ++i) - m_objects.append(new TypeModel(this, pokemod->type(i))); + for (int i = 0; i < pokemod->trainerCount(); ++i) + m_objects.append(new TrainerModel(this, pokemod->trainer(i))); } -TypeGroupModel::~TypeGroupModel() +TypeGroupModel::TypeGroupModel(BaseModel* parent, Pokemod* pokemod) : + GroupModel(parent, pokemod, "Types") { + setupData(); } -int TypeGroupModel::rowCount() const +TypeGroupModel::~TypeGroupModel() { - return static_cast<Pokemod*>(m_object)->typeCount(); } int TypeGroupModel::indexNumber() const { - return 16; + return 17; } bool TypeGroupModel::insertRows(const int rows) @@ -707,8 +745,15 @@ bool TypeGroupModel::removeRows(const int position, const int rows) return true; } -PokemodModel::PokemodModel(BaseModel* parent, Object* object) : - GroupObjectModel(parent, object) +void TypeGroupModel::setupData() +{ + Pokemod* pokemod = static_cast<Pokemod*>(m_object); + for (int i = 0; i < pokemod->typeCount(); ++i) + m_objects.append(new TypeModel(this, pokemod->type(i))); +} + +PokemodModel::PokemodModel(BaseModel* parent, Pokemod* pokemod) : + GroupObjectModel(parent, pokemod) { setupData(); } @@ -738,7 +783,7 @@ QVariant PokemodModel::data(int role) const int PokemodModel::rowCount() const { - return 17; + return 18; } bool PokemodModel::setData(const QVariant& value, int role) @@ -771,54 +816,57 @@ BaseModel* PokemodModel::childItem(const int row) switch (row) { case 0: - model = m_abilities; + model = m_rules; break; case 1: - model = m_badges; + model = m_abilities; break; case 2: - model = m_coinLists; + model = m_authors; break; case 3: - model = m_dialogs; + model = m_badges; break; case 4: - model = m_eggGroups; + model = m_coinLists; break; case 5: - model = m_items; + model = m_dialogs; break; case 6: - model = m_itemTypes; + model = m_eggGroups; break; case 7: - model = m_maps; + model = m_items; break; case 8: - model = m_moves; + model = m_itemTypes; break; case 9: - model = m_natures; + model = m_maps; break; case 10: - model = m_rules; + model = m_moves; break; case 11: - model = m_species; + model = m_natures; break; case 12: - model = m_stores; + model = m_species; break; case 13: + model = m_stores; + break; + case 15: model = m_tiles; break; - case 14: + case 16: model = m_times; break; - case 15: + case 17: model = m_trainers; break; - case 16: + case 18: model = m_types; break; default: @@ -846,28 +894,30 @@ bool PokemodModel::removeRows(const int position, const int rows) void PokemodModel::setupData() { m_rules = new RulesModel(this, static_cast<Pokemod*>(m_object)->rules()); - m_abilities = new AbilityGroupModel(this, m_object); - m_badges = new BadgeGroupModel(this, m_object); - m_coinLists = new CoinListGroupModel(this, m_object); - m_dialogs = new DialogGroupModel(this, m_object); - m_eggGroups = new EggGroupGroupModel(this, m_object); - m_items = new ItemGroupModel(this, m_object); - m_itemTypes = new ItemTypeGroupModel(this, m_object); - m_maps = new MapGroupModel(this, m_object); - m_moves = new MoveGroupModel(this, m_object); - m_natures = new NatureGroupModel(this, m_object); - m_species = new SpeciesGroupModel(this, m_object); - m_stores = new StoreGroupModel(this, m_object); - m_tiles = new TileGroupModel(this, m_object); - m_times = new TimeGroupModel(this, m_object); - m_trainers = new TrainerGroupModel(this, m_object); - m_types = new TypeGroupModel(this, m_object); + m_abilities = new AbilityGroupModel(this, static_cast<Pokemod*>(m_object)); + m_authors = new AuthorGroupModel(this, static_cast<Pokemod*>(m_object)); + m_badges = new BadgeGroupModel(this, static_cast<Pokemod*>(m_object)); + m_coinLists = new CoinListGroupModel(this, static_cast<Pokemod*>(m_object)); + m_dialogs = new DialogGroupModel(this, static_cast<Pokemod*>(m_object)); + m_eggGroups = new EggGroupGroupModel(this, static_cast<Pokemod*>(m_object)); + m_items = new ItemGroupModel(this, static_cast<Pokemod*>(m_object)); + m_itemTypes = new ItemTypeGroupModel(this, static_cast<Pokemod*>(m_object)); + m_maps = new MapGroupModel(this, static_cast<Pokemod*>(m_object)); + m_moves = new MoveGroupModel(this, static_cast<Pokemod*>(m_object)); + m_natures = new NatureGroupModel(this, static_cast<Pokemod*>(m_object)); + m_species = new SpeciesGroupModel(this, static_cast<Pokemod*>(m_object)); + m_stores = new StoreGroupModel(this, static_cast<Pokemod*>(m_object)); + m_tiles = new TileGroupModel(this, static_cast<Pokemod*>(m_object)); + m_times = new TimeGroupModel(this, static_cast<Pokemod*>(m_object)); + m_trainers = new TrainerGroupModel(this, static_cast<Pokemod*>(m_object)); + m_types = new TypeGroupModel(this, static_cast<Pokemod*>(m_object)); } void PokemodModel::clearData() { delete m_rules; delete m_abilities; + delete m_authors; delete m_badges; delete m_coinLists; delete m_dialogs; diff --git a/pokemodr/models/PokemodModel.h b/pokemodr/models/PokemodModel.h index cec2951f..00bbf963 100644 --- a/pokemodr/models/PokemodModel.h +++ b/pokemodr/models/PokemodModel.h @@ -22,250 +22,268 @@ #include "BaseModel.h" #include "RulesModel.h" +// Forward declarations +class Pokemod; + class AbilityGroupModel : public GroupModel { public: - AbilityGroupModel(BaseModel* parent, Object* object); + AbilityGroupModel(BaseModel* parent, Pokemod* pokemod); ~AbilityGroupModel(); - int rowCount() const; + int indexNumber() const; + + bool insertRows(const int rows); + + bool removeRows(const int position, const int rows); + protected: + void setupData(); +}; + +class AuthorGroupModel : public GroupModel +{ + public: + AuthorGroupModel(BaseModel* parent, Pokemod* pokemod); + ~AuthorGroupModel(); int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class BadgeGroupModel : public GroupModel { public: - BadgeGroupModel(BaseModel* parent, Object* object); + BadgeGroupModel(BaseModel* parent, Pokemod* pokemod); ~BadgeGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class CoinListGroupModel : public GroupModel { public: - CoinListGroupModel(BaseModel* parent, Object* object); + CoinListGroupModel(BaseModel* parent, Pokemod* pokemod); ~CoinListGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class DialogGroupModel : public GroupModel { public: - DialogGroupModel(BaseModel* parent, Object* object); + DialogGroupModel(BaseModel* parent, Pokemod* pokemod); ~DialogGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class EggGroupGroupModel : public GroupModel { public: - EggGroupGroupModel(BaseModel* parent, Object* object); + EggGroupGroupModel(BaseModel* parent, Pokemod* pokemod); ~EggGroupGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class ItemGroupModel : public GroupModel { public: - ItemGroupModel(BaseModel* parent, Object* object); + ItemGroupModel(BaseModel* parent, Pokemod* pokemod); ~ItemGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class ItemTypeGroupModel : public GroupModel { public: - ItemTypeGroupModel(BaseModel* parent, Object* object); + ItemTypeGroupModel(BaseModel* parent, Pokemod* pokemod); ~ItemTypeGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class MapGroupModel : public GroupModel { public: - MapGroupModel(BaseModel* parent, Object* object); + MapGroupModel(BaseModel* parent, Pokemod* pokemod); ~MapGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class MoveGroupModel : public GroupModel { public: - MoveGroupModel(BaseModel* parent, Object* object); + MoveGroupModel(BaseModel* parent, Pokemod* pokemod); ~MoveGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class NatureGroupModel : public GroupModel { public: - NatureGroupModel(BaseModel* parent, Object* object); + NatureGroupModel(BaseModel* parent, Pokemod* pokemod); ~NatureGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class SpeciesGroupModel : public GroupModel { public: - SpeciesGroupModel(BaseModel* parent, Object* object); + SpeciesGroupModel(BaseModel* parent, Pokemod* pokemod); ~SpeciesGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class StoreGroupModel : public GroupModel { public: - StoreGroupModel(BaseModel* parent, Object* object); + StoreGroupModel(BaseModel* parent, Pokemod* pokemod); ~StoreGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class TileGroupModel : public GroupModel { public: - TileGroupModel(BaseModel* parent, Object* object); + TileGroupModel(BaseModel* parent, Pokemod* pokemod); ~TileGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class TimeGroupModel : public GroupModel { public: - TimeGroupModel(BaseModel* parent, Object* object); + TimeGroupModel(BaseModel* parent, Pokemod* pokemod); ~TimeGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class TrainerGroupModel : public GroupModel { public: - TrainerGroupModel(BaseModel* parent, Object* object); + TrainerGroupModel(BaseModel* parent, Pokemod* pokemod); ~TrainerGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class TypeGroupModel : public GroupModel { public: - TypeGroupModel(BaseModel* parent, Object* object); + TypeGroupModel(BaseModel* parent, Pokemod* pokemod); ~TypeGroupModel(); - int rowCount() const; - int indexNumber() const; bool insertRows(const int rows); bool removeRows(const int position, const int rows); + protected: + void setupData(); }; class PokemodModel : public GroupObjectModel { public: - PokemodModel(BaseModel* parent, Object* object); + PokemodModel(BaseModel* parent, Pokemod* pokemod); ~PokemodModel(); QVariant data(int role = Qt::DisplayRole) const; @@ -279,12 +297,13 @@ class PokemodModel : public GroupObjectModel bool insertRows(const int rows); bool removeRows(const int position, const int rows); - private: + protected: void setupData(); void clearData(); - + private: RulesModel* m_rules; AbilityGroupModel* m_abilities; + AuthorGroupModel* m_authors; BadgeGroupModel* m_badges; CoinListGroupModel* m_coinLists; DialogGroupModel* m_dialogs; diff --git a/pokemodr/models/RootModel.cpp b/pokemodr/models/RootModel.cpp index 851286d1..a0a237f8 100644 --- a/pokemodr/models/RootModel.cpp +++ b/pokemodr/models/RootModel.cpp @@ -30,14 +30,7 @@ RootModel::RootModel(const QList<QVariant>& pokemods) : GroupModel(NULL, NULL) { - QFile fin("full.pmod"); - fin.open(QIODevice::ReadOnly); - QDomDocument xml; - xml.setContent(&fin); - fin.close(); - m_objects.append(new PokemodModel(this, new Pokemod(xml.documentElement()))); - m_objects.append(new PokemodModel(this, new Pokemod(xml.documentElement()))); - // TODO: make sub models from data + setupData(); } RootModel::~RootModel() @@ -65,3 +58,21 @@ bool RootModel::removeRows(const int position, const int rows) } return true; } + +void RootModel::setupData() +{ + setupData(QList<QVariant>()); +} + + +void RootModel::setupData(const QList<QVariant>& pokemods) +{ + QFile fin("full.pmod"); + fin.open(QIODevice::ReadOnly); + QDomDocument xml; + xml.setContent(&fin); + fin.close(); + m_objects.append(new PokemodModel(this, new Pokemod(xml.documentElement()))); + m_objects.append(new PokemodModel(this, new Pokemod(xml.documentElement()))); + // TODO: make sub models from data +} diff --git a/pokemodr/models/RootModel.h b/pokemodr/models/RootModel.h index 594f8995..edf1def0 100644 --- a/pokemodr/models/RootModel.h +++ b/pokemodr/models/RootModel.h @@ -35,7 +35,9 @@ class RootModel : public GroupModel bool insertRows(const int rows); bool removeRows(const int position, const int rows); - + protected: + void setupData(); + void setupData(const QList<QVariant>& pokemods); }; #endif diff --git a/pokemodr/models/RulesModel.cpp b/pokemodr/models/RulesModel.cpp index 6eb131f0..809be454 100644 --- a/pokemodr/models/RulesModel.cpp +++ b/pokemodr/models/RulesModel.cpp @@ -28,8 +28,8 @@ #include <QDomDocument> #include <QFile> -RulesModel::RulesModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +RulesModel::RulesModel(BaseModel* parent, Rules* rules) : + ObjectModel(parent, rules) { } diff --git a/pokemodr/models/RulesModel.h b/pokemodr/models/RulesModel.h index 1ce9f070..1090d713 100644 --- a/pokemodr/models/RulesModel.h +++ b/pokemodr/models/RulesModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Rules; + class RulesModel : public ObjectModel { public: - RulesModel(BaseModel* parent, Object* object); + RulesModel(BaseModel* parent, Rules* rules); ~RulesModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/StoreModel.cpp b/pokemodr/models/StoreModel.cpp index e5ad6cc6..8fe55f60 100644 --- a/pokemodr/models/StoreModel.cpp +++ b/pokemodr/models/StoreModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -StoreModel::StoreModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +StoreModel::StoreModel(BaseModel* parent, Store* store) : + ObjectModel(parent, store) { } @@ -80,5 +80,5 @@ bool StoreModel::setData(const QVariant& value, int role) int StoreModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->storeIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->storeIndex(m_object->id()); } diff --git a/pokemodr/models/StoreModel.h b/pokemodr/models/StoreModel.h index e269c70b..06dd05dc 100644 --- a/pokemodr/models/StoreModel.h +++ b/pokemodr/models/StoreModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Store; + class StoreModel : public ObjectModel { public: - StoreModel(BaseModel* parent, Object* object); + StoreModel(BaseModel* parent, Store* store); ~StoreModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/TileModel.cpp b/pokemodr/models/TileModel.cpp index 5515650a..1cf48bc7 100644 --- a/pokemodr/models/TileModel.cpp +++ b/pokemodr/models/TileModel.cpp @@ -80,5 +80,5 @@ bool TileModel::setData(const QVariant& value, int role) int TileModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->tileIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->tileIndex(m_object->id()); } diff --git a/pokemodr/models/TimeModel.cpp b/pokemodr/models/TimeModel.cpp index 3b45b70c..bb9f2381 100644 --- a/pokemodr/models/TimeModel.cpp +++ b/pokemodr/models/TimeModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -TimeModel::TimeModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +TimeModel::TimeModel(BaseModel* parent, Time* time) : + ObjectModel(parent, time) { } @@ -80,5 +80,5 @@ bool TimeModel::setData(const QVariant& value, int role) int TimeModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->timeIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->timeIndex(m_object->id()); } diff --git a/pokemodr/models/TimeModel.h b/pokemodr/models/TimeModel.h index 2b7865d3..b8fa24b4 100644 --- a/pokemodr/models/TimeModel.h +++ b/pokemodr/models/TimeModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Time; + class TimeModel : public ObjectModel { public: - TimeModel(BaseModel* parent, Object* object); + TimeModel(BaseModel* parent, Time* time); ~TimeModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/TrainerModel.cpp b/pokemodr/models/TrainerModel.cpp index 8bd0ed4b..94fbe52b 100644 --- a/pokemodr/models/TrainerModel.cpp +++ b/pokemodr/models/TrainerModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -TrainerModel::TrainerModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +TrainerModel::TrainerModel(BaseModel* parent, Trainer* trainer) : + ObjectModel(parent, trainer) { } @@ -80,5 +80,5 @@ bool TrainerModel::setData(const QVariant& value, int role) int TrainerModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->trainerIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->trainerIndex(m_object->id()); } diff --git a/pokemodr/models/TrainerModel.h b/pokemodr/models/TrainerModel.h index e2d40e0a..215083b3 100644 --- a/pokemodr/models/TrainerModel.h +++ b/pokemodr/models/TrainerModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Trainer; + class TrainerModel : public ObjectModel { public: - TrainerModel(BaseModel* parent, Object* object); + TrainerModel(BaseModel* parent, Trainer* trainer); ~TrainerModel(); QVariant data(int role = Qt::DisplayRole) const; diff --git a/pokemodr/models/TypeModel.cpp b/pokemodr/models/TypeModel.cpp index 52c5c365..ae894e80 100644 --- a/pokemodr/models/TypeModel.cpp +++ b/pokemodr/models/TypeModel.cpp @@ -29,8 +29,8 @@ #include <QDomDocument> #include <QFile> -TypeModel::TypeModel(BaseModel* parent, Object* object) : - ObjectModel(parent, object) +TypeModel::TypeModel(BaseModel* parent, Type* type) : + ObjectModel(parent, type) { } @@ -80,5 +80,5 @@ bool TypeModel::setData(const QVariant& value, int role) int TypeModel::indexNumber() const { - return static_cast<const Pokemod*>(m_object->pokemod())->typeIndex(m_object->id()); + return static_cast<const Pokemod*>(m_object->parent())->typeIndex(m_object->id()); } diff --git a/pokemodr/models/TypeModel.h b/pokemodr/models/TypeModel.h index 9c9afaf6..ca21c458 100644 --- a/pokemodr/models/TypeModel.h +++ b/pokemodr/models/TypeModel.h @@ -21,10 +21,13 @@ // Model includes #include "BaseModel.h" +// Forward declarations +class Type; + class TypeModel : public ObjectModel { public: - TypeModel(BaseModel* parent, Object* object); + TypeModel(BaseModel* parent, Type* type); ~TypeModel(); QVariant data(int role = Qt::DisplayRole) const; |