diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-02-28 02:18:33 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-02-28 02:18:33 +0000 |
| commit | d26c1c706f1f386ef7813a0499ea3eda3ec43e10 (patch) | |
| tree | 20ff2faf90e279b1a9501203a4c8d1e31402b39d /pokemodr/PokeModrUI.cpp | |
| parent | d52f6c9f71c1ee94539fe94bd821df608d7ee602 (diff) | |
| download | sigen-d26c1c706f1f386ef7813a0499ea3eda3ec43e10.tar.gz sigen-d26c1c706f1f386ef7813a0499ea3eda3ec43e10.tar.xz sigen-d26c1c706f1f386ef7813a0499ea3eda3ec43e10.zip | |
[FIX] UI classes now have initGui and refreshGui
[FIX] PokeModTreeItem now is the monster class rather than PokeModrUI
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@88 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/PokeModrUI.cpp')
| -rw-r--r-- | pokemodr/PokeModrUI.cpp | 315 |
1 files changed, 18 insertions, 297 deletions
diff --git a/pokemodr/PokeModrUI.cpp b/pokemodr/PokeModrUI.cpp index b3ee11ad..490fafa8 100644 --- a/pokemodr/PokeModrUI.cpp +++ b/pokemodr/PokeModrUI.cpp @@ -32,75 +32,12 @@ #include <QListIterator> #include <QMetaObject> #include <QMutableListIterator> +#include <QString> #include <BugCatcher.h> #include <Exception.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" -#include "AuthorUI.h" -#include "BadgeUI.h" -#include "CoinListUI.h" -#include "CoinListObjectUI.h" -// #include "DialogUI.h" -#include "EggGroupUI.h" -#include "ItemUI.h" -// #include "ItemEffectUI.h" -#include "ItemTypeUI.h" -#include "MapUI.h" -// #include "MapEffectUI.h" -// #include "MapTrainerUI.h" -#include "MapTrainerTeamMemberUI.h" -#include "MapWarpUI.h" -#include "MapWildListUI.h" -#include "MapWildListEncounterUI.h" -#include "MoveUI.h" -// #include "MoveEffectUI.h" -#include "NatureUI.h" -#include "PokemodUI.h" -#include "RulesUI.h" -#include "SpeciesUI.h" -#include "SpeciesAbilityUI.h" -#include "SpeciesEvolutionUI.h" -#include "SpeciesItemUI.h" -#include "SpeciesMoveUI.h" -#include "StoreUI.h" -#include "TileUI.h" -#include "TimeUI.h" -#include "TypeUI.h" #include "PokeModrUI.h" #include "PokeModTreeItem.h" @@ -114,7 +51,6 @@ PokeModrUI::PokeModrUI(KConfigGroup cfg, KConfigGroup history, QWidget* parent) setupUi(this); QMetaObject::connectSlotsByName(this); recent.loadEntries(history); - // This is just until Qt Designer allows for QActions to be promoted to KActions :/ menuBar()->addMenu(customHelpMenu(false)); restoreWindowSize(cfg); splitter->setSizes(QList<int>() << cfg.readEntry("treeWidth", 100) << cfg.readEntry("panelWidth", 100)); @@ -123,14 +59,6 @@ PokeModrUI::PokeModrUI(KConfigGroup cfg, KConfigGroup history, QWidget* parent) // 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"); - p->newItem()->setName("Potion"); - p->newItem()->setName("Super Potion"); - p->newNature()->setName("Timid"); - pokemods.append(p); rebuildTree(); } @@ -142,111 +70,8 @@ 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); - } + for (QMutableListIterator<Pokemod*> i(pokemods); i.hasNext(); ) + new PokeModTreeItem(treePokemod, i.next()); } void PokeModrUI::openPokeMod(const KUrl& path) @@ -348,91 +173,18 @@ void PokeModrUI::on_actionQuit_triggered() void PokeModrUI::on_actionCopy_triggered() { - if (!formPanel->widget()) + if (!treePokemod->currentItem()) return; if (clipboard) 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(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) -#undef IF_IS_CLASS + clipboard = static_cast<PokeModTreeItem*>(treePokemod->currentItem())->makeCopy(); } void PokeModrUI::on_actionPaste_triggered() { - if (!clipboard || !formPanel->widget()) + if (!clipboard || !treePokemod->currentItem()) return; - Object* o = static_cast<ObjectUI*>(formPanel->widget())->getOriginal(); - if (clipboard->getClassName() != o->getClassName()) - return; - QString name(clipboard->getClassName()); -#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(); + static_cast<PokeModTreeItem*>(treePokemod->currentItem())->paste(clipboard); } void PokeModrUI::on_actionPreferences_triggered() @@ -447,8 +199,7 @@ void PokeModrUI::on_splitter_splitterMoved() void PokeModrUI::on_treePokemod_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous) { - Object* o = static_cast<PokeModTreeItem*>(current)->getObject(); - if (!o) + if (!static_cast<PokeModTreeItem*>(current)->getUi()) { if (previous) treePokemod->setCurrentItem(previous); @@ -457,48 +208,18 @@ void PokeModrUI::on_treePokemod_currentItemChanged(QTreeWidgetItem* current, QTr } if (formPanel->widget()) { - if (o == static_cast<ObjectUI*>(formPanel->widget())->getOriginal()) - return; if (!static_cast<ObjectUI*>(formPanel->widget())->close()) return; } - 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(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)), static_cast<PokeModTreeItem*>(current), SLOT(updateName())); + formPanel->setWidget(static_cast<PokeModTreeItem*>(current)->getUi()); formPanel->show(); } + +void PokeModrUI::on_treePokemod_customContextMenuRequested(const QPoint& pos) +{ + if (treePokemod->itemAt(pos)) + static_cast<PokeModTreeItem*>(treePokemod->itemAt(pos))->makeMenu(pos); + else + { + } +} |
