/////////////////////////////////////////////////////////////////////////////
// Name: pokegen/CoinListObjectUI.cpp
// Purpose: CoinListObject UI form handling
// Author: Ben Boeckel
// Modified by: Ben Boeckel
// Created: Fri Feb 1 13:35:58 2008
// Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions
// Licence:
// 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
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program. If not, see .
/////////////////////////////////////////////////////////////////////////////
#include
#include
#include
#include
#include
#include
#include
#include "CoinListObjectUI.h"
CoinListObjectUI::CoinListObjectUI(CoinListObject* c, QWidget* parent) :
ObjectUI(parent),
lastType(-1),
coinListObject(c),
coinListObject_mod(new CoinListObject(c->getPokemod(), *c, c->getId()))
{
setupUi(this);
QMetaObject::connectSlotsByName(this);
setObjects(coinListObject, coinListObject_mod);
connect(this, SIGNAL(changed(bool)), boxButtons, SLOT(setDisabled(bool)));
varType->addItems(CoinListObject::TypeStr);
setGui();
}
// KToolbar CoinListObjectUI::getToolbar(QWidget* parent)
// {
//
// }
void CoinListObjectUI::setGui()
{
bool resetObjects = (coinListObject_mod->getType() != lastType);
varType->setCurrentIndex(coinListObject_mod->getType());
if (resetObjects)
{
varObject->clear();
if (coinListObject_mod->getType() == CoinListObject::Item)
{
for (int i = 0; i < coinListObject->getPokemod()->getItemCount(); ++i)
{
const Item* it = coinListObject->getPokemod()->getItem(i);
varObject->addItem(it->getName());
varObject->setItemData(i, it->getId());
}
}
else
{
for (int i = 0; i < coinListObject->getPokemod()->getSpeciesCount(); ++i)
{
const Species* s = coinListObject->getPokemod()->getSpecies(i);
varObject->addItem(s->getName());
varObject->setItemData(i, s->getId());
}
}
lastType = coinListObject_mod->getType();
}
varObject->setCurrentIndex(varObject->findData(coinListObject_mod->getObject()));
varAmount->setValue(coinListObject_mod->getAmount());
varCost->setValue(coinListObject_mod->getCost());
}
void CoinListObjectUI::on_buttonApply_clicked()
{
*coinListObject = *coinListObject_mod;
emit(changed(false));
}
void CoinListObjectUI::on_buttonDiscard_clicked()
{
*coinListObject_mod = *coinListObject;
emit(changed(false));
setGui();
}
void CoinListObjectUI::on_varType_currentIndexChanged(const int t)
{
try
{
coinListObject_mod->setType(t);
emit(changed(true));
}
catch (BoundsException& e)
{
BugCatcher::report(e);
}
setGui();
}
void CoinListObjectUI::on_varObject_currentIndexChanged(const int o)
{
try
{
coinListObject_mod->setObject(varObject->itemData(o).toInt());
emit(changed(true));
}
catch (BoundsException& e)
{
BugCatcher::report(e);
setGui();
}
}
void CoinListObjectUI::on_varAmount_valueChanged(const int a)
{
try
{
coinListObject_mod->setAmount(a);
emit(changed(true));
}
catch (BoundsException& e)
{
BugCatcher::report(e);
setGui();
}
}
void CoinListObjectUI::on_varCost_valueChanged(const int c)
{
try
{
coinListObject_mod->setCost(c);
emit(changed(true));
}
catch (BoundsException& e)
{
BugCatcher::report(e);
setGui();
}
}