summaryrefslogtreecommitdiffstats
path: root/sigmodr/MapTrainerUI.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-01-20 02:35:26 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-01-20 02:35:26 -0500
commit9c70e0c5d1f45b798487baa21a2aefc277331041 (patch)
tree97daf0a98bdef6c37ae93604febc04e742ff195f /sigmodr/MapTrainerUI.cpp
parent3b3fa7431516065cd32d2522c7724a9f73fb2866 (diff)
downloadsigen-9c70e0c5d1f45b798487baa21a2aefc277331041.tar.gz
sigen-9c70e0c5d1f45b798487baa21a2aefc277331041.tar.xz
sigen-9c70e0c5d1f45b798487baa21a2aefc277331041.zip
MapTrainer leadTeamMember is now a list (cleaned up widget as well)
Diffstat (limited to 'sigmodr/MapTrainerUI.cpp')
-rw-r--r--sigmodr/MapTrainerUI.cpp41
1 files changed, 34 insertions, 7 deletions
diff --git a/sigmodr/MapTrainerUI.cpp b/sigmodr/MapTrainerUI.cpp
index 73a79537..70043dc3 100644
--- a/sigmodr/MapTrainerUI.cpp
+++ b/sigmodr/MapTrainerUI.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2008 Ben Boeckel <MathStuf@gmail.com>
+ * Copyright 2008-2009 Ben Boeckel <MathStuf@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -26,6 +26,10 @@
#include "../sigmod/Species.h"
#include "../sigmod/Trainer.h"
+// Qt includes
+#include <QtGui/QListWidget>
+#include <QtGui/QListWidgetItem>
+
Sigmodr::MapTrainerUI::MapTrainerUI(Sigmod::MapTrainer* trainer, QWidget* parent) :
ObjectUI(parent)
{
@@ -49,15 +53,19 @@ void Sigmodr::MapTrainerUI::refreshGui()
varTrainerClass->blockSignals(blockedTrainerClass);
varNumberFight->setMaximum(sigmod()->rules()->maxFight());
const bool blockedLeadTeamMember = varLeadTeamMember->blockSignals(true);
- varLeadTeamMember->clear();
+ varLeadTeamMember->availableListWidget()->clear();
+ varLeadTeamMember->selectedListWidget()->clear();
for (int i = 0; i < qobject_cast<Sigmod::MapTrainer*>(original())->teamMemberCount(); ++i)
{
+ QString speciesName;
const Sigmod::MapTrainerTeamMember* teamMember = qobject_cast<Sigmod::MapTrainer*>(original())->teamMember(i);
const Sigmod::Species* species = sigmod()->species(teamMember->species());
- if (species)
- varLeadTeamMember->addItem(species->name(), teamMember->id());
+ speciesName = species ? species->name() : "(Invalid)";
+ QListWidgetItem* widgetItem = new QListWidgetItem(QString("%1 level %2 (%3)").arg(speciesName, teamMember->level(), i), varLeadTeamMember->availableListWidget());
+ widgetItem->setData(Qt::UserRole, teamMember->id());
}
varLeadTeamMember->blockSignals(blockedLeadTeamMember);
+ varLeadTeamMember->setButtonsEnabled();
}
void Sigmodr::MapTrainerUI::setGui()
@@ -66,7 +74,19 @@ void Sigmodr::MapTrainerUI::setGui()
varTrainerClass->setCurrentIndex(varTrainerClass->findData(qobject_cast<Sigmod::MapTrainer*>(modified())->trainerClass()));
varNumberFight->setValue(qobject_cast<Sigmod::MapTrainer*>(modified())->numberFight());
varScript->setValue(qobject_cast<Sigmod::MapTrainer*>(modified())->script());
- varLeadTeamMember->setCurrentIndex(varLeadTeamMember->findData(qobject_cast<Sigmod::MapTrainer*>(modified())->leadTeamMember()));
+ for (int i = 0; i < varLeadTeamMember->availableListWidget()->count(); ++i)
+ {
+ QListWidgetItem* widgetItem = varLeadTeamMember->availableListWidget()->item(i);
+ if (qobject_cast<Sigmod::MapTrainer*>(modified())->leadTeamMember(widgetItem->data(Qt::UserRole).toInt()))
+ varLeadTeamMember->selectedListWidget()->addItem(varLeadTeamMember->availableListWidget()->takeItem(i--));
+ }
+ for (int i = 0; i < varLeadTeamMember->selectedListWidget()->count(); ++i)
+ {
+ QListWidgetItem* widgetItem = varLeadTeamMember->selectedListWidget()->item(i);
+ if (!qobject_cast<Sigmod::MapTrainer*>(modified())->leadTeamMember(widgetItem->data(Qt::UserRole).toInt()))
+ varLeadTeamMember->availableListWidget()->addItem(varLeadTeamMember->selectedListWidget()->takeItem(i--));
+ }
+ varLeadTeamMember->setButtonsEnabled();
}
void Sigmodr::MapTrainerUI::apply()
@@ -104,7 +124,14 @@ void Sigmodr::MapTrainerUI::on_varScript_valueChanged(const Sigcore::Script& scr
qobject_cast<Sigmod::MapTrainer*>(modified())->setScript(script);
}
-void Sigmodr::MapTrainerUI::on_varLeadTeamMember_activated(const int leadTeamMember)
+void Sigmodr::MapTrainerUI::on_varLeadTeamMember_added(QListWidgetItem* item)
{
- qobject_cast<Sigmod::MapTrainer*>(modified())->setLeadTeamMember(leadTeamMember);
+ qobject_cast<Sigmod::MapTrainer*>(modified())->setLeadTeamMember(item->data(Qt::UserRole).toInt(), true);
+ setGui();
+}
+
+void Sigmodr::MapTrainerUI::on_varLeadTeamMember_removed(QListWidgetItem* item)
+{
+ qobject_cast<Sigmod::MapTrainer*>(modified())->setLeadTeamMember(item->data(Qt::UserRole).toInt(), false);
+ setGui();
}