diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-05-16 20:48:52 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-05-16 20:48:52 +0000 |
| commit | 5fbf25a91c75c59d56cb6b58c899323772f9176a (patch) | |
| tree | 7d97e0d0b745cbc0b2073f0906de42da28487f39 | |
| parent | 9c1388c7964bd3b4ae147e39c146c96dc20947e9 (diff) | |
| download | sigen-5fbf25a91c75c59d56cb6b58c899323772f9176a.tar.gz sigen-5fbf25a91c75c59d56cb6b58c899323772f9176a.tar.xz sigen-5fbf25a91c75c59d56cb6b58c899323772f9176a.zip | |
[FIX] SoundUI uses correct icon names now
[FIX] Setting up combo boxes in UI widgets cleaner
[ADD] AbilityEffect widget done
[FIX] Fixed up MapEffect setting code
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@142 6ecfd1a5-f3ed-3746-8530-beee90d26b22
33 files changed, 418 insertions, 123 deletions
@@ -1,10 +1,21 @@ ----------------- +Rev: 142 +Date: 16 May 2008 +User: MathStuf +----------------- +[FIX] SoundUI uses correct icon names now +[FIX] Setting up combo boxes in UI widgets cleaner +[ADD] AbilityEffect widget done +[FIX] Fixed up MapEffect setting code + +----------------- Rev: 141 Date: 16 May 2008 User: MathStuf ----------------- [FIX] TypeModel done for data() in models [FIX] Another Qt bug found :( +[FIX] Better connections for the editor widget ----------------- Rev: 140 diff --git a/pokemod/AbilityEffect.cpp b/pokemod/AbilityEffect.cpp index ecac1af6..b7532e2d 100644 --- a/pokemod/AbilityEffect.cpp +++ b/pokemod/AbilityEffect.cpp @@ -26,7 +26,7 @@ const QStringList AbilityEffect::EffectStr = QStringList() << "Damage to HP" << "Prevent Damage" << "Auto Heal" << "Deal Damage" << "Wilds" << "Stat" << "Status" << "Ability" << "Accuracy/Power Trade" << "Bullseye" << "Item Effect" << "Type" << "Fast Hatch" << "Weather"; const QStringList AbilityEffect::TriggerStr = QStringList() << "Anything" << "Contact" << "Weather" << "Damage" << "Type" << "HP Boundary" << "Stat Change" << "Status"; const QStringList AbilityEffect::InteractStr = QStringList() << "Trade" << "Shadow" << "Block"; -const QStringList AbilityEffect::PowerAccStr = QStringList() << "Boost Power" << "Boost Accuracy"; +const QStringList AbilityEffect::PowerAccuracyStr = QStringList() << "Boost Power" << "Boost Accuracy"; const QStringList AbilityEffect::ItemStr = QStringList() << "Stat Modifier" << "Type Booster" << "Flinch" << "Go First"; const QStringList AbilityEffect::CauseStr = QStringList() << "Prevent" << "Inflict"; const QStringList AbilityEffect::BoostStr = QStringList() << "Boost" << "Hinder"; @@ -133,7 +133,7 @@ void AbilityEffect::setValue1(const int value1) switch (m_effect) { case E_Stats: - if ((Pokemod::ST_HP == value1) || (Pokemod::ST_End_Battle <= value1) || ((Pokemod::ST_SpecialDefense == value1) && !static_cast<const Pokemod*>(pokemod())->rules()->specialSplit())) + if ((value1 < Pokemod::ST_No_HP_Start) || (Pokemod::ST_End_Battle <= value1) || ((Pokemod::ST_SpecialDefense == value1) && !static_cast<const Pokemod*>(pokemod())->rules()->specialSplit())) { emit(error(bounds("value1"))); return; @@ -302,7 +302,7 @@ void AbilityEffect::setTriggerValue1(const int triggerValue1) } break; case T_StatChange: - if ((Pokemod::ST_HP == triggerValue1) || (Pokemod::ST_End_Battle <= triggerValue1) || ((Pokemod::ST_SpecialDefense == triggerValue1) && !static_cast<const Pokemod*>(pokemod())->rules()->specialSplit())) + if ((triggerValue1 < Pokemod::ST_No_HP_Start) || (Pokemod::ST_End_Battle <= triggerValue1) || ((Pokemod::ST_SpecialDefense == triggerValue1) && !static_cast<const Pokemod*>(pokemod())->rules()->specialSplit())) { emit(error(bounds("triggerValue1"))); return; diff --git a/pokemod/AbilityEffect.h b/pokemod/AbilityEffect.h index 340fcf97..17b6d027 100644 --- a/pokemod/AbilityEffect.h +++ b/pokemod/AbilityEffect.h @@ -84,7 +84,7 @@ class AbilityEffect : public Object PA_Accuracy = 1, PA_End = 2 }; - static const QStringList PowerAccStr; + static const QStringList PowerAccuracyStr; enum Item { diff --git a/pokemod/Pokemod.h b/pokemod/Pokemod.h index 878101be..702314ea 100644 --- a/pokemod/Pokemod.h +++ b/pokemod/Pokemod.h @@ -59,6 +59,7 @@ class Pokemod : public Object enum Stat { ST_HP = 0, + ST_No_HP_Start = 1, ST_Attack = 1, ST_Defense = 2, ST_Speed = 3, diff --git a/pokemodr/AbilityEffectUI.cpp b/pokemodr/AbilityEffectUI.cpp new file mode 100644 index 00000000..a529b058 --- /dev/null +++ b/pokemodr/AbilityEffectUI.cpp @@ -0,0 +1,264 @@ +/* + * Copyright 2008 Ben Boeckel <MathStuf@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +// Header include +#include "AbilityEffectUI.h" + +// Pokemod includes +#include "../pokemod/Ability.h" +#include "../pokemod/AbilityEffect.h" +#include "../pokemod/Pokemod.h" +#include "../pokemod/Type.h" + +AbilityEffectUI::AbilityEffectUI(AbilityEffect* effect, QWidget* parent) : + ObjectUI(parent), + m_lastEffect(-1), + m_lastTrigger(-1) +{ + setupUi(this); + QMetaObject::connectSlotsByName(this); + setObjects(effect, new AbilityEffect(*effect)); + init(); +} + +AbilityEffectUI::~AbilityEffectUI() +{ +} + +void AbilityEffectUI::initGui() +{ + varEffect->addItems(AbilityEffect::EffectStr); + varTrigger->addItems(AbilityEffect::TriggerStr); +} + +void AbilityEffectUI::refreshGui() +{ +} + +void AbilityEffectUI::setGui() +{ + const bool resetEffects = (static_cast<AbilityEffect*>(modified())->effect() == m_lastEffect); + const bool resetTrigger = (static_cast<AbilityEffect*>(modified())->trigger() == m_lastTrigger); + varChance->setValue(static_cast<AbilityEffect*>(modified())->chance()); + varEffect->setCurrentIndex(static_cast<AbilityEffect*>(modified())->effect()); + m_lastEffect = static_cast<AbilityEffect*>(modified())->effect(); + if (resetEffects) + { + varValue1->clear(); + varValue1->setEnabled(true); + varValue2->clear(); + varValue2->setEnabled(true); + varValue3->setEnabled(true); + switch (m_lastEffect) + { + case AbilityEffect::E_Stats: + for (int i = Pokemod::ST_No_HP_Start; i < Pokemod::ST_End_Battle; ++i) + { + if ((Pokemod::ST_SpecialDefense == i) && !static_cast<const Pokemod*>(original()->pokemod())->rules()->specialSplit()) + continue; + varValue1->addItem(Pokemod::StatGSCStr[i], varValue1->count()); + } + break; + case AbilityEffect::E_Status: + varValue1->addItems(Pokemod::StatusStr); + for (int i = 0; i < Pokemod::STS_End; ++i) + varValue1->setItemData(i, i); + break; + case AbilityEffect::E_Ability: + for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->abilityCount(); ++i) + { + const Ability* ability = static_cast<const Pokemod*>(original()->pokemod())->ability(i); + varValue1->addItem(ability->name(), ability->id()); + } + break; + case AbilityEffect::E_AccuracyPowerTrade: + varValue1->addItems(AbilityEffect::PowerAccuracyStr); + for (int i = 0; i < AbilityEffect::PA_End; ++i) + varValue1->setItemData(i, i); + break; + case AbilityEffect::E_ItemEffect: + varValue1->addItems(AbilityEffect::ItemStr); + for (int i = 0; i < AbilityEffect::IT_End; ++i) + varValue1->setItemData(i, i); + break; + case AbilityEffect::E_Type: + for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->typeCount(); ++i) + { + const Type* type = static_cast<const Pokemod*>(original()->pokemod())->type(i); + varValue1->addItem(type->name(), type->id()); + } + break; + case AbilityEffect::E_Weather: + varValue1->addItems(Pokemod::WeatherStr); + for (int i = 0; i < Pokemod::W_End_All; ++i) + varValue1->setItemData(i, i); + break; + default: + varValue1->setEnabled(false); + break; + } + switch (m_lastEffect) + { + case AbilityEffect::E_Stats: + varValue2->addItems(Pokemod::BattleMemberStr); + for (int i = 0; i < Pokemod::BM_End; ++i) + varValue2->setItemData(i, i); + break; + case AbilityEffect::E_Status: + case AbilityEffect::E_Weather: + varValue2->addItems(AbilityEffect::CauseStr); + for (int i = 0; i < AbilityEffect::C_End; ++i) + varValue2->setItemData(i, i); + break; + case AbilityEffect::E_Ability: + varValue2->addItems(AbilityEffect::TriggerStr); + for (int i = 0; i < AbilityEffect::T_End; ++i) + varValue2->setItemData(i, i); + break; + case AbilityEffect::E_Type: + varValue2->addItems(AbilityEffect::BoostStr); + for (int i = 0; i < AbilityEffect::B_End; ++i) + varValue2->setItemData(i, i); + break; + default: + varValue2->setEnabled(false); + break; + } + switch (m_lastEffect) + { + case AbilityEffect::E_DamageToHP: + case AbilityEffect::E_PreventDamage: + case AbilityEffect::E_AutoHeal: + case AbilityEffect::E_DealDamage: + case AbilityEffect::E_Wilds: + case AbilityEffect::E_AccuracyPowerTrade: + case AbilityEffect::E_Type: + case AbilityEffect::E_FastHatch: + varValue3->setRange(0, 100); + break; + case AbilityEffect::E_Stats: + varValue3->setRange(-12, 12); + break; + default: + varValue3->setEnabled(false); + break; + } + } + varValue1->setCurrentIndex(varValue1->findData(static_cast<AbilityEffect*>(modified())->value1())); + varValue2->setCurrentIndex(varValue2->findData(static_cast<AbilityEffect*>(modified())->value2())); + varValue3->setValue(static_cast<AbilityEffect*>(modified())->value3()); + varTrigger->setCurrentIndex(static_cast<AbilityEffect*>(modified())->trigger()); + m_lastTrigger = static_cast<AbilityEffect*>(modified())->trigger(); + if (resetTrigger) + { + varTriggerValue1->clear(); + varTriggerValue1->setEnabled(true); + varTriggerValue2->setEnabled(true); + switch (m_lastTrigger) + { + case AbilityEffect::T_Weather: + varTriggerValue1->addItems(Pokemod::WeatherStr); + for (int i = 0; i < Pokemod::W_End_All; ++i) + varTriggerValue1->setItemData(i, i); + break; + case AbilityEffect::T_Type: + for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->typeCount(); ++i) + { + const Type* type = static_cast<const Pokemod*>(original()->pokemod())->type(i); + varTriggerValue1->addItem(type->name(), type->id()); + } + break; + case AbilityEffect::T_HPBoundary: + varTriggerValue1->addItems(AbilityEffect::SideStr); + for (int i = 0; i < AbilityEffect::S_End; ++i) + varTriggerValue1->setItemData(i, i); + break; + case AbilityEffect::T_StatChange: + for (int i = Pokemod::ST_No_HP_Start; i < Pokemod::ST_End_Battle; ++i) + { + if ((Pokemod::ST_SpecialDefense == i) && !static_cast<const Pokemod*>(original()->pokemod())->rules()->specialSplit()) + continue; + varTriggerValue1->addItem(Pokemod::StatGSCStr[i], varValue1->count()); + } + break; + case AbilityEffect::T_Status: + varTriggerValue1->addItems(Pokemod::StatusStr); + for (int i = 0; i < Pokemod::STS_End; ++i) + varTriggerValue1->setItemData(i, i); + break; + default: + varTriggerValue1->setEnabled(false); + break; + } + varTriggerValue2->setEnabled(m_lastEffect == AbilityEffect::T_HPBoundary); + } + varTriggerValue1->setCurrentIndex(varTriggerValue1->findData(static_cast<AbilityEffect*>(modified())->triggerValue1())); + varTriggerValue2->setValue(static_cast<AbilityEffect*>(modified())->triggerValue2()); +} + +void AbilityEffectUI::apply() +{ + *static_cast<AbilityEffect*>(original()) = *static_cast<AbilityEffect*>(modified()); + emit(changed(false)); +} + +void AbilityEffectUI::discard() +{ + *static_cast<AbilityEffect*>(modified()) = *static_cast<AbilityEffect*>(original()); + setGui(); + emit(changed(false)); +} + +void AbilityEffectUI::on_varChance_valueChanged(const Fraction& chance) +{ + static_cast<AbilityEffect*>(modified())->setChance(chance); +} + +void AbilityEffectUI::on_varEffect_currentIndexChanged(const int effect) +{ + static_cast<AbilityEffect*>(modified())->setEffect(effect); +} + +void AbilityEffectUI::on_varValue1_currentIndexChanged(const int value1) +{ + static_cast<AbilityEffect*>(modified())->setValue1(varValue1->itemData(value1).toInt()); +} + +void AbilityEffectUI::on_varValue2_currentIndexChanged(const int value2) +{ + static_cast<AbilityEffect*>(modified())->setValue2(varValue2->itemData(value2).toInt()); +} + +void AbilityEffectUI::on_varValue3_valueChanged(const int value3) +{ + static_cast<AbilityEffect*>(modified())->setValue3(value3); +} + +void AbilityEffectUI::on_varTrigger_currentIndexChanged(const int trigger) +{ + static_cast<AbilityEffect*>(modified())->setTrigger(trigger); +} + +void AbilityEffectUI::on_varTriggerValue1_currentIndexChanged(const int triggerValue1) +{ + static_cast<AbilityEffect*>(modified())->setTriggerValue1(varTriggerValue1->itemData(triggerValue1).toInt()); +} + +void AbilityEffectUI::on_varTriggerValue2_valueChanged(const Fraction& triggerValue2) +{ + static_cast<AbilityEffect*>(modified())->setTriggerValue2(triggerValue2); +} diff --git a/pokemodr/AbilityEffectUI.h b/pokemodr/AbilityEffectUI.h new file mode 100644 index 00000000..30174975 --- /dev/null +++ b/pokemodr/AbilityEffectUI.h @@ -0,0 +1,58 @@ +/* + * Copyright 2008 Ben Boeckel <MathStuf@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __POKEMODR_ABILITYEFFECTUI__ +#define __POKEMODR_ABILITYEFFECTUI__ + +// PokeModr includes +#include "ObjectUI.h" + +// Form include +#include "ui_abilityeffect.h" + +// Forward declarations +class AbilityEffect; + +class AbilityEffectUI : public ObjectUI, private Ui::formAbilityEffect +{ + Q_OBJECT + + public: + AbilityEffectUI(AbilityEffect* effect, QWidget* parent); + ~AbilityEffectUI(); + public slots: + void apply(); + void discard(); + protected slots: + void on_varChance_valueChanged(const Fraction& chance); + void on_varEffect_currentIndexChanged(const int effect); + void on_varValue1_currentIndexChanged(const int value1); + void on_varValue2_currentIndexChanged(const int value2); + void on_varValue3_valueChanged(const int value3); + void on_varTrigger_currentIndexChanged(const int trigger); + void on_varTriggerValue1_currentIndexChanged(const int triggerValue1); + void on_varTriggerValue2_valueChanged(const Fraction& triggerValue2); + private slots: + void initGui(); + void refreshGui(); + void setGui(); + private: + int m_lastEffect; + int m_lastTrigger; +}; + +#endif diff --git a/pokemodr/CoinListObjectUI.cpp b/pokemodr/CoinListObjectUI.cpp index 7fe2d9d6..7941489c 100644 --- a/pokemodr/CoinListObjectUI.cpp +++ b/pokemodr/CoinListObjectUI.cpp @@ -58,8 +58,7 @@ void CoinListObjectUI::setGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemCount(); ++i) { const Item* item = static_cast<const Pokemod*>(original()->pokemod())->item(i); - varObject->addItem(item->name()); - varObject->setItemData(i, item->id()); + varObject->addItem(item->name(), item->id()); } } else @@ -67,8 +66,7 @@ void CoinListObjectUI::setGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->speciesCount(); ++i) { const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(i); - varObject->addItem(species->name()); - varObject->setItemData(i, species->id()); + varObject->addItem(species->name(), species->id()); } } } diff --git a/pokemodr/CoinListUI.cpp b/pokemodr/CoinListUI.cpp index 5c0800cc..70c9a7f7 100644 --- a/pokemodr/CoinListUI.cpp +++ b/pokemodr/CoinListUI.cpp @@ -47,10 +47,7 @@ void CoinListUI::refreshGui() { const ItemEffect* effect = item->effect(j); if (effect->effect() == ItemEffect::E_CoinCase) - { - varValue->addItem(item->name()); - varValue->setItemData(varValue->count() - 1, effect->value1()); - } + varValue->addItem(item->name(), effect->value1()); } } } diff --git a/pokemodr/ItemUI.cpp b/pokemodr/ItemUI.cpp index a764f5cf..6e7945a7 100644 --- a/pokemodr/ItemUI.cpp +++ b/pokemodr/ItemUI.cpp @@ -42,8 +42,7 @@ void ItemUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemTypeCount(); ++i) { const ItemType* itemType = static_cast<const Pokemod*>(original()->pokemod())->itemType(i); - varType->addItem(itemType->name()); - varType->setItemData(i, itemType->id()); + varType->addItem(itemType->name()), itemType->id(); } varPrice->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxMoney()); } diff --git a/pokemodr/MapEffectUI.cpp b/pokemodr/MapEffectUI.cpp index 0a712e80..a61325a7 100644 --- a/pokemodr/MapEffectUI.cpp +++ b/pokemodr/MapEffectUI.cpp @@ -29,7 +29,8 @@ #include "../pokemod/Pokemod.h" MapEffectUI::MapEffectUI(MapEffect* effect, QWidget* parent) : - ObjectUI(parent) + ObjectUI(parent), + m_lastEffect(-1) { setupUi(this); QMetaObject::connectSlotsByName(this); @@ -58,52 +59,51 @@ void MapEffectUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->dialogCount(); ++i) { const Dialog* dialog = static_cast<const Pokemod*>(original()->pokemod())->dialog(i); - varDialog->addItem(dialog->dialog().mid(0, 25)); - varDialog->setItemData(i, dialog->id()); + varDialog->addItem(dialog->dialog().mid(0, 25), dialog->id()); } } void MapEffectUI::setGui() { + const bool resetEffect = (static_cast<MapEffect*>(modified())->effect() == m_lastEffect); varName->setText(static_cast<MapEffect*>(modified())->name()); varCoordinate->setValue(static_cast<MapEffect*>(modified())->coordinate()); varExistFlag->setValue(static_cast<MapEffect*>(modified())->existFlag()); varSkin->setIcon(static_cast<MapEffect*>(modified())->skin()); varEffect->setCurrentIndex(static_cast<MapEffect*>(modified())->effect()); - const int effect = static_cast<MapEffect*>(modified())->effect(); - if ((effect == MapEffect::E_Button) || (effect == MapEffect::E_StrengthBlock)) + m_lastEffect = static_cast<MapEffect*>(modified())->effect(); + if (resetEffect) { - varValue1->setEnabled(true); - varValue1->setValue(static_cast<MapEffect*>(modified())->value1()); - } - else - varValue1->setEnabled(false); - varValue2->clear(); - switch (effect) - { - case MapEffect::E_Item: - for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemCount(); ++i) - { - const Item* item = static_cast<const Pokemod*>(original()->pokemod())->item(i); - varValue2->addItem(item->name()); - varValue2->setItemData(i, item->id()); - } - varValue2->setCurrentIndex(varValue2->findData(static_cast<MapEffect*>(modified())->value2())); - break; - case MapEffect::E_PC: - varValue2->addItems(MapEffect::PCTypeStr); - for (int i = 0; i < MapEffect::PC_End; ++i) - varValue2->setItemData(i, i); - varValue2->setCurrentIndex(static_cast<MapEffect*>(modified())->value2()); - break; - case MapEffect::E_StrengthBlock: - case MapEffect::E_Button: - varValue2->addItems(Flag::ValueStr); - for (int i = 0; i < Flag::End; ++i) - varValue2->setItemData(i, i); - varValue2->setCurrentIndex(static_cast<MapEffect*>(modified())->value2()); - break; + varValue1->setEnabled((m_lastEffect == MapEffect::E_Button) || (m_lastEffect == MapEffect::E_StrengthBlock)); + varValue2->clear(); + varValue2->setEnabled(true); + switch (m_lastEffect) + { + case MapEffect::E_Item: + for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemCount(); ++i) + { + const Item* item = static_cast<const Pokemod*>(original()->pokemod())->item(i); + varValue2->addItem(item->name(), item->id()); + } + break; + case MapEffect::E_PC: + varValue2->addItems(MapEffect::PCTypeStr); + for (int i = 0; i < MapEffect::PC_End; ++i) + varValue2->setItemData(i, i); + break; + case MapEffect::E_StrengthBlock: + case MapEffect::E_Button: + varValue2->addItems(Flag::ValueStr); + for (int i = 0; i < Flag::End; ++i) + varValue2->setItemData(i, i); + break; + default: + varValue2->setEnabled(false); + break; + } } + varValue1->setValue(static_cast<MapEffect*>(modified())->value1()); + varValue2->setCurrentIndex(varValue2->findData(static_cast<MapEffect*>(modified())->value2())); varDirection->setCurrentIndex(static_cast<MapEffect*>(modified())->direction()); varIsGhost->setChecked(static_cast<MapEffect*>(modified())->isGhost() ? Qt::Checked : Qt::Unchecked); varCanMove->setChecked(static_cast<MapEffect*>(modified())->canMove() ? Qt::Checked : Qt::Unchecked); diff --git a/pokemodr/MapEffectUI.h b/pokemodr/MapEffectUI.h index 57df0aea..376cbe82 100644 --- a/pokemodr/MapEffectUI.h +++ b/pokemodr/MapEffectUI.h @@ -53,6 +53,8 @@ class MapEffectUI : public ObjectUI, private Ui::formMapEffect void initGui(); void refreshGui(); void setGui(); + private: + int m_lastEffect; }; #endif diff --git a/pokemodr/MapTrainerTeamMemberUI.cpp b/pokemodr/MapTrainerTeamMemberUI.cpp index 65b9e802..d2489dc9 100644 --- a/pokemodr/MapTrainerTeamMemberUI.cpp +++ b/pokemodr/MapTrainerTeamMemberUI.cpp @@ -44,8 +44,7 @@ void MapTrainerTeamMemberUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->speciesCount(); ++i) { const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(i); - varSpecies->addItem(species->name()); - varSpecies->setItemData(i, species->id()); + varSpecies->addItem(species->name(), species->id()); } varLevel->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxLevel()); } @@ -66,8 +65,7 @@ void MapTrainerTeamMemberUI::setGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->natureCount(); ++i) { const Nature* nature = static_cast<const Pokemod*>(original()->pokemod())->nature(i); - varNature->addItem(nature->name()); - varNature->setItemData(i, nature->id()); + varNature->addItem(nature->name(), nature->id()); } } else diff --git a/pokemodr/MapTrainerUI.cpp b/pokemodr/MapTrainerUI.cpp index 30632013..69ac68fe 100644 --- a/pokemodr/MapTrainerUI.cpp +++ b/pokemodr/MapTrainerUI.cpp @@ -51,8 +51,7 @@ void MapTrainerUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->trainerCount(); ++i) { const Trainer* trainer = static_cast<const Pokemod*>(original()->pokemod())->trainer(i); - varTrainerClass->addItem(trainer->name()); - varTrainerClass->setItemData(i, trainer->id()); + varTrainerClass->addItem(trainer->name(), trainer->id()); } varCoordinate->setMaximum(static_cast<const Map*>(original()->parent())->size()); varNumberFight->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxFight()); @@ -60,8 +59,7 @@ void MapTrainerUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->dialogCount(); ++i) { const Dialog* dialog = static_cast<const Pokemod*>(original()->pokemod())->dialog(i); - varDialog->addItem(dialog->dialog().mid(0, 25)); - varDialog->setItemData(i, dialog->id()); + varDialog->addItem(dialog->dialog().mid(0, 25), dialog->id()); } varLeadTeamMember->clear(); for (int i = 0; i < static_cast<MapTrainer*>(original())->teamMemberCount(); ++i) @@ -69,10 +67,9 @@ void MapTrainerUI::refreshGui() const MapTrainerTeamMember* teamMember = static_cast<MapTrainer*>(original())->teamMember(i); const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(teamMember->species()); if (species) - varLeadTeamMember->addItem(species->name()); + varLeadTeamMember->addItem(species->name(), teamMember->id()); else - varLeadTeamMember->addItem("Invalid Species"); - varLeadTeamMember->setItemData(i, teamMember->id()); + varLeadTeamMember->addItem("Invalid Species", teamMember->id()); } } diff --git a/pokemodr/MapUI.cpp b/pokemodr/MapUI.cpp index 0c32c759..95ce654c 100644 --- a/pokemodr/MapUI.cpp +++ b/pokemodr/MapUI.cpp @@ -67,8 +67,7 @@ void MapUI::refreshGui() for (int i = 0; i < static_cast<Map*>(original())->warpCount(); ++i) { const MapWarp* warp = static_cast<Map*>(original())->warp(i); - varFlyWarp->addItem(warp->name()); - varFlyWarp->setItemData(i, warp->id()); + varFlyWarp->addItem(warp->name(), warp->id()); } } diff --git a/pokemodr/MapWarpUI.cpp b/pokemodr/MapWarpUI.cpp index d3403672..5e902c8e 100644 --- a/pokemodr/MapWarpUI.cpp +++ b/pokemodr/MapWarpUI.cpp @@ -51,15 +51,13 @@ void MapWarpUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->mapCount(); ++i) { const Map* map = static_cast<const Pokemod*>(original()->pokemod())->map(i); - varToMap->addItem(map->name()); - varToMap->setItemData(i, map->id()); + varToMap->addItem(map->name(), map->id()); } varDialog->clear(); for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->dialogCount(); ++i) { const Dialog* dialog = static_cast<const Pokemod*>(original()->pokemod())->dialog(i); - varDialog->addItem(dialog->dialog().mid(0, 25)); - varDialog->setItemData(i, dialog->id()); + varDialog->addItem(dialog->dialog().mid(0, 25), dialog->id()); } } @@ -87,8 +85,7 @@ void MapWarpUI::setGui() for (int i = 0; i < map->warpCount(); ++i) { const MapWarp* warp = map->warp(i); - varToWarp->addItem(warp->name()); - varToWarp->setItemData(i, warp->id()); + varToWarp->addItem(warp->name(), warp->id()); } } } diff --git a/pokemodr/MapWildListEncounterUI.cpp b/pokemodr/MapWildListEncounterUI.cpp index 7468023e..d8421a26 100644 --- a/pokemodr/MapWildListEncounterUI.cpp +++ b/pokemodr/MapWildListEncounterUI.cpp @@ -42,8 +42,7 @@ void MapWildListEncounterUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->speciesCount(); ++i) { const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(i); - varSpecies->addItem(species->name()); - varSpecies->setItemData(i, species->id()); + varSpecies->addItem(species->name(), species->id()); } varLevel->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxLevel()); } diff --git a/pokemodr/MapWildListUI.cpp b/pokemodr/MapWildListUI.cpp index fc506eb1..c2fad681 100644 --- a/pokemodr/MapWildListUI.cpp +++ b/pokemodr/MapWildListUI.cpp @@ -54,15 +54,9 @@ void MapWildListUI::refreshGui() { const ItemEffect* effect = item->effect(j); if (effect->effect() == ItemEffect::E_Fish) - { - varValue->addItem(item->name()); - varValue->setItemData(varValue->count() - 1, effect->value2()); - } + varValue->addItem(item->name(), effect->value2()); else if (effect->effect() == ItemEffect::E_Scope) - { - varScope->addItem(item->name()); - varScope->setItemData(varScope->count() - 1, effect->value2()); - } + varScope->addItem(item->name(), effect->value2()); } } varTimes->clear(); diff --git a/pokemodr/MoveUI.cpp b/pokemodr/MoveUI.cpp index 8407792c..0582e095 100644 --- a/pokemodr/MoveUI.cpp +++ b/pokemodr/MoveUI.cpp @@ -48,8 +48,7 @@ void MoveUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->typeCount(); ++i) { const Type* type = static_cast<const Pokemod*>(original()->pokemod())->type(i); - varType->addItem(type->name()); - varType->setItemData(i, type->id()); + varType->addItem(type->name(), type->id()); } varNumTargets->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxFight()); } diff --git a/pokemodr/PokemodTreeModel.cpp b/pokemodr/PokemodTreeModel.cpp index 7acac2cf..2844f73f 100644 --- a/pokemodr/PokemodTreeModel.cpp +++ b/pokemodr/PokemodTreeModel.cpp @@ -56,8 +56,6 @@ QModelIndex PokemodTreeModel::index(int row, int /*column*/, const QModelIndex& if (row < 0) return createIndex(row, 0, m_root); BaseModel* object = getItem(parent)->childItem(row); - if (!object) - qDebug("Creating NULL index!"); return createIndex(row, 0, object); } @@ -66,8 +64,6 @@ QModelIndex PokemodTreeModel::parent(const QModelIndex& index) const if (!index.isValid()) return QModelIndex(); BaseModel* object = static_cast<BaseModel*>(index.internalPointer()); - if (!object) - return QModelIndex(); BaseModel* parent = object->parent(); if (!parent || (parent == m_root)) return QModelIndex(); diff --git a/pokemodr/PokemodUI.cpp b/pokemodr/PokemodUI.cpp index a3060af3..538b46e1 100644 --- a/pokemodr/PokemodUI.cpp +++ b/pokemodr/PokemodUI.cpp @@ -48,8 +48,7 @@ void PokemodUI::refreshGui() for (int i = 0; i < static_cast<Pokemod*>(original())->mapCount(); ++i) { const Map* map = static_cast<Pokemod*>(original())->map(i); - varMap->addItem(map->name()); - varMap->setItemData(i, map->id()); + varMap->addItem(map->name(), map->id()); } varTypechart->setRowCount(static_cast<Pokemod*>(original())->typeCount()); varTypechart->setColumnCount(static_cast<Pokemod*>(original())->typeCount()); @@ -87,8 +86,7 @@ void PokemodUI::setGui() for (int i = 0; i < map->warpCount(); ++i) { const MapWarp* warp = map->warp(i); - varWarp->addItem(warp->name()); - varWarp->setItemData(i, warp->id()); + varWarp->addItem(warp->name(), warp->id()); } } } diff --git a/pokemodr/SoundUI.cpp b/pokemodr/SoundUI.cpp index 717c4b95..67849076 100644 --- a/pokemodr/SoundUI.cpp +++ b/pokemodr/SoundUI.cpp @@ -50,7 +50,7 @@ void SoundUI::initGui() { seeker->setMediaObject(m_media); connect(m_media, SIGNAL(finished()), buttonStop, SIGNAL(clicked())); - buttonPlayPause->setIcon(KIcon("media-playback-play")); + buttonPlayPause->setIcon(KIcon("media-playback-start")); buttonStop->setIcon(KIcon("media-playback-stop")); buttonBrowse->setIcon(KIcon("document-open")); } @@ -91,7 +91,7 @@ void SoundUI::on_buttonPlayPause_clicked() { if (m_media->state() == Phonon::PlayingState) { - buttonPlayPause->setIcon(KIcon("media-playback-play")); + buttonPlayPause->setIcon(KIcon("media-playback-start")); buttonPlayPause->setEnabled(true); m_media->pause(); } @@ -103,7 +103,7 @@ void SoundUI::on_buttonPlayPause_clicked() } else if (m_media->state() == Phonon::ErrorState) { - buttonPlayPause->setIcon(KIcon("media-playback-play")); + buttonPlayPause->setIcon(KIcon("media-playback-start")); buttonPlayPause->setEnabled(false); m_media->stop(); } @@ -111,7 +111,7 @@ void SoundUI::on_buttonPlayPause_clicked() void SoundUI::on_buttonStop_clicked() { - buttonPlayPause->setIcon(KIcon("media-playback-play")); + buttonPlayPause->setIcon(KIcon("media-playback-start")); m_media->stop(); } diff --git a/pokemodr/SpeciesAbilityUI.cpp b/pokemodr/SpeciesAbilityUI.cpp index e7158469..7075911b 100644 --- a/pokemodr/SpeciesAbilityUI.cpp +++ b/pokemodr/SpeciesAbilityUI.cpp @@ -41,9 +41,8 @@ void SpeciesAbilityUI::refreshGui() varAbility->clear(); for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->abilityCount(); ++i) { - const Ability* a = static_cast<const Pokemod*>(original()->pokemod())->ability(i); - varAbility->addItem(a->name()); - varAbility->setItemData(i, a->id()); + const Ability* ability = static_cast<const Pokemod*>(original()->pokemod())->ability(i); + varAbility->addItem(ability->name(), ability->id()); } } diff --git a/pokemodr/SpeciesEvolutionUI.cpp b/pokemodr/SpeciesEvolutionUI.cpp index f920da41..bb4a8e38 100644 --- a/pokemodr/SpeciesEvolutionUI.cpp +++ b/pokemodr/SpeciesEvolutionUI.cpp @@ -50,8 +50,7 @@ void SpeciesEvolutionUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->speciesCount(); ++i) { const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(i); - varSpecies->addItem(species->name()); - varSpecies->setItemData(i, species->id()); + varSpecies->addItem(species->name(), species->id()); } } @@ -86,10 +85,7 @@ void SpeciesEvolutionUI::setGui() for (int j = 0; j < item->effectCount(); ++j) { if (item->effect(i)->effect() == ItemEffect::E_Evolution) - { - varValue1->addItem(item->name()); - varValue1->setItemData(i, item->id()); - } + varValue1->addItem(item->name(), item->id()); } } break; diff --git a/pokemodr/SpeciesItemUI.cpp b/pokemodr/SpeciesItemUI.cpp index 713eb0e9..1caf9ac3 100644 --- a/pokemodr/SpeciesItemUI.cpp +++ b/pokemodr/SpeciesItemUI.cpp @@ -42,8 +42,7 @@ void SpeciesItemUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemCount(); ++i) { const Item* item = static_cast<const Pokemod*>(original()->pokemod())->item(i); - varItem->addItem(item->name()); - varItem->setItemData(i, item->id()); + varItem->addItem(item->name(), item->id()); } } diff --git a/pokemodr/SpeciesMoveUI.cpp b/pokemodr/SpeciesMoveUI.cpp index f694478e..d8021c74 100644 --- a/pokemodr/SpeciesMoveUI.cpp +++ b/pokemodr/SpeciesMoveUI.cpp @@ -42,8 +42,7 @@ void SpeciesMoveUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->moveCount(); ++i) { const Move* move = static_cast<const Pokemod*>(original()->pokemod())->move(i); - varMove->addItem(move->name()); - varMove->setItemData(i, move->id()); + varMove->addItem(move->name(), move->id()); } varLevel->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxLevel()); varWildLevel->setMaximum(static_cast<const Pokemod*>(original()->pokemod())->rules()->maxLevel()); diff --git a/pokemodr/SpeciesUI.cpp b/pokemodr/SpeciesUI.cpp index 2e37a877..7c754afe 100644 --- a/pokemodr/SpeciesUI.cpp +++ b/pokemodr/SpeciesUI.cpp @@ -68,8 +68,7 @@ void SpeciesUI::refreshGui() for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->speciesCount(); ++i) { const Species* species = static_cast<const Pokemod*>(original()->pokemod())->species(i); - varEggSpecies->addItem(species->name()); - varEggSpecies->setItemData(i, species->id()); + varEggSpecies->addItem(species->name(), species->id()); } for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->eggGroupCount(); ++i) { diff --git a/pokemodr/TODO b/pokemodr/TODO index 20fa4a68..2c699649 100644 --- a/pokemodr/TODO +++ b/pokemodr/TODO @@ -1,4 +1,3 @@ -AbilityEffect Dialog (with command dialogs) ItemEffect MoveEffect diff --git a/pokemodr/TileDelegate.cpp b/pokemodr/TileDelegate.cpp index 59a11f80..f744fb74 100644 --- a/pokemodr/TileDelegate.cpp +++ b/pokemodr/TileDelegate.cpp @@ -41,8 +41,7 @@ void TileDelegate::setEditorData(QWidget* editor, const QModelIndex& index) cons for (int i = 0; i < static_cast<const Pokemod*>(static_cast<const ObjectUI*>(editor->parent())->original()->pokemod())->tileCount(); ++i) { const Tile* tile = static_cast<const Pokemod*>(static_cast<const ObjectUI*>(editor->parent())->original()->pokemod())->tile(i); - static_cast<KComboBox*>(editor)->addItem(tile->sprite(), tile->name()); - static_cast<KComboBox*>(editor)->setItemData(i, tile->id()); + static_cast<KComboBox*>(editor)->addItem(tile->sprite(), tile->name(), tile->id()); } static_cast<KComboBox*>(editor)->setCurrentIndex(index.data(Qt::EditRole).toInt()); } diff --git a/pokemodr/TileUI.cpp b/pokemodr/TileUI.cpp index e9e1d96f..c8c5b22b 100644 --- a/pokemodr/TileUI.cpp +++ b/pokemodr/TileUI.cpp @@ -53,10 +53,7 @@ void TileUI::refreshGui() { const Tile* tile = static_cast<const Pokemod*>(original()->pokemod())->tile(i); if (tile->id() != static_cast<Tile*>(original())->id()) - { - varHMUnder->addItem(tile->sprite(), tile->name()); - varHMUnder->setItemData(varHMUnder->count() - 1, tile->id()); - } + varHMUnder->addItem(tile->sprite(), tile->name(), tile->id()); } } diff --git a/pokemodr/gui/abilityeffect.ui b/pokemodr/gui/abilityeffect.ui index 2305a554..9079ded0 100644 --- a/pokemodr/gui/abilityeffect.ui +++ b/pokemodr/gui/abilityeffect.ui @@ -38,7 +38,7 @@ </property> <layout class="QHBoxLayout" > <item> - <widget class="KComboBox" name="varVal1" > + <widget class="KComboBox" name="varValue1" > <property name="toolTip" > <string>Value 1</string> </property> @@ -54,7 +54,7 @@ </property> <layout class="QHBoxLayout" > <item> - <widget class="KComboBox" name="varVal2" > + <widget class="KComboBox" name="varValue2" > <property name="toolTip" > <string>Value 2</string> </property> @@ -70,7 +70,7 @@ </property> <layout class="QHBoxLayout" > <item> - <widget class="KIntNumInput" name="varVal3" > + <widget class="KIntNumInput" name="varValue3" > <property name="toolTip" > <string>Value 3</string> </property> @@ -105,7 +105,7 @@ </property> <layout class="QHBoxLayout" > <item> - <widget class="KComboBox" name="varTval1" > + <widget class="KComboBox" name="varTriggerValue1" > <property name="toolTip" > <string>Trigger value 1</string> </property> diff --git a/pokemodr/models/AbilityEffectModel.cpp b/pokemodr/models/AbilityEffectModel.cpp index 01ac02f9..0c7bb8c6 100644 --- a/pokemodr/models/AbilityEffectModel.cpp +++ b/pokemodr/models/AbilityEffectModel.cpp @@ -19,7 +19,7 @@ #include "AbilityEffectModel.h" // PokeModr includes -// #include "../AbilityEffectUI.h" +#include "../AbilityEffectUI.h" // Pokemod includes #include "../../pokemod/Ability.h" @@ -53,9 +53,8 @@ QVariant AbilityEffectModel::data(int role) const } else if (role == BaseModel::WidgetRole) { - // TODO: AbilityEffectUI -// QWidget* widget = new AbilityEffectUI(static_cast<AbilityEffect*>(m_object), NULL); -// return QVariant::fromValue(widget); + QWidget* widget = new AbilityEffectUI(static_cast<AbilityEffect*>(m_object), NULL); + return QVariant::fromValue(widget); } return ObjectModel::data(role); } diff --git a/pokemodr/models/BaseModel.h b/pokemodr/models/BaseModel.h index 153aa785..5c65c733 100644 --- a/pokemodr/models/BaseModel.h +++ b/pokemodr/models/BaseModel.h @@ -147,7 +147,7 @@ class GroupModel : public BaseModel int rowCount() const; Qt::ItemFlags flags() const; - bool setData(const QVariant& /*value*/, int /*role = Qt::EditRole*/); + virtual bool setData(const QVariant& /*value*/, int /*role = Qt::EditRole*/); BaseModel* childItem(const int row); virtual int indexNumber() const = 0; diff --git a/pokemodr/pokemodr.pro b/pokemodr/pokemodr.pro index 8fded482..1b9be0fc 100644 --- a/pokemodr/pokemodr.pro +++ b/pokemodr/pokemodr.pro @@ -68,6 +68,7 @@ win32 { } SOURCES += AbilityUI.cpp \ + AbilityEffectUI.cpp \ AuthorUI.cpp \ BadgeUI.cpp \ CoinListUI.cpp \ @@ -146,6 +147,7 @@ SOURCES += AbilityUI.cpp \ models/TypeModel.cpp HEADERS += AbilityUI.h \ + AbilityEffectUI.h \ AuthorUI.h \ BadgeUI.h \ CoinListUI.h \ |
