diff options
Diffstat (limited to 'pokemodr/PokemodUI.cpp')
-rw-r--r-- | pokemodr/PokemodUI.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/pokemodr/PokemodUI.cpp b/pokemodr/PokemodUI.cpp index e6bb3f91..418cee1f 100644 --- a/pokemodr/PokemodUI.cpp +++ b/pokemodr/PokemodUI.cpp @@ -28,6 +28,7 @@ #include "ImageDialog.h" #include "PokemodUI.h" +#include "TypechartWidgetItem.h" PokemodUI::PokemodUI(Pokemod* p, QWidget* parent) : ObjectUI(parent), @@ -45,6 +46,18 @@ PokemodUI::PokemodUI(Pokemod* p, QWidget* parent) : varMap->addItem(m->getName()); varMap->setItemData(i, m->getId()); } + varTypechart->setRowCount(pokemod->getTypeCount()); + varTypechart->setColumnCount(pokemod->getTypeCount()); + QStringList types; + Matrix<Frac>* tc = pokemod->getTypeChart(); + for (int i = 0; i < pokemod->getTypeCount(); ++i) + { + types << pokemod->getItem(i)->getName(); + for (int j = 0; j < pokemod->getTypeCount(); ++j) + static_cast<TypechartWidgetItem*>(varTypechart->item(i, j))->setData(Qt::EditRole, qVariantFromValue(static_cast<void*>(&(*tc)(i, j)))); + } + varTypechart->setVerticalHeaderLabels(types); + varTypechart->setHorizontalHeaderLabels(types); setGui(); } @@ -298,3 +311,26 @@ void PokemodUI::on_varSurfFishSkin_pressed() setGui(); } } + +void PokemodUI::on_varTypechart_currentItemChanged(QTableWidgetItem* current, QTableWidgetItem* previous) +{ + disconnect(varEffectivenessNum, SIGNAL(valueChanged(int)), static_cast<TypechartWidgetItem*>(previous), SLOT(setNum(int))); + disconnect(varEffectivenessDenom, SIGNAL(valueChanged(int)), static_cast<TypechartWidgetItem*>(previous), SLOT(setDenom(int))); + TypechartWidgetItem* twi = static_cast<TypechartWidgetItem*>(current); + varEffectivenessNum->setValue(static_cast<Frac*>(twi->data(Qt::EditRole).value<void*>())->getNum()); + varEffectivenessNum->setMaximum(static_cast<Frac*>(twi->data(Qt::EditRole).value<void*>())->getDenom()); + varEffectivenessDenom->setValue(static_cast<Frac*>(twi->data(Qt::EditRole).value<void*>())->getDenom()); + connect(varEffectivenessNum, SIGNAL(valueChanged(int)), twi, SLOT(setNum(int))); + connect(varEffectivenessDenom, SIGNAL(valueChanged(int)), twi, SLOT(setDenom(int))); +} + +void PokemodUI::on_varEffectivenessNum_valueChanged() +{ + emit(changed(true)); +} + +void PokemodUI::on_varEffectivenessDenom_valueChanged(const int e) +{ + varEffectivenessNum->setMaximum(e); + emit(changed(true)); +} |