예제 #1
0
void TeamMenu::switchToTab(int index)
{
    if (ui->pokemonTabs->currentIndex() != index) {
        /* The signal/slot connection will call us again, thus we return */
        ui->pokemonTabs->setCurrentIndex(index);
        return;
    }
    if (!ui->pokemons.contains(index)) {
        ui->stack->addWidget(ui->pokemons[index]= new PokeEdit(this, &team().team().poke(index), ui->pokemonModel, ui->itemsModel, ui->natureModel));
        ui->pokemons[index]->setProperty("slot", index);
        connect(ui->pokemons[index], SIGNAL(switchToTrainer()), SIGNAL(switchToTrainer()));
        connect(ui->pokemons[index], SIGNAL(numChanged()), SLOT(tabIconChanged()));
        connect(ui->pokemons[index], SIGNAL(nameChanged()), SIGNAL(teamChanged()));
        connect(ui->pokemons[index], SIGNAL(itemChanged()), SIGNAL(teamChanged()));
    }
    ui->stack->setCurrentWidget(ui->pokemons[index]);
}
예제 #2
0
void TeamMenu::createIndexIfNeeded(int index)
{
    if (index < 6) {
        if (!ui->pokemons.contains(index)) {
            ui->stack->addWidget(ui->pokemons[index]= new PokeEdit(this, &team().team().poke(index), ui->pokemonModel, ui->itemsModel, ui->natureModel));
            ui->pokemons[index]->setProperty("slot", index);
            connect(ui->pokemons[index], SIGNAL(numChanged()), SLOT(tabIconChanged()));
            connect(ui->pokemons[index], SIGNAL(nameChanged()), SIGNAL(teamChanged()));
            connect(ui->pokemons[index], SIGNAL(itemChanged()), SIGNAL(teamChanged()));
        }
    } else if (index == 6) {
        if (!ui->boxes) {
            ui->stack->addWidget(ui->boxes = new PokeBoxes(this, &team()));
            connect(ui->boxes, SIGNAL(teamChanged()), SLOT(updatePokemons()));
            connect(ui->boxes, SIGNAL(teamChanged()), SIGNAL(teamChanged()));
        }
    }
}