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]); }
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())); } } }