summaryrefslogtreecommitdiffstats
path: root/pokemodr/PokeModrUI.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-02-25 16:26:07 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-02-25 16:26:07 +0000
commit86b07a87ceb0154a254f104b3135a51787c57f30 (patch)
tree1c6b5e3460029e97c69df0a99868400cbe11e482 /pokemodr/PokeModrUI.cpp
parent1e02a507f0b481465f5b47441479b98a81aee079 (diff)
downloadsigen-86b07a87ceb0154a254f104b3135a51787c57f30.tar.gz
sigen-86b07a87ceb0154a254f104b3135a51787c57f30.tar.xz
sigen-86b07a87ceb0154a254f104b3135a51787c57f30.zip
[ADD] Pokemod tree will reflect PokéMod heirarchy and load panels
[FIX] PokemodUI panel now loads [FIX] Includes fixed [FIX] newAuthor had + instead of - (QList assertions) [FIX] Pokemod copying works now [FIX] Debug rather than release used git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@83 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/PokeModrUI.cpp')
-rw-r--r--pokemodr/PokeModrUI.cpp358
1 files changed, 256 insertions, 102 deletions
diff --git a/pokemodr/PokeModrUI.cpp b/pokemodr/PokeModrUI.cpp
index 4159d4e4..acef2ef4 100644
--- a/pokemodr/PokeModrUI.cpp
+++ b/pokemodr/PokeModrUI.cpp
@@ -32,8 +32,38 @@
#include <BugCatcher.h>
#include <Exception.h>
-#include "PokeModrUI.h"
-#include "PokeModTreeItem.h"
+#include <Ability.h>
+#include <AbilityEffect.h>
+#include <Author.h>
+#include <Badge.h>
+#include <CoinList.h>
+#include <CoinListObject.h>
+#include <Dialog.h>
+#include <EggGroup.h>
+#include <Item.h>
+#include <ItemEffect.h>
+#include <ItemType.h>
+#include <Map.h>
+#include <MapEffect.h>
+#include <MapTrainer.h>
+#include <MapTrainerTeamMember.h>
+#include <MapWarp.h>
+#include <MapWildList.h>
+#include <MapWildListEncounter.h>
+#include <Move.h>
+#include <MoveEffect.h>
+#include <Nature.h>
+#include <Pokemod.h>
+#include <Rules.h>
+#include <Species.h>
+#include <SpeciesAbility.h>
+#include <SpeciesEvolution.h>
+#include <SpeciesItem.h>
+#include <SpeciesMove.h>
+#include <Store.h>
+#include <Tile.h>
+#include <Time.h>
+#include <Type.h>
#include "AbilityUI.h"
// #include "AbilityEffectUI.h"
@@ -68,10 +98,14 @@
#include "TimeUI.h"
#include "TypeUI.h"
+#include "PokeModrUI.h"
+#include "PokeModTreeItem.h"
+
PokeModrUI::PokeModrUI(KConfigGroup cfg, KConfigGroup history, QWidget* parent) :
KMainWindow(parent),
config(cfg),
- recent("&Recent Files...", NULL)
+ recent("&Recent Files...", NULL),
+ clipboard(NULL)
{
setupUi(this);
QMetaObject::connectSlotsByName(this);
@@ -79,11 +113,16 @@ PokeModrUI::PokeModrUI(KConfigGroup cfg, KConfigGroup history, QWidget* parent)
menuBar()->addMenu(customHelpMenu(false));
restoreWindowSize(cfg);
splitter->setSizes(QList<int>() << cfg.readEntry("treeWidth", 100) << cfg.readEntry("panelWidth", 100));
- if (cfg.readEntry("reloadOnStart", false))
- {
- for (int i = 0; i < cfg.readEntry("openedFiles", 0); ++i)
- openPokeMod(recent.urls().at(i));
- }
+// if (cfg.readEntry("reloadOnStart", false))
+// {
+// for (int i = 0; i < cfg.readEntry("openedFiles", 0); ++i)
+// openPokeMod(recent.urls().at(i));
+// }
+ Pokemod* p = new Pokemod();
+ p->setTitle("foo");
+ p->newAuthor()->setName("Bob");
+ p->newAbility()->setName("Awesome");
+ pokemods.append(p);
rebuildTree();
}
@@ -94,6 +133,112 @@ PokeModrUI::~PokeModrUI()
void PokeModrUI::rebuildTree()
{
+ treePokemod->clear();
+ for (QListIterator<Pokemod*> i(pokemods); i.hasNext(); i.next())
+ {
+ Pokemod* p = i.peekNext();
+ PokeModTreeItem* pti = new PokeModTreeItem(p, treePokemod);
+ PokeModTreeItem* abilities = new PokeModTreeItem("Abilities", pti);
+ for (int i = 0; i < p->getAbilityCount(); ++i)
+ {
+ Ability* a = p->getAbility(i);
+ PokeModTreeItem* ability = new PokeModTreeItem(a, abilities);
+ PokeModTreeItem* effect = new PokeModTreeItem("Effects", ability);
+ for (int j = 0; j < a->getEffectCount(); ++j)
+ new PokeModTreeItem(a->getEffect(j), effect);
+ }
+ PokeModTreeItem* authors = new PokeModTreeItem("Authors", pti);
+ for (int i = 0; i < p->getAuthorCount(); ++i)
+ new PokeModTreeItem(p->getAuthor(i), authors);
+ PokeModTreeItem* badges = new PokeModTreeItem("Badges", pti);
+ for (int i = 0; i < p->getBadgeCount(); ++i)
+ new PokeModTreeItem(p->getBadge(i), badges);
+ PokeModTreeItem* coinLists = new PokeModTreeItem("Coin Lists", pti);
+ for (int i = 0; i < p->getCoinListCount(); ++i)
+ {
+ CoinList* c = p->getCoinList(i);
+ PokeModTreeItem* coinList = new PokeModTreeItem(c, coinLists);
+ PokeModTreeItem* object = new PokeModTreeItem("Objects", coinList);
+ for (int j = 0; j < c->getItemCount(); ++j)
+ new PokeModTreeItem(c->getItem(j), object);
+ }
+ PokeModTreeItem* eggGroups = new PokeModTreeItem("Egg Groups", pti);
+ for (int i = 0; i < p->getEggGroupCount(); ++i)
+ new PokeModTreeItem(p->getEggGroup(i), eggGroups);
+ PokeModTreeItem* items = new PokeModTreeItem("Items", pti);
+ for (int i = 0; i < p->getItemCount(); ++i)
+ {
+ Item* it = p->getItem(i);
+ PokeModTreeItem* item = new PokeModTreeItem(it, items);
+ PokeModTreeItem* effect = new PokeModTreeItem("Effects", item);
+ for (int j = 0; j < it->getEffectCount(); ++j)
+ new PokeModTreeItem(it->getEffect(j), effect);
+ }
+ PokeModTreeItem* maps = new PokeModTreeItem("Maps", pti);
+ for (int i = 0; i < p->getMapCount(); ++i)
+ {
+ Map* m = p->getMap(i);
+ PokeModTreeItem* map = new PokeModTreeItem(m, maps);
+ PokeModTreeItem* effect = new PokeModTreeItem("Effects", map);
+ for (int j = 0; j < m->getEffectCount(); ++j)
+ new PokeModTreeItem(m->getEffect(j), effect);
+ PokeModTreeItem* trainers = new PokeModTreeItem("Trainers", map);
+ for (int j = 0; j < m->getTrainerCount(); ++j)
+ {
+ MapTrainer* t = m->getTrainer(j);
+ PokeModTreeItem* trainer = new PokeModTreeItem(t, trainers);
+ PokeModTreeItem* member = new PokeModTreeItem("Team", trainer);
+ for (int k = 0; k < t->getTeamMemberCount(); ++k)
+ new PokeModTreeItem(t->getTeamMember(k), member);
+ }
+ PokeModTreeItem* warp = new PokeModTreeItem("Warps", map);
+ for (int j = 0; j < m->getWarpCount(); ++j)
+ new PokeModTreeItem(m->getWarp(j), warp);
+ PokeModTreeItem* wildLists = new PokeModTreeItem("Wild Lists", map);
+ for (int j = 0; j < m->getWildListCount(); ++j)
+ {
+ MapWildList* w = m->getWildList(j);
+ PokeModTreeItem* wildList = new PokeModTreeItem(w, wildLists);
+ PokeModTreeItem* encounter = new PokeModTreeItem("Encounters", wildList);
+ for (int k = 0; k < w->getEncounterCount(); ++k)
+ new PokeModTreeItem(w->getEncounter(k), encounter);
+ }
+ }
+ PokeModTreeItem* natures = new PokeModTreeItem("Natures", pti);
+ for (int i = 0; i < p->getNatureCount(); ++i)
+ new PokeModTreeItem(p->getNature(i), natures);
+ new PokeModTreeItem(p->getRules(), pti);
+ PokeModTreeItem* species = new PokeModTreeItem("Species", pti);
+ for (int i = 0; i < p->getSpeciesCount(); ++i)
+ {
+ Species* s = p->getSpecies(i);
+ PokeModTreeItem* specie = new PokeModTreeItem(s, species);
+ PokeModTreeItem* ability = new PokeModTreeItem("Abilities", specie);
+ for (int j = 0; j < s->getAbilityCount(); ++j)
+ new PokeModTreeItem(s->getAbility(j), ability);
+ PokeModTreeItem* evolution = new PokeModTreeItem("Evolutions", specie);
+ for (int j = 0; j < s->getEvolutionCount(); ++j)
+ new PokeModTreeItem(s->getEvolution(j), evolution);
+ PokeModTreeItem* item = new PokeModTreeItem("Items", specie);
+ for (int j = 0; j < s->getItemCount(); ++j)
+ new PokeModTreeItem(s->getItem(j), item);
+ PokeModTreeItem* move = new PokeModTreeItem("Moves", specie);
+ for (int j = 0; j < s->getMoveCount(); ++j)
+ new PokeModTreeItem(s->getMove(j), move);
+ }
+ PokeModTreeItem* stores = new PokeModTreeItem("Stores", pti);
+ for (int i = 0; i < p->getStoreCount(); ++i)
+ new PokeModTreeItem(p->getStore(i), stores);
+ PokeModTreeItem* tiles = new PokeModTreeItem("Tiles", pti);
+ for (int i = 0; i < p->getTileCount(); ++i)
+ new PokeModTreeItem(p->getTile(i), tiles);
+ PokeModTreeItem* times = new PokeModTreeItem("Times", pti);
+ for (int i = 0; i < p->getTimeCount(); ++i)
+ new PokeModTreeItem(p->getTime(i), times);
+ PokeModTreeItem* types = new PokeModTreeItem("Types", pti);
+ for (int i = 0; i < p->getTypeCount(); ++i)
+ new PokeModTreeItem(p->getType(i), types);
+ }
}
void PokeModrUI::openPokeMod(const KUrl& path)
@@ -141,6 +286,12 @@ void PokeModrUI::closePokeMod()
}
}
+void PokeModrUI::closeEvent(QCloseEvent* event)
+{
+ on_actionQuit_triggered();
+ event->accept();
+}
+
void PokeModrUI::setChangedTitle(const bool c)
{
if (formPanel->widget())
@@ -195,38 +346,39 @@ void PokeModrUI::on_actionCopy_triggered()
delete clipboard;
Object* o = static_cast<ObjectUI*>(formPanel->widget())->getOriginal();
QString name(o->getClassName());
-#define IF_IS_CLASS(class) if (name == "class") clipboard = new class(o->getPokemod(), *static_cast<class*>(o), o->getId())
- IF_IS_CLASS(Ability);
- else IF_IS_CLASS(AbilityEffect);
- else IF_IS_CLASS(Badge);
- else IF_IS_CLASS(CoinList);
- else IF_IS_CLASS(CoinListObject);
- else IF_IS_CLASS(Dialog);
- else IF_IS_CLASS(EggGroup);
- else IF_IS_CLASS(Item);
- else IF_IS_CLASS(ItemEffect);
- else IF_IS_CLASS(ItemType);
- else IF_IS_CLASS(Map);
- else IF_IS_CLASS(MapEffect);
- else IF_IS_CLASS(MapTrainer);
- else IF_IS_CLASS(MapTrainerTeamMember);
- else IF_IS_CLASS(MapWarp);
- else IF_IS_CLASS(MapWildList);
- else IF_IS_CLASS(MapWildListEncounter);
- else IF_IS_CLASS(Move);
- else IF_IS_CLASS(MoveEffect);
- else IF_IS_CLASS(Nature);
+#define IF_IS_CLASS(class) if (name == #class) clipboard = new class(o->getPokemod(), *static_cast<class*>(o), o->getId());
+ IF_IS_CLASS(Ability)
+ else IF_IS_CLASS(AbilityEffect)
+ else IF_IS_CLASS(Author)
+ else IF_IS_CLASS(Badge)
+ else IF_IS_CLASS(CoinList)
+ else IF_IS_CLASS(CoinListObject)
+ else IF_IS_CLASS(Dialog)
+ else IF_IS_CLASS(EggGroup)
+ else IF_IS_CLASS(Item)
+ else IF_IS_CLASS(ItemEffect)
+ else IF_IS_CLASS(ItemType)
+ else IF_IS_CLASS(Map)
+ else IF_IS_CLASS(MapEffect)
+ else IF_IS_CLASS(MapTrainer)
+ else IF_IS_CLASS(MapTrainerTeamMember)
+ else IF_IS_CLASS(MapWarp)
+ else IF_IS_CLASS(MapWildList)
+ else IF_IS_CLASS(MapWildListEncounter)
+ else IF_IS_CLASS(Move)
+ else IF_IS_CLASS(MoveEffect)
+ else IF_IS_CLASS(Nature)
else if (name == "Pokemod") clipboard = new Pokemod(*static_cast<Pokemod*>(o));
else if (name == "Rules") clipboard = new Rules(o->getPokemod());
- else IF_IS_CLASS(Species);
- else IF_IS_CLASS(SpeciesAbility);
- else IF_IS_CLASS(SpeciesEvolution);
- else IF_IS_CLASS(SpeciesItem);
- else IF_IS_CLASS(SpeciesMove);
- else IF_IS_CLASS(Store);
- else IF_IS_CLASS(Tile);
- else IF_IS_CLASS(Time);
- else IF_IS_CLASS(Type);
+ else IF_IS_CLASS(Species)
+ else IF_IS_CLASS(SpeciesAbility)
+ else IF_IS_CLASS(SpeciesEvolution)
+ else IF_IS_CLASS(SpeciesItem)
+ else IF_IS_CLASS(SpeciesMove)
+ else IF_IS_CLASS(Store)
+ else IF_IS_CLASS(Tile)
+ else IF_IS_CLASS(Time)
+ else IF_IS_CLASS(Type)
#undef IF_IS_CLASS
}
@@ -238,38 +390,39 @@ void PokeModrUI::on_actionPaste_triggered()
if (clipboard->getClassName() != o->getClassName())
return;
QString name(clipboard->getClassName());
-#define IF_IS_CLASS(class) if (name == "class") *static_cast<class*>(static_cast<ObjectUI*>(formPanel->widget())->getOriginal()) = *static_cast<class*>(clipboard)
- IF_IS_CLASS(Ability);
- else IF_IS_CLASS(AbilityEffect);
- else IF_IS_CLASS(Badge);
- else IF_IS_CLASS(CoinList);
- else IF_IS_CLASS(CoinListObject);
- else IF_IS_CLASS(Dialog);
- else IF_IS_CLASS(EggGroup);
- else IF_IS_CLASS(Item);
- else IF_IS_CLASS(ItemEffect);
- else IF_IS_CLASS(ItemType);
- else IF_IS_CLASS(Map);
- else IF_IS_CLASS(MapEffect);
- else IF_IS_CLASS(MapTrainer);
- else IF_IS_CLASS(MapTrainerTeamMember);
- else IF_IS_CLASS(MapWarp);
- else IF_IS_CLASS(MapWildList);
- else IF_IS_CLASS(MapWildListEncounter);
- else IF_IS_CLASS(Move);
- else IF_IS_CLASS(MoveEffect);
- else IF_IS_CLASS(Nature);
- else IF_IS_CLASS(Pokemod);
- else IF_IS_CLASS(Rules);
- else IF_IS_CLASS(Species);
- else IF_IS_CLASS(SpeciesAbility);
- else IF_IS_CLASS(SpeciesEvolution);
- else IF_IS_CLASS(SpeciesItem);
- else IF_IS_CLASS(SpeciesMove);
- else IF_IS_CLASS(Store);
- else IF_IS_CLASS(Tile);
- else IF_IS_CLASS(Time);
- else IF_IS_CLASS(Type);
+#define IF_IS_CLASS(class) if (name == #class) *static_cast<class*>(o) = *static_cast<class*>(clipboard);
+ IF_IS_CLASS(Ability)
+ else IF_IS_CLASS(AbilityEffect)
+ else IF_IS_CLASS(Author)
+ else IF_IS_CLASS(Badge)
+ else IF_IS_CLASS(CoinList)
+ else IF_IS_CLASS(CoinListObject)
+ else IF_IS_CLASS(Dialog)
+ else IF_IS_CLASS(EggGroup)
+ else IF_IS_CLASS(Item)
+ else IF_IS_CLASS(ItemEffect)
+ else IF_IS_CLASS(ItemType)
+ else IF_IS_CLASS(Map)
+ else IF_IS_CLASS(MapEffect)
+ else IF_IS_CLASS(MapTrainer)
+ else IF_IS_CLASS(MapTrainerTeamMember)
+ else IF_IS_CLASS(MapWarp)
+ else IF_IS_CLASS(MapWildList)
+ else IF_IS_CLASS(MapWildListEncounter)
+ else IF_IS_CLASS(Move)
+ else IF_IS_CLASS(MoveEffect)
+ else IF_IS_CLASS(Nature)
+ else IF_IS_CLASS(Pokemod)
+ else IF_IS_CLASS(Rules)
+ else IF_IS_CLASS(Species)
+ else IF_IS_CLASS(SpeciesAbility)
+ else IF_IS_CLASS(SpeciesEvolution)
+ else IF_IS_CLASS(SpeciesItem)
+ else IF_IS_CLASS(SpeciesMove)
+ else IF_IS_CLASS(Store)
+ else IF_IS_CLASS(Tile)
+ else IF_IS_CLASS(Time)
+ else IF_IS_CLASS(Type)
#undef IF_IS_CLASS
rebuildTree();
}
@@ -298,38 +451,39 @@ void PokeModrUI::on_treePokemod_itemSelectionChanged()
Object* o = selected->getObject();
QString name(o->getClassName());
ObjectUI* widget = NULL;
-#define IF_IS_CLASS(class) if (name == "class") widget = new class##UI(static_cast<class*>(o), formPanel)
- IF_IS_CLASS(Ability);
-// else IF_IS_CLASS(AbilityEffect);
- else IF_IS_CLASS(Badge);
- else IF_IS_CLASS(CoinList);
- else IF_IS_CLASS(CoinListObject);
-// else IF_IS_CLASS(Dialog);
- else IF_IS_CLASS(EggGroup);
- else IF_IS_CLASS(Item);
-// else IF_IS_CLASS(ItemEffect);
- else IF_IS_CLASS(ItemType);
- else IF_IS_CLASS(Map);
-// else IF_IS_CLASS(MapEffect);
-// else IF_IS_CLASS(MapTrainer);
- else IF_IS_CLASS(MapTrainerTeamMember);
- else IF_IS_CLASS(MapWarp);
- else IF_IS_CLASS(MapWildList);
- else IF_IS_CLASS(MapWildListEncounter);
- else IF_IS_CLASS(Move);
-// else IF_IS_CLASS(MoveEffect);
- else IF_IS_CLASS(Nature);
- else IF_IS_CLASS(Pokemod);
- else IF_IS_CLASS(Rules);
- else IF_IS_CLASS(Species);
- else IF_IS_CLASS(SpeciesAbility);
- else IF_IS_CLASS(SpeciesEvolution);
- else IF_IS_CLASS(SpeciesItem);
- else IF_IS_CLASS(SpeciesMove);
- else IF_IS_CLASS(Store);
- else IF_IS_CLASS(Tile);
- else IF_IS_CLASS(Time);
- else IF_IS_CLASS(Type);
+#define IF_IS_CLASS(class) if (name == #class) widget = new class##UI(static_cast<class*>(o), formPanel);
+ IF_IS_CLASS(Ability)
+// else IF_IS_CLASS(AbilityEffect)
+ else IF_IS_CLASS(Author)
+ else IF_IS_CLASS(Badge)
+ else IF_IS_CLASS(CoinList)
+ else IF_IS_CLASS(CoinListObject)
+// else IF_IS_CLASS(Dialog)
+ else IF_IS_CLASS(EggGroup)
+ else IF_IS_CLASS(Item)
+// else IF_IS_CLASS(ItemEffect)
+ else IF_IS_CLASS(ItemType)
+ else IF_IS_CLASS(Map)
+// else IF_IS_CLASS(MapEffect)
+// else IF_IS_CLASS(MapTrainer)
+ else IF_IS_CLASS(MapTrainerTeamMember)
+ else IF_IS_CLASS(MapWarp)
+ else IF_IS_CLASS(MapWildList)
+ else IF_IS_CLASS(MapWildListEncounter)
+ else IF_IS_CLASS(Move)
+// else IF_IS_CLASS(MoveEffect)
+ else IF_IS_CLASS(Nature)
+ else IF_IS_CLASS(Pokemod)
+ else IF_IS_CLASS(Rules)
+ else IF_IS_CLASS(Species)
+ else IF_IS_CLASS(SpeciesAbility)
+ else IF_IS_CLASS(SpeciesEvolution)
+ else IF_IS_CLASS(SpeciesItem)
+ else IF_IS_CLASS(SpeciesMove)
+ else IF_IS_CLASS(Store)
+ else IF_IS_CLASS(Tile)
+ else IF_IS_CLASS(Time)
+ else IF_IS_CLASS(Type)
#undef IF_IS_CLASS
formPanel->setWidget(widget);
connect(widget, SIGNAL(changed(bool)), selected, SLOT(updateName()));