void TB_PokemonBody::updateNum()
{
    movesModel->setPokemon(poke()->num(), gen());

    if (widget) {
        widget->loadPokemon(*poke());
    }

    emit pokeChanged(poke()->num());
}
Esempio n. 2
0
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();
}