diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 21:07:11 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 21:07:11 -0500 |
| commit | 5747fe1b2f1b0f1677056dd3f4d36b2910d80630 (patch) | |
| tree | 8f3899aecf76ad59e23ef2ef6e2d21c82aef8142 /sigmodr/widgets/GameUI.cpp | |
| parent | ff2b57f4a557f8e3896f002e554d76f327fa1ac1 (diff) | |
Renamed Sigmod to Game where needed
Diffstat (limited to 'sigmodr/widgets/GameUI.cpp')
| -rw-r--r-- | sigmodr/widgets/GameUI.cpp | 125 |
1 files changed, 77 insertions, 48 deletions
diff --git a/sigmodr/widgets/GameUI.cpp b/sigmodr/widgets/GameUI.cpp index fd8551e0..9c427d3e 100644 --- a/sigmodr/widgets/GameUI.cpp +++ b/sigmodr/widgets/GameUI.cpp @@ -16,108 +16,137 @@ */ // Header include -#include "SigmodUI.h" +#include "GameUI.h" // Sigmodr widget includes #include "TypechartModel.h" +// Sigmodr widget includes +#include "FractionWidget.h" +#include "ScriptWidget.h" + // Sigmod includes +#include <sigmod/Game.h> #include <sigmod/Map.h> #include <sigmod/MapWarp.h> -#include <sigmod/Sigmod.h> #include <sigmod/Type.h> -Sigmodr::Widgets::SigmodUI::SigmodUI(Sigmod::Sigmod* sigmod, QWidget* parent) : +// KDE includes +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtGui/QCheckBox> +#include <QtGui/QLabel> +#include <QtGui/QTableView> +#include <QtUiTools/QUiLoader> + +Sigmodr::Widgets::GameUI::GameUI(Sigmod::Game* game, QWidget* parent) : ObjectUI(parent), m_changingMult(true) { - setupUi(this); - setObjects(sigmod, new Sigmod::Sigmod(*sigmod)); + setObjects(game, new Sigmod::Game(*game)); } -Sigmodr::Widgets::SigmodUI::~SigmodUI() +void Sigmodr::Widgets::GameUI::initGui() { + QFile file(":/gui/game.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_title = formWidget->findChild<KLineEdit*>("varTitle"); + ui_version = formWidget->findChild<KLineEdit*>("varVersion"); + ui_description = formWidget->findChild<KLineEdit*>("varDescription"); + ui_singlePlayer = formWidget->findChild<QCheckBox*>("varSinglePlayer"); + ui_startScript = formWidget->findChild<ScriptWidget*>("varStartScript"); + ui_typechart = formWidget->findChild<QTableView*>("varTypechart"); + ui_labelTypes = formWidget->findChild<QLabel*>("labelTypes"); + ui_effectiveness = formWidget->findChild<FractionWidget*>("varEffectiveness"); + connect(ui_title, SIGNAL(textChanged(QString)), this, SLOT(titleChanged(QString))); + connect(ui_version, SIGNAL(textChanged(QString)), this, SLOT(versionChanged(QString))); + connect(ui_description, SIGNAL(textChanged(QString)), this, SLOT(descriptionChanged(QString))); + connect(ui_singlePlayer, SIGNAL(toggled(bool)), this, SLOT(singlePlayerChanged(bool))); + connect(ui_startScript, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(startScriptChanged(Sigcore::Script))); + connect(ui_typechart, SIGNAL(clicked(QModelIndex)), this, SLOT(typechartChanged(QModelIndex))); + connect(ui_effectiveness, SIGNAL(valueChanged(Sigcore::Fraction)), this, SLOT(effectivenessChanged(Sigcore::Fraction))); } -void Sigmodr::Widgets::SigmodUI::initGui() +void Sigmodr::Widgets::GameUI::refreshGui() { + delete ui_typechart->model(); QStringList types; - for (int i = 0; i < qobject_cast<Sigmod::Sigmod*>(original())->typeCount(); ++i) - types << qobject_cast<Sigmod::Sigmod*>(original())->type(i)->name(); - varTypechart->setModel(new TypechartModel(qobject_cast<Sigmod::Sigmod*>(modified())->typechart(), types)); -} - -void Sigmodr::Widgets::SigmodUI::refreshGui() -{ - varEffectiveness->setEnabled(false); + for (int i = 0; i < qobject_cast<Sigmod::Game*>(original())->typeCount(); ++i) + types << qobject_cast<Sigmod::Game*>(original())->type(i)->name(); + ui_typechart->setModel(new TypechartModel(qobject_cast<Sigmod::Game*>(modified())->typechart(), types)); + ui_effectiveness->setEnabled(false); } -void Sigmodr::Widgets::SigmodUI::setGui() +void Sigmodr::Widgets::GameUI::setGui() { - varTitle->setText(qobject_cast<Sigmod::Sigmod*>(modified())->title()); - varVersion->setText(qobject_cast<Sigmod::Sigmod*>(modified())->version()); - varDescription->setText(qobject_cast<Sigmod::Sigmod*>(modified())->description()); - varSinglePlayer->setCheckState(qobject_cast<Sigmod::Sigmod*>(modified())->singlePlayer() ? Qt::Checked : Qt::Unchecked); - varStartScript->setValue(qobject_cast<Sigmod::Sigmod*>(modified())->startScript()); + ui_title->setText(qobject_cast<Sigmod::Game*>(modified())->title()); + ui_version->setText(qobject_cast<Sigmod::Game*>(modified())->version()); + ui_description->setText(qobject_cast<Sigmod::Game*>(modified())->description()); + ui_singlePlayer->setCheckState(qobject_cast<Sigmod::Game*>(modified())->singlePlayer() ? Qt::Checked : Qt::Unchecked); + ui_startScript->setValue(qobject_cast<Sigmod::Game*>(modified())->startScript()); } -void Sigmodr::Widgets::SigmodUI::apply() +void Sigmodr::Widgets::GameUI::apply() { - *qobject_cast<Sigmod::Sigmod*>(original()) = *qobject_cast<Sigmod::Sigmod*>(modified()); + *qobject_cast<Sigmod::Game*>(original()) = *qobject_cast<Sigmod::Game*>(modified()); emit(changed(false)); } -void Sigmodr::Widgets::SigmodUI::discard() +void Sigmodr::Widgets::GameUI::discard() { - *qobject_cast<Sigmod::Sigmod*>(modified()) = *qobject_cast<Sigmod::Sigmod*>(original()); + *qobject_cast<Sigmod::Game*>(modified()) = *qobject_cast<Sigmod::Game*>(original()); setGui(); - qobject_cast<TypechartModel*>(varTypechart->model())->discarded(); + qobject_cast<TypechartModel*>(ui_typechart->model())->discarded(); emit(changed(false)); } -void Sigmodr::Widgets::SigmodUI::on_varTitle_textChanged(const QString& title) +void Sigmodr::Widgets::GameUI::titleChanged(const QString& title) { - const int cursor = varTitle->cursorPosition(); - qobject_cast<Sigmod::Sigmod*>(modified())->setTitle(title); - varTitle->setCursorPosition(cursor); + const int cursor = ui_title->cursorPosition(); + qobject_cast<Sigmod::Game*>(modified())->setTitle(title); + ui_title->setCursorPosition(cursor); } -void Sigmodr::Widgets::SigmodUI::on_varVersion_textChanged(const QString& version) +void Sigmodr::Widgets::GameUI::versionChanged(const QString& version) { - const int cursor = varVersion->cursorPosition(); - qobject_cast<Sigmod::Sigmod*>(modified())->setVersion(version); - varVersion->setCursorPosition(cursor); + const int cursor = ui_version->cursorPosition(); + qobject_cast<Sigmod::Game*>(modified())->setVersion(version); + ui_version->setCursorPosition(cursor); } -void Sigmodr::Widgets::SigmodUI::on_varDescription_textChanged(const QString& description) +void Sigmodr::Widgets::GameUI::descriptionChanged(const QString& description) { - const int cursor = varDescription->cursorPosition(); - qobject_cast<Sigmod::Sigmod*>(modified())->setDescription(description); - varDescription->setCursorPosition(cursor); + const int cursor = ui_description->cursorPosition(); + qobject_cast<Sigmod::Game*>(modified())->setDescription(description); + ui_description->setCursorPosition(cursor); } -void Sigmodr::Widgets::SigmodUI::on_varSinglePlayer_clicked(const bool singlePlayer) +void Sigmodr::Widgets::GameUI::singlePlayerChanged(const bool singlePlayer) { - qobject_cast<Sigmod::Sigmod*>(modified())->setSinglePlayer(singlePlayer); + qobject_cast<Sigmod::Game*>(modified())->setSinglePlayer(singlePlayer); } -void Sigmodr::Widgets::SigmodUI::on_varStartScript_valueChanged(const Sigcore::Script& startScript) +void Sigmodr::Widgets::GameUI::startScriptChanged(const Sigcore::Script& startScript) { - qobject_cast<Sigmod::Sigmod*>(modified())->setStartScript(startScript); + qobject_cast<Sigmod::Game*>(modified())->setStartScript(startScript); } -void Sigmodr::Widgets::SigmodUI::on_varTypechart_clicked(const QModelIndex& index) +void Sigmodr::Widgets::GameUI::typechartChanged(const QModelIndex& index) { m_index = index; m_changingMult = true; - varEffectiveness->setEnabled(true); - labelTypes->setText(QString("%1 vs. %2").arg(varTypechart->model()->headerData(index.row(), Qt::Vertical, Qt::DisplayRole).toString()).arg(varTypechart->model()->headerData(index.column(), Qt::Horizontal, Qt::DisplayRole).toString())); - varEffectiveness->setValue(varTypechart->model()->data(m_index, Qt::EditRole).value<Sigcore::Fraction>()); + ui_effectiveness->setEnabled(true); + ui_labelTypes->setText(QString("%1 vs. %2").arg(ui_typechart->model()->headerData(index.row(), Qt::Vertical, Qt::DisplayRole).toString()).arg(ui_typechart->model()->headerData(index.column(), Qt::Horizontal, Qt::DisplayRole).toString())); + ui_effectiveness->setValue(ui_typechart->model()->data(m_index, Qt::EditRole).value<Sigcore::Fraction>()); } -void Sigmodr::Widgets::SigmodUI::on_varEffectiveness_valueChanged(const Sigcore::Fraction& multiplier) +void Sigmodr::Widgets::GameUI::effectivenessChanged(const Sigcore::Fraction& multiplier) { - varTypechart->model()->setData(m_index, QVariant::fromValue(multiplier), Qt::EditRole); + ui_typechart->model()->setData(m_index, QVariant::fromValue(multiplier), Qt::EditRole); if (!m_changingMult) emit(changed()); m_changingMult = false; |
