diff options
Diffstat (limited to 'pokemodr/MapEffectUI.cpp')
| -rw-r--r-- | pokemodr/MapEffectUI.cpp | 70 |
1 files changed, 35 insertions, 35 deletions
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); |
