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]); }
QMenuBar *TeamBuilder::createMenuBar(MainEngine *w) { QMenuBar *menuBar = new QMenuBar(); menuBar->setObjectName("TeamBuilder"); QMenu *fileMenu = menuBar->addMenu(tr("&File")); fileMenu->addAction(tr("&New"),this,SLOT(newTeam()),tr("Ctrl+N", "New")); fileMenu->addAction(tr("&Save all"),this,SLOT(saveAll()),tr("Ctrl+S", "Save all")); fileMenu->addAction(tr("&Load all"),this,SLOT(openLoadWindow()),tr("Ctrl+L", "Load all")); fileMenu->addSeparator(); fileMenu->addAction(tr("&Quit"),qApp,SLOT(quit()),tr("Ctrl+Q", "Quit")); QMenu *teamMenu = menuBar->addMenu(tr("&Team")); if (currentWidget() && currentWidget() == this->teamMenu) { teamMenu->addAction(tr("Choose pokemon"), this->teamMenu, SLOT(choosePokemon()), tr("Alt+E", "Choose Pokemon")); } teamMenu->addAction(tr("Trainer Menu"), this, SLOT(switchToTrainer()), tr("Ctrl+B", "Trainer Menu")); teamMenu->addSeparator(); teamMenu->addAction(tr("&Add team"), this, SLOT(addTeam()), tr("Ctrl+A", "Add team")); teamMenu->addAction(tr("&Load team"), this, SLOT(openTeam()), tr("Ctrl+Shift+L", "Load team")); teamMenu->addAction(tr("&Save team"), this, SLOT(saveTeam()), tr("Ctrl+Shift+S", "Save team")); teamMenu->addAction(tr("&Import team"), this, SLOT(importTeam()), tr("Ctrl+I", "Import team")); teamMenu->addAction(tr("&Export team"), this, SLOT(exportTeam()), tr("Ctrl+E", "Export team")); teamMenu->addSeparator(); teamMenu->addAction(tr("Import from Android"), this, SLOT(importAndroid()), tr("Ctrl+Shift+I", "Import from Android")); teamMenu->addAction(tr("Export to Android"), this, SLOT(exportAndroid()), tr("Ctrl+Shift+E", "Export to Android")); currentWidget()->addMenus(menuBar); /* Loading mod menu */ QMenu *menuMods = menuBar->addMenu(tr("&Mods")); QActionGroup *group = new QActionGroup(menuMods); QString currentMod = PokemonInfoConfig::currentMod(); // No mod option. QAction *noMod = menuMods->addAction(tr("&No mod"), this, SLOT(setNoMod())); noMod->setCheckable(true); noMod->setChecked(currentMod.length()==0); group->addAction(noMod); menuMods->addSeparator(); QStringList mods = PokemonInfoConfig::availableMods(); foreach(QString smod, mods) { QAction *mod = menuMods->addAction(smod, this, SLOT(changeMod())); mod->setProperty("name", smod); mod->setCheckable(true); mod->setChecked(currentMod == smod); group->addAction(mod); }
void TeamMenu::setupUi() { ui->boxes = NULL; QGridLayout *grid = new QGridLayout(this); grid->addWidget(ui->stack = new QStackedWidget(), 1, 0, 1, 2); grid->addWidget(ui->pokemonTabs = new QTabBar(), 0, 0, 1, 1, Qt::AlignLeft|Qt::AlignTop); grid->addWidget(ui->done = new QPushButton(QApplication::style()->standardIcon(QStyle::SP_ArrowBack), tr("&Trainer Home")), 0, 1, 1, 1, Qt::AlignTop|Qt::AlignRight); ui->done->setObjectName("done"); grid->setContentsMargins(-1,0,-1,-1); QSignalMapper *shortcutMapper = new QSignalMapper(this); for (int i = 0; i < 7; i++) { if (i < 6) { ui->pokemonTabs->addTab(PokemonInfo::Icon(i+1), tr("Slot #&%1").arg(i+1)); } else { ui->pokemonTabs->addTab(QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon), tr("Boxes (#&%1)").arg(i+1)); } QShortcut *shortcut = new QShortcut(QKeySequence(QString("Ctrl+%1").arg(i+1)), this); connect(shortcut, SIGNAL(activated()), shortcutMapper, SLOT(map())); shortcutMapper->setMapping(shortcut, i); } connect(shortcutMapper, SIGNAL(mapped(int)), SLOT(switchToTab(int))); ui->pokemonTabs->setCurrentIndex(0); ui->pokemonTabs->setObjectName("pokemonTabs"); QSettings s; QStringList itemList = s.value("TeamBuilder/ShowAllItems").toBool() ? ItemInfo::SortedNames(team().team().gen()) : ItemInfo::SortedUsefulNames(team().team().gen()); ui->itemsModel = new QStringListModel(itemList, this); QStringList natures; for (int i = 0; i < NatureInfo::NumberOfNatures(); i++) { natures.push_back(NatureInfo::Name(i)); } ui->natureModel = new QStringListModel(natures, this); connect(ui->pokemonTabs, SIGNAL(currentChanged(int)), SLOT(switchToTab(int))); connect(ui->done, SIGNAL(clicked()), SIGNAL(switchToTrainer())); }