From 87bc8b43600937a3d83cbdf8345e23a484755e3a Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 2 Jun 2008 01:50:47 +0000 Subject: [FIX] Modified Rules a bit [FIX] Updated Rules widget to match up with Rules [FIX] Reorganized the Rules widget [FIX] Using KStandardDirs rather than hardcoded ones [FIX] Cleaned up some minor things with KListWidgets git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@188 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemodr/MapTrainerTeamMemberUI.cpp | 90 ++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 22 deletions(-) (limited to 'pokemodr/MapTrainerTeamMemberUI.cpp') diff --git a/pokemodr/MapTrainerTeamMemberUI.cpp b/pokemodr/MapTrainerTeamMemberUI.cpp index 4b717214..7f3689d0 100644 --- a/pokemodr/MapTrainerTeamMemberUI.cpp +++ b/pokemodr/MapTrainerTeamMemberUI.cpp @@ -19,8 +19,10 @@ #include "MapTrainerTeamMemberUI.h" // Pokemod includes +#include "../pokemod/Ability.h" #include "../pokemod/Item.h" #include "../pokemod/MapTrainerTeamMember.h" +#include "../pokemod/Move.h" #include "../pokemod/Nature.h" #include "../pokemod/Pokemod.h" #include "../pokemod/Rules.h" @@ -46,41 +48,63 @@ void MapTrainerTeamMemberUI::refreshGui() varSpecies->addItem(species->name(), species->id()); } varLevel->setMaximum(pokemod()->rules()->maxLevel()); + varAbilities->clear(); + for (int i = 0; i < pokemod()->abilityCount(); ++i) + { + const Ability* ability = pokemod()->ability(i); + QListWidgetItem* widgetItem = new QListWidgetItem(ability->name(), varAbilities); + widgetItem->setData(Qt::UserRole, ability->id()); + } + boxAbilities->setEnabled(pokemod()->rules()->maxAbilities()); + varItems->clear(); + for (int i = 0; i < pokemod()->itemCount(); ++i) + { + const Item* item = pokemod()->item(i); + QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems); + widgetItem->setData(Qt::UserRole, item->id()); + } + boxItems->setEnabled(pokemod()->rules()->maxHeldItems()); + varMoves->clear(); + for (int i = 0; i < pokemod()->abilityCount(); ++i) + { + const Move* move = pokemod()->move(i); + QListWidgetItem* widgetItem = new QListWidgetItem(move->name(), varMoves); + widgetItem->setData(Qt::UserRole, move->id()); + } + varNatures->clear(); + for (int i = 0; i < pokemod()->natureCount(); ++i) + { + const Nature* nature = pokemod()->nature(i); + QListWidgetItem* widgetItem = new QListWidgetItem(nature->name(), varNatures); + widgetItem->setData(Qt::UserRole, nature->id()); + } + boxNatures->setEnabled(pokemod()->rules()->maxNatures()); } void MapTrainerTeamMemberUI::setGui() { varSpecies->setCurrentIndex(varSpecies->findData(static_cast(modified())->species())); varLevel->setValue(static_cast(modified())->level()); - varNature->setCurrentIndex(varNature->findData(static_cast(modified())->nature())); + for (int i = 0; i < varAbilities->count(); ++i) + { + QListWidgetItem* widgetItem = varAbilities->item(i); + widgetItem->setSelected(static_cast(modified())->ability(widgetItem->data(Qt::UserRole).toInt())); + } for (int i = 0; i < varItems->count(); ++i) { QListWidgetItem* widgetItem = varItems->item(i); widgetItem->setSelected(static_cast(modified())->item(widgetItem->data(Qt::UserRole).toInt())); } - varNature->clear(); - if (pokemod()->rules()->natureAllowed()) + for (int i = 0; i < varMoves->count(); ++i) { - for (int i = 0; i < pokemod()->natureCount(); ++i) - { - const Nature* nature = pokemod()->nature(i); - varNature->addItem(nature->name(), nature->id()); - } + QListWidgetItem* widgetItem = varMoves->item(i); + widgetItem->setSelected(static_cast(modified())->move(widgetItem->data(Qt::UserRole).toInt())); } - else - boxNature->setEnabled(false); - varItems->clear(); - if (pokemod()->rules()->holdItems()) + for (int i = 0; i < varNatures->count(); ++i) { - for (int i = 0; i < pokemod()->itemCount(); ++i) - { - const Item* item = pokemod()->item(i); - QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems); - widgetItem->setData(Qt::UserRole, item->id()); - } + QListWidgetItem* widgetItem = varNatures->item(i); + widgetItem->setSelected(static_cast(modified())->nature(widgetItem->data(Qt::UserRole).toInt())); } - else - boxItems->setEnabled(false); } void MapTrainerTeamMemberUI::apply() @@ -106,9 +130,13 @@ void MapTrainerTeamMemberUI::on_varLevel_valueChanged(const int level) static_cast(modified())->setLevel(level); } -void MapTrainerTeamMemberUI::on_varNature_activated(const int nature) +void MapTrainerTeamMemberUI::on_varAbilities_itemSelectionChanged() { - static_cast(modified())->setNature(varNature->itemData(nature).toInt()); + for (int i = 0; i < varAbilities->count(); ++i) + { + const QListWidgetItem* widgetItem = varAbilities->item(i); + static_cast(modified())->setAbility(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } } void MapTrainerTeamMemberUI::on_varItems_itemSelectionChanged() @@ -119,3 +147,21 @@ void MapTrainerTeamMemberUI::on_varItems_itemSelectionChanged() static_cast(modified())->setItem(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); } } + +void MapTrainerTeamMemberUI::on_varMoves_itemSelectionChanged() +{ + for (int i = 0; i < varMoves->count(); ++i) + { + const QListWidgetItem* widgetItem = varMoves->item(i); + static_cast(modified())->setMove(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } +} + +void MapTrainerTeamMemberUI::on_varNatures_itemSelectionChanged() +{ + for (int i = 0; i < varNatures->count(); ++i) + { + const QListWidgetItem* widgetItem = varNatures->item(i); + static_cast(modified())->setNature(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } +} -- cgit