summaryrefslogtreecommitdiffstats
path: root/pokemodr/PokemodUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/PokemodUI.cpp')
-rw-r--r--pokemodr/PokemodUI.cpp36
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));
+}