summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Changelog8
-rw-r--r--pokemodr/PokemodTreeModel.cpp3
-rw-r--r--pokemodr/models/AbilityEffectModel.cpp7
-rw-r--r--pokemodr/models/AbilityEffectModel.h5
-rw-r--r--pokemodr/models/AbilityModel.cpp6
-rw-r--r--pokemodr/models/AbilityModel.h7
-rw-r--r--pokemodr/models/BadgeModel.cpp6
-rw-r--r--pokemodr/models/BadgeModel.h5
-rw-r--r--pokemodr/models/BaseModel.h2
-rw-r--r--pokemodr/models/CoinListModel.cpp6
-rw-r--r--pokemodr/models/CoinListModel.h7
-rw-r--r--pokemodr/models/CoinListObjectModel.cpp5
-rw-r--r--pokemodr/models/CoinListObjectModel.h5
-rw-r--r--pokemodr/models/DialogModel.cpp6
-rw-r--r--pokemodr/models/DialogModel.h5
-rw-r--r--pokemodr/models/EggGroupModel.cpp6
-rw-r--r--pokemodr/models/EggGroupModel.h5
-rw-r--r--pokemodr/models/ItemTypeModel.cpp6
-rw-r--r--pokemodr/models/ItemTypeModel.h5
-rw-r--r--pokemodr/models/NatureModel.cpp6
-rw-r--r--pokemodr/models/NatureModel.h5
-rw-r--r--pokemodr/models/PokemodModel.cpp400
-rw-r--r--pokemodr/models/PokemodModel.h119
-rw-r--r--pokemodr/models/RootModel.cpp27
-rw-r--r--pokemodr/models/RootModel.h4
-rw-r--r--pokemodr/models/RulesModel.cpp4
-rw-r--r--pokemodr/models/RulesModel.h5
-rw-r--r--pokemodr/models/StoreModel.cpp6
-rw-r--r--pokemodr/models/StoreModel.h5
-rw-r--r--pokemodr/models/TileModel.cpp2
-rw-r--r--pokemodr/models/TimeModel.cpp6
-rw-r--r--pokemodr/models/TimeModel.h5
-rw-r--r--pokemodr/models/TrainerModel.cpp6
-rw-r--r--pokemodr/models/TrainerModel.h5
-rw-r--r--pokemodr/models/TypeModel.cpp6
-rw-r--r--pokemodr/models/TypeModel.h5
36 files changed, 428 insertions, 293 deletions
diff --git a/Changelog b/Changelog
index 3fbf2c55..8e19fb56 100644
--- a/Changelog
+++ b/Changelog
@@ -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;