void TB_PokemonBody::updateNum() { movesModel->setPokemon(poke()->num(), gen()); if (widget) { widget->loadPokemon(*poke()); } emit pokeChanged(poke()->num()); }
TB_TeamBody::TB_TeamBody(QWidget *parent, TeamHolder *team, int gen, QAbstractItemModel *pokeModel) : m_dockAdvanced(0), m_team(team), gen(gen), pokeModel(pokeModel), upParent(parent) { QHBoxLayout *hh = new QHBoxLayout(this); hh->setMargin(0); splitter = new QSplitter(); hh->addWidget(splitter); splitter->setChildrenCollapsible(false); QSettings s; QStringList itemList = s.value("show_all_items").toBool() ? ItemInfo::SortedNames(gen) : ItemInfo::SortedUsefulNames(gen); itemsModel = new QStringListModel(itemList, this); QStringList natures; for (int i = 0; i < NatureInfo::NumberOfNatures(); i++) { natures.push_back(NatureInfo::Name(i)); } natureModel = new QStringListModel(natures, this); QWidget *props = new QWidget(); QVBoxLayout *ml = new QVBoxLayout(props); ml->setMargin(0); /* Pokemon buttons */ QHBoxLayout *buttonsl = new QHBoxLayout; buttonsl->setSpacing(1); ml->addLayout(buttonsl); for (int i = 0; i < 6; i++) { const PokeTeam &poke = team->team().poke(i); buttonsl->addWidget(pokeButtons[i] = new TeamPokeButton(i,poke.num(),poke.level(), poke.item())); } /* Body! */ body = new QStackedWidget(); ml->addWidget(body); for (int i = 0; i < 6; i++) { pokeBody[i] = new TB_PokemonBody(&trainerTeam()->team().poke(i), i); } PokeBodyWidget *widget = new PokeBodyWidget(parent,gen,itemsModel,pokeModel, natureModel); pokeBody[0]->setWidget(widget); body->addWidget(widget); connect(widget, SIGNAL(advanceMenuOpen(bool)), SLOT(advancedClicked(bool))); pokeButtons[0]->setChecked(true); for(int i = 0; i < 6; i++) { connect(pokeButtons[i], SIGNAL(clicked()), SLOT(changeIndex())); connect(pokeButtons[i], SIGNAL(changePokemonBase(int,Pokemon::uniqueId)), SLOT(changePokemonBase(int,Pokemon::uniqueId))); connect(pokeButtons[i], SIGNAL(changePokemonOrder(QPair<int,int>)), SLOT(changePokemonOrder(QPair<int,int>))); connect(pokeBody[i], SIGNAL(pokeChanged(Pokemon::uniqueId)), SLOT(updateButton())); connect(pokeBody[i], SIGNAL(itemChanged(int)), SLOT(updateButton())); connect(pokeBody[i], SIGNAL(levelChanged()), SLOT(updateButton())); connect(pokeBody[i], SIGNAL(pokeChanged(Pokemon::uniqueId)),SLOT(indexNumChanged(Pokemon::uniqueId))); } splitter->addWidget(props); restoreAdvancedState(); }