diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 10:21:30 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 10:21:30 -0500 |
| commit | b48cebf7472f2a30e1ae8747349045661ecf6547 (patch) | |
| tree | ce1cd2ac18550cfd0cc7df2fd5656ebc3ba3a873 | |
| parent | 4453d587364e38c11f218c46db482f0b2ebe93ae (diff) | |
Cleaned up more classes to load ui files at runtime
| -rw-r--r-- | sigmodr/widgets/AuthorUI.cpp | 44 | ||||
| -rw-r--r-- | sigmodr/widgets/AuthorUI.h | 18 | ||||
| -rw-r--r-- | sigmodr/widgets/BadgeUI.cpp | 139 | ||||
| -rw-r--r-- | sigmodr/widgets/BadgeUI.h | 35 | ||||
| -rw-r--r-- | sigmodr/widgets/CoinListItemUI.cpp | 60 | ||||
| -rw-r--r-- | sigmodr/widgets/CoinListItemUI.h | 21 | ||||
| -rw-r--r-- | sigmodr/widgets/CoinListUI.cpp | 33 | ||||
| -rw-r--r-- | sigmodr/widgets/CoinListUI.h | 21 | ||||
| -rw-r--r-- | sigmodr/widgets/EggGroupUI.cpp | 24 | ||||
| -rw-r--r-- | sigmodr/widgets/EggGroupUI.h | 12 | ||||
| -rw-r--r-- | sigmodr/widgets/GlobalScriptUI.cpp | 33 | ||||
| -rw-r--r-- | sigmodr/widgets/GlobalScriptUI.h | 21 | ||||
| -rw-r--r-- | sigmodr/widgets/TrainerUI.cpp | 7 |
13 files changed, 296 insertions, 172 deletions
diff --git a/sigmodr/widgets/AuthorUI.cpp b/sigmodr/widgets/AuthorUI.cpp index 0cad47bd..b0d39f8d 100644 --- a/sigmodr/widgets/AuthorUI.cpp +++ b/sigmodr/widgets/AuthorUI.cpp @@ -21,22 +21,38 @@ // Sigmod includes #include <sigmod/Author.h> +// KDE includes +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + Sigmodr::Widgets::AuthorUI::AuthorUI(Sigmod::Author* author, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(author, new Sigmod::Author(*author)); } -Sigmodr::Widgets::AuthorUI::~AuthorUI() +void Sigmodr::Widgets::AuthorUI::initGui() { + QFile file(":/gui/author.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_email= formWidget->findChild<KLineEdit*>("varEmail"); + ui_role = formWidget->findChild<KLineEdit*>("varRole"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_email, SIGNAL(textChanged(QString)), this, SLOT(emailChanged(QString))); + connect(ui_role, SIGNAL(textChanged(QString)), this, SLOT(roleChanged(QString))); } void Sigmodr::Widgets::AuthorUI::setGui() { - varName->setText(qobject_cast<Sigmod::Author*>(modified())->name()); - varEmail->setText(qobject_cast<Sigmod::Author*>(modified())->email()); - varRole->setText(qobject_cast<Sigmod::Author*>(modified())->role()); + ui_name->setText(qobject_cast<Sigmod::Author*>(modified())->name()); + ui_email->setText(qobject_cast<Sigmod::Author*>(modified())->email()); + ui_role->setText(qobject_cast<Sigmod::Author*>(modified())->role()); } void Sigmodr::Widgets::AuthorUI::apply() @@ -52,23 +68,23 @@ void Sigmodr::Widgets::AuthorUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::AuthorUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::AuthorUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::Author*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void Sigmodr::Widgets::AuthorUI::on_varEmail_textChanged(const QString& email) +void Sigmodr::Widgets::AuthorUI::emailChanged(const QString& email) { - const int cursor = varEmail->cursorPosition(); + const int cursor = ui_email->cursorPosition(); qobject_cast<Sigmod::Author*>(modified())->setEmail(email); - varEmail->setCursorPosition(cursor); + ui_email->setCursorPosition(cursor); } -void Sigmodr::Widgets::AuthorUI::on_varRole_textChanged(const QString& role) +void Sigmodr::Widgets::AuthorUI::roleChanged(const QString& role) { - const int cursor = varRole->cursorPosition(); + const int cursor = ui_role->cursorPosition(); qobject_cast<Sigmod::Author*>(modified())->setRole(role); - varRole->setCursorPosition(cursor); + ui_role->setCursorPosition(cursor); } diff --git a/sigmodr/widgets/AuthorUI.h b/sigmodr/widgets/AuthorUI.h index 3145ca00..cdcf0138 100644 --- a/sigmodr/widgets/AuthorUI.h +++ b/sigmodr/widgets/AuthorUI.h @@ -18,13 +18,11 @@ #ifndef SIGMODRWIDGETS_AUTHORUI #define SIGMODRWIDGETS_AUTHORUI -// Form include -#include "ui_author.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KLineEdit; namespace Sigmod { class Author; @@ -34,21 +32,25 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT AuthorUI : public ObjectUI, private Ui::formAuthor +class SIGMODRWIDGETS_EXPORT AuthorUI : public ObjectUI { Q_OBJECT public: AuthorUI(Sigmod::Author* author, QWidget* parent); - ~AuthorUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varEmail_textChanged(const QString& email); - void on_varRole_textChanged(const QString& role); + void nameChanged(const QString& name); + void emailChanged(const QString& email); + void roleChanged(const QString& role); + private: + KLineEdit* ui_name; + KLineEdit* ui_email; + KLineEdit* ui_role; private slots: + void initGui(); void setGui(); }; } diff --git a/sigmodr/widgets/BadgeUI.cpp b/sigmodr/widgets/BadgeUI.cpp index 50ad7458..5e92e085 100644 --- a/sigmodr/widgets/BadgeUI.cpp +++ b/sigmodr/widgets/BadgeUI.cpp @@ -18,40 +18,63 @@ // Header include #include "BadgeUI.h" +// Sigmodr widget includes +#include "FractionWidget.h" + // Sigmod includes #include <sigmod/Badge.h> #include <sigmod/Rules.h> #include <sigmod/Sigmod.h> #include <sigmod/Sprite.h> +// KDE includes +#include <KComboBox> +#include <KIntNumInput> +#include <KLineEdit> + // Qt includes +#include <QtCore/QFile> #include <QtGui/QHeaderView> +#include <QtGui/QTableWidget> +#include <QtGui/QTableWidgetItem> +#include <QtUiTools/QUiLoader> Sigmodr::Widgets::BadgeUI::BadgeUI(Sigmod::Badge* badge, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(badge, new Sigmod::Badge(*badge)); } -Sigmodr::Widgets::BadgeUI::~BadgeUI() -{ -} - void Sigmodr::Widgets::BadgeUI::initGui() { - varStat->horizontalHeader()->setResizeMode(QHeaderView::Stretch); + QFile file(":/gui/badge.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_obey= formWidget->findChild<KIntNumInput*>("varName"); + ui_face = formWidget->findChild<KComboBox*>("varName"); + ui_badge = formWidget->findChild<KComboBox*>("varName"); + ui_stat = formWidget->findChild<QTableWidget*>("varName"); + ui_statMultiplier = formWidget->findChild<FractionWidget*>("varName"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_obey, SIGNAL(valueChanged(int)), this, SLOT(obeyChanged(int))); + connect(ui_face, SIGNAL(currentIndexChanged(int)), this, SLOT(faceChanged(int))); + connect(ui_badge, SIGNAL(currentIndexChanged(int)), this, SLOT(badgeChanged(int))); + connect(ui_stat, SIGNAL(currentCellChanged(int,int,int,int)), this, SLOT(statChanged(int))); + connect(ui_statMultiplier, SIGNAL(valueChanged(Sigcore::Fraction)), this, SLOT(statMultiplierChanged(Sigcore::Fraction))); + ui_stat->horizontalHeader()->setResizeMode(QHeaderView::Stretch); } void Sigmodr::Widgets::BadgeUI::refreshGui() { int maxHeight = 0; int maxWidth = 0; - varObey->setMaximum(sigmod()->rules()->maxLevel()); - const bool blockedFace = varFace->blockSignals(true); - const bool blockedBadge = varBadge->blockSignals(true); - varFace->clear(); - varBadge->clear(); + ui_obey->setMaximum(sigmod()->rules()->maxLevel()); + const bool blockedFace = ui_face->blockSignals(true); + const bool blockedBadge = ui_badge->blockSignals(true); + ui_face->clear(); + ui_badge->clear(); for (int i = 0; i < sigmod()->spriteCount(); ++i) { const Sigmod::Sprite* sprite = sigmod()->sprite(i); @@ -59,74 +82,74 @@ void Sigmodr::Widgets::BadgeUI::refreshGui() icon.loadFromData(sprite->sprite()); maxHeight = qMax(maxHeight, icon.height()); maxWidth = qMax(maxWidth, icon.width()); - varFace->addItem(icon, sprite->name(), sprite->id()); - varBadge->addItem(icon, sprite->name(), sprite->id()); + ui_face->addItem(icon, sprite->name()); + ui_badge->addItem(icon, sprite->name()); } - varFace->blockSignals(blockedFace); - varBadge->blockSignals(blockedBadge); + ui_face->blockSignals(blockedFace); + ui_badge->blockSignals(blockedBadge); const QSize maxSize(maxWidth, maxHeight); - varFace->setIconSize(maxSize); - varBadge->setIconSize(maxSize); + ui_face->setIconSize(maxSize); + ui_badge->setIconSize(maxSize); const bool isSplit = sigmod()->rules()->specialSplit(); - varStat->clear(); - varStat->setRowCount((isSplit ? Sigmod::ST_SpecialDefense : Sigmod::ST_Special) - Sigmod::ST_Attack + 1); - varStat->setVerticalHeaderLabels((isSplit ? Sigmod::StatGSCStr : Sigmod::StatRBYStr).mid(Sigmod::ST_Attack, (isSplit ? Sigmod::ST_SpecialDefense : Sigmod::ST_Special) - Sigmod::ST_Attack + 1)); - varStat->setColumnCount(1); - varStat->setHorizontalHeaderLabels(QStringList() << "Multiplier"); - varStat->verticalHeaderItem(Sigmod::ST_Attack - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Attack)); - varStat->verticalHeaderItem(Sigmod::ST_Defense - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Defense)); - varStat->verticalHeaderItem(Sigmod::ST_Speed - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Speed)); + ui_stat->clear(); + ui_stat->setRowCount((isSplit ? Sigmod::ST_SpecialDefense : Sigmod::ST_Special) - Sigmod::ST_Attack + 1); + ui_stat->setVerticalHeaderLabels((isSplit ? Sigmod::StatGSCStr : Sigmod::StatRBYStr).mid(Sigmod::ST_Attack, (isSplit ? Sigmod::ST_SpecialDefense : Sigmod::ST_Special) - Sigmod::ST_Attack + 1)); + ui_stat->setColumnCount(1); + ui_stat->setHorizontalHeaderLabels(QStringList() << "Multiplier"); + ui_stat->verticalHeaderItem(Sigmod::ST_Attack - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Attack)); + ui_stat->verticalHeaderItem(Sigmod::ST_Defense - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Defense)); + ui_stat->verticalHeaderItem(Sigmod::ST_Speed - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Speed)); if (isSplit) { - varStat->verticalHeaderItem(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_SpecialAttack)); - varStat->verticalHeaderItem(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_SpecialDefense)); + ui_stat->verticalHeaderItem(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_SpecialAttack)); + ui_stat->verticalHeaderItem(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_SpecialDefense)); } else - varStat->verticalHeaderItem(Sigmod::ST_Special - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Special)); + ui_stat->verticalHeaderItem(Sigmod::ST_Special - Sigmod::ST_Attack)->setData(Qt::UserRole, QVariant::fromValue(Sigmod::ST_Special)); QTableWidgetItem* item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_Attack - Sigmod::ST_Attack, 0, item); - varStat->setCurrentItem(item); + ui_stat->setItem(Sigmod::ST_Attack - Sigmod::ST_Attack, 0, item); + ui_stat->setCurrentItem(item); item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_Defense- Sigmod::ST_Attack, 0, item); + ui_stat->setItem(Sigmod::ST_Defense- Sigmod::ST_Attack, 0, item); item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_Speed - Sigmod::ST_Attack, 0, item); + ui_stat->setItem(Sigmod::ST_Speed - Sigmod::ST_Attack, 0, item); if (isSplit) { item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack, 0, item); + ui_stat->setItem(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack, 0, item); item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack, 0, item); + ui_stat->setItem(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack, 0, item); } else { item = new QTableWidgetItem; item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - varStat->setItem(Sigmod::ST_Special - Sigmod::ST_Attack, 0, item); + ui_stat->setItem(Sigmod::ST_Special - Sigmod::ST_Attack, 0, item); } } void Sigmodr::Widgets::BadgeUI::setGui() { - varName->setText(qobject_cast<Sigmod::Badge*>(modified())->name()); - varObey->setValue(qobject_cast<Sigmod::Badge*>(modified())->obey()); - varFace->setCurrentIndex(varFace->findData(qobject_cast<Sigmod::Badge*>(modified())->face())); - varBadge->setCurrentIndex(varBadge->findData(qobject_cast<Sigmod::Badge*>(modified())->badge())); - varStat->item(Sigmod::ST_Attack - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Attack), 'g', 7)); - varStat->item(Sigmod::ST_Defense - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Defense), 'g', 7)); - varStat->item(Sigmod::ST_Speed - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Speed), 'g', 7)); + ui_name->setText(qobject_cast<Sigmod::Badge*>(modified())->name()); + ui_obey->setValue(qobject_cast<Sigmod::Badge*>(modified())->obey()); + ui_face->setCurrentIndex(sigmod()->spriteIndex(qobject_cast<Sigmod::Badge*>(modified())->face())); + ui_badge->setCurrentIndex(sigmod()->spriteIndex(qobject_cast<Sigmod::Badge*>(modified())->badge())); + ui_stat->item(Sigmod::ST_Attack - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Attack), 'g', 7)); + ui_stat->item(Sigmod::ST_Defense - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Defense), 'g', 7)); + ui_stat->item(Sigmod::ST_Speed - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Speed), 'g', 7)); if (sigmod()->rules()->specialSplit()) { - varStat->item(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_SpecialAttack), 'g', 7)); - varStat->item(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_SpecialDefense), 'g', 7)); + ui_stat->item(Sigmod::ST_SpecialAttack - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_SpecialAttack), 'g', 7)); + ui_stat->item(Sigmod::ST_SpecialDefense - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_SpecialDefense), 'g', 7)); } else - varStat->item(Sigmod::ST_Special - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Special), 'g', 7)); - varStatMultiplier->setValue(qobject_cast<Sigmod::Badge*>(modified())->stat(varStat->verticalHeaderItem(varStat->currentRow())->data(Qt::UserRole).value<Sigmod::Stat>())); + ui_stat->item(Sigmod::ST_Special - Sigmod::ST_Attack, 0)->setData(Qt::DisplayRole, QString::number(qobject_cast<Sigmod::Badge*>(modified())->stat(Sigmod::ST_Special), 'g', 7)); + ui_statMultiplier->setValue(qobject_cast<Sigmod::Badge*>(modified())->stat(ui_stat->verticalHeaderItem(ui_stat->currentRow())->data(Qt::UserRole).value<Sigmod::Stat>())); } void Sigmodr::Widgets::BadgeUI::apply() @@ -142,34 +165,34 @@ void Sigmodr::Widgets::BadgeUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::BadgeUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::BadgeUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::Badge*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void Sigmodr::Widgets::BadgeUI::on_varObey_valueChanged(const int obey) +void Sigmodr::Widgets::BadgeUI::obeyChanged(const int obey) { qobject_cast<Sigmod::Badge*>(modified())->setObey(obey); } -void Sigmodr::Widgets::BadgeUI::on_varFace_currentIndexChanged(const int face) +void Sigmodr::Widgets::BadgeUI::faceChanged(const int face) { - qobject_cast<Sigmod::Badge*>(modified())->setFace(varFace->itemData(face).toInt()); + qobject_cast<Sigmod::Badge*>(modified())->setFace(sigmod()->sprite(face)->id()); } -void Sigmodr::Widgets::BadgeUI::on_varBadge_currentIndexChanged(const int badge) +void Sigmodr::Widgets::BadgeUI::badgeChanged(const int badge) { - qobject_cast<Sigmod::Badge*>(modified())->setBadge(varFace->itemData(badge).toInt()); + qobject_cast<Sigmod::Badge*>(modified())->setBadge(sigmod()->sprite(badge)->id()); } -void Sigmodr::Widgets::BadgeUI::on_varStat_currentCellChanged(const int row) +void Sigmodr::Widgets::BadgeUI::statChanged(const int row) { - varStatMultiplier->setValue(qobject_cast<Sigmod::Badge*>(modified())->stat(varStat->verticalHeaderItem(row)->data(Qt::UserRole).value<Sigmod::Stat>())); + ui_statMultiplier->setValue(qobject_cast<Sigmod::Badge*>(modified())->stat(ui_stat->verticalHeaderItem(row)->data(Qt::UserRole).value<Sigmod::Stat>())); } -void Sigmodr::Widgets::BadgeUI::on_varStatMultiplier_valueChanged(const Sigcore::Fraction& multiplier) +void Sigmodr::Widgets::BadgeUI::statMultiplierChanged(const Sigcore::Fraction& multiplier) { - qobject_cast<Sigmod::Badge*>(modified())->setStat(varStat->verticalHeaderItem(varStat->currentRow())->data(Qt::UserRole).value<Sigmod::Stat>(), multiplier); + qobject_cast<Sigmod::Badge*>(modified())->setStat(ui_stat->verticalHeaderItem(ui_stat->currentRow())->data(Qt::UserRole).value<Sigmod::Stat>(), multiplier); } diff --git a/sigmodr/widgets/BadgeUI.h b/sigmodr/widgets/BadgeUI.h index eeef09b1..bb23e126 100644 --- a/sigmodr/widgets/BadgeUI.h +++ b/sigmodr/widgets/BadgeUI.h @@ -18,13 +18,18 @@ #ifndef SIGMODRWIDGETS_BADGEUI #define SIGMODRWIDGETS_BADGEUI -// Form include -#include "ui_badge.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KComboBox; +class KIntNumInput; +class KLineEdit; +class QTableWidget; +namespace Sigcore +{ +class Fraction; +} namespace Sigmod { class Badge; @@ -34,23 +39,31 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT BadgeUI : public ObjectUI, private Ui::formBadge +class FractionWidget; + +class SIGMODRWIDGETS_EXPORT BadgeUI : public ObjectUI { Q_OBJECT public: BadgeUI(Sigmod::Badge* badge, QWidget* parent); - ~BadgeUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varObey_valueChanged(const int obey); - void on_varFace_currentIndexChanged(const int face); - void on_varBadge_currentIndexChanged(const int badge); - void on_varStat_currentCellChanged(const int row); - void on_varStatMultiplier_valueChanged(const Sigcore::Fraction& multiplier); + void nameChanged(const QString& name); + void obeyChanged(const int obey); + void faceChanged(const int face); + void badgeChanged(const int badge); + void statChanged(const int row); + void statMultiplierChanged(const Sigcore::Fraction& multiplier); + private: + KLineEdit* ui_name; + KIntNumInput* ui_obey; + KComboBox* ui_face; + KComboBox* ui_badge; + QTableWidget* ui_stat; + FractionWidget* ui_statMultiplier; private slots: void initGui(); void refreshGui(); diff --git a/sigmodr/widgets/CoinListItemUI.cpp b/sigmodr/widgets/CoinListItemUI.cpp index bda7f62c..d6d4fe05 100644 --- a/sigmodr/widgets/CoinListItemUI.cpp +++ b/sigmodr/widgets/CoinListItemUI.cpp @@ -24,47 +24,56 @@ #include <sigmod/Sigmod.h> #include <sigmod/Species.h> +// KDE includes +#include <KComboBox> +#include <KIntNumInput> + // Qt includes +#include <QtCore/QFile> #include <QtGui/QButtonGroup> +#include <QtGui/QRadioButton> +#include <QtUiTools/QUiLoader> Sigmodr::Widgets::CoinListItemUI::CoinListItemUI(Sigmod::CoinListItem* item, QWidget* parent) : ObjectUI(parent), - m_buttonGroup(new QButtonGroup(this)), + ui_type(new QButtonGroup(this)), m_lastType(-1) { - setupUi(this); setObjects(item, new Sigmod::CoinListItem(*item)); } -Sigmodr::Widgets::CoinListItemUI::~CoinListItemUI() -{ -} - void Sigmodr::Widgets::CoinListItemUI::initGui() { - setTabOrder(varItem, varSpecies); - setTabOrder(varSpecies, varObject); - setTabOrder(varObject, varCost); - m_buttonGroup->addButton(varItem, Sigmod::CoinListItem::Item); - m_buttonGroup->addButton(varSpecies, Sigmod::CoinListItem::Species); - connect(m_buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(typeChanged(int))); + QFile file(":/gui/coinlistitem.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + QRadioButton* item = formWidget->findChild<QRadioButton*>("varItem"); + QRadioButton* species = formWidget->findChild<QRadioButton*>("varSpecies"); + ui_object = formWidget->findChild<KComboBox*>("varObject"); + ui_cost = formWidget->findChild<KIntNumInput*>("varCost"); + ui_type->addButton(item, Sigmod::CoinListItem::Item); + ui_type->addButton(species, Sigmod::CoinListItem::Species); + connect(ui_type, SIGNAL(buttonClicked(int)), this, SLOT(typeChanged(int))); + connect(ui_object, SIGNAL(currentIndexChanged(int)), this, SLOT(objectChanged(int))); + connect(ui_cost, SIGNAL(valueChanged(int)), this, SLOT(costChanged(int))); } void Sigmodr::Widgets::CoinListItemUI::setGui() { bool resetObjects = (qobject_cast<Sigmod::CoinListItem*>(modified())->type() != m_lastType); - m_buttonGroup->button(qobject_cast<Sigmod::CoinListItem*>(modified())->type())->setChecked(true); + ui_type->button(qobject_cast<Sigmod::CoinListItem*>(modified())->type())->setChecked(true); m_lastType = qobject_cast<Sigmod::CoinListItem*>(modified())->type(); if (resetObjects) { - const bool blocked = varObject->blockSignals(true); - varObject->clear(); + const bool blocked = ui_object->blockSignals(true); + ui_object->clear(); if (qobject_cast<Sigmod::CoinListItem*>(modified())->type() == Sigmod::CoinListItem::Item) { for (int i = 0; i < sigmod()->itemCount(); ++i) { const Sigmod::Item* item = sigmod()->item(i); - varObject->addItem(item->name(), item->id()); + ui_object->addItem(item->name(), item->id()); } } else @@ -72,13 +81,16 @@ void Sigmodr::Widgets::CoinListItemUI::setGui() for (int i = 0; i < sigmod()->speciesCount(); ++i) { const Sigmod::Species* species = sigmod()->species(i); - varObject->addItem(species->name(), species->id()); + ui_object->addItem(species->name(), species->id()); } } - varObject->blockSignals(blocked); + ui_object->blockSignals(blocked); } - varObject->setCurrentIndex(varObject->findData(qobject_cast<Sigmod::CoinListItem*>(modified())->object())); - varCost->setValue(qobject_cast<Sigmod::CoinListItem*>(modified())->cost()); + if (m_lastType == Sigmod::CoinListItem::Item) + ui_object->setCurrentIndex(sigmod()->itemIndex(qobject_cast<Sigmod::CoinListItem*>(modified())->object())); + else + ui_object->setCurrentIndex(sigmod()->speciesIndex(qobject_cast<Sigmod::CoinListItem*>(modified())->object())); + ui_cost->setValue(qobject_cast<Sigmod::CoinListItem*>(modified())->cost()); } void Sigmodr::Widgets::CoinListItemUI::apply() @@ -96,15 +108,15 @@ void Sigmodr::Widgets::CoinListItemUI::discard() void Sigmodr::Widgets::CoinListItemUI::typeChanged(const int type) { - qobject_cast<Sigmod::CoinListItem*>(modified())->setType(Sigmod::CoinListItem::Type(type)); + qobject_cast<Sigmod::CoinListItem*>(modified())->setType(static_cast<Sigmod::CoinListItem::Type>(type)); } -void Sigmodr::Widgets::CoinListItemUI::on_varObject_activated(const int obey) +void Sigmodr::Widgets::CoinListItemUI::objectChanged(const int obey) { - qobject_cast<Sigmod::CoinListItem*>(modified())->setObject(varObject->itemData(obey).toInt()); + qobject_cast<Sigmod::CoinListItem*>(modified())->setObject(ui_object->itemData(obey).toInt()); } -void Sigmodr::Widgets::CoinListItemUI::on_varCost_valueChanged(const int cost) +void Sigmodr::Widgets::CoinListItemUI::costChanged(const int cost) { qobject_cast<Sigmod::CoinListItem*>(modified())->setCost(cost); } diff --git a/sigmodr/widgets/CoinListItemUI.h b/sigmodr/widgets/CoinListItemUI.h index 19c0ec68..7a4f99f7 100644 --- a/sigmodr/widgets/CoinListItemUI.h +++ b/sigmodr/widgets/CoinListItemUI.h @@ -18,13 +18,12 @@ #ifndef SIGMODRWIDGETS_COINLISTITEMUI #define SIGMODRWIDGETS_COINLISTITEMUI -// Form include -#include "ui_coinlistitem.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KComboBox; +class KIntNumInput; class QButtonGroup; namespace Sigmod { @@ -35,26 +34,28 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT CoinListItemUI : public ObjectUI, private Ui::formCoinListItem +class SIGMODRWIDGETS_EXPORT CoinListItemUI : public ObjectUI { Q_OBJECT public: CoinListItemUI(Sigmod::CoinListItem* item, QWidget* parent); - ~CoinListItemUI(); public slots: void apply(); void discard(); protected slots: void typeChanged(const int type); - void on_varObject_activated(const int object); - void on_varCost_valueChanged(const int cost); + void objectChanged(const int object); + void costChanged(const int cost); + private: + QButtonGroup* ui_type; + KComboBox* ui_object; + KIntNumInput* ui_cost; + + bool m_lastType; private slots: void initGui(); void setGui(); - private: - QButtonGroup* m_buttonGroup; - bool m_lastType; }; } } diff --git a/sigmodr/widgets/CoinListUI.cpp b/sigmodr/widgets/CoinListUI.cpp index e35cce5e..14b1039c 100644 --- a/sigmodr/widgets/CoinListUI.cpp +++ b/sigmodr/widgets/CoinListUI.cpp @@ -18,25 +18,42 @@ // Header include #include "CoinListUI.h" +// Sigmodr widget includes +#include "ScriptWidget.h" + // Sigmod includes #include <sigmod/CoinList.h> #include <sigmod/Sigmod.h> +// KDE includes +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + Sigmodr::Widgets::CoinListUI::CoinListUI(Sigmod::CoinList* coinList, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(coinList, new Sigmod::CoinList(*coinList)); } -Sigmodr::Widgets::CoinListUI::~CoinListUI() +void Sigmodr::Widgets::CoinListUI::initGui() { + QFile file(":/gui/coinlist.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_script = formWidget->findChild<ScriptWidget*>("varScript"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_script, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(scriptChanged(Sigcore::Script))); } void Sigmodr::Widgets::CoinListUI::setGui() { - varName->setText(qobject_cast<Sigmod::CoinList*>(modified())->name()); - varScript->setValue(qobject_cast<Sigmod::CoinList*>(modified())->script()); + ui_name->setText(qobject_cast<Sigmod::CoinList*>(modified())->name()); + ui_script->setValue(qobject_cast<Sigmod::CoinList*>(modified())->script()); } void Sigmodr::Widgets::CoinListUI::apply() @@ -52,14 +69,14 @@ void Sigmodr::Widgets::CoinListUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::CoinListUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::CoinListUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::CoinList*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void Sigmodr::Widgets::CoinListUI::on_varScript_valueChanged(const Sigcore::Script& script) +void Sigmodr::Widgets::CoinListUI::scriptChanged(const Sigcore::Script& script) { qobject_cast<Sigmod::CoinList*>(modified())->setScript(script); } diff --git a/sigmodr/widgets/CoinListUI.h b/sigmodr/widgets/CoinListUI.h index 9694522b..fc4ab452 100644 --- a/sigmodr/widgets/CoinListUI.h +++ b/sigmodr/widgets/CoinListUI.h @@ -18,13 +18,15 @@ #ifndef SIGMODRWIDGETS_COINLISTUI #define SIGMODRWIDGETS_COINLISTUI -// Form include -#include "ui_coinlist.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KLineEdit; +namespace Sigcore +{ +class Script; +} namespace Sigmod { class CoinList; @@ -34,20 +36,25 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT CoinListUI : public ObjectUI, private Ui::formCoinList +class ScriptWidget; + +class SIGMODRWIDGETS_EXPORT CoinListUI : public ObjectUI { Q_OBJECT public: CoinListUI(Sigmod::CoinList* coinList, QWidget* parent); - ~CoinListUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varScript_valueChanged(const Sigcore::Script& script); + void nameChanged(const QString& name); + void scriptChanged(const Sigcore::Script& script); + private: + KLineEdit* ui_name; + ScriptWidget* ui_script; private slots: + void initGui(); void setGui(); }; } diff --git a/sigmodr/widgets/EggGroupUI.cpp b/sigmodr/widgets/EggGroupUI.cpp index 51e98115..200607ed 100644 --- a/sigmodr/widgets/EggGroupUI.cpp +++ b/sigmodr/widgets/EggGroupUI.cpp @@ -21,20 +21,32 @@ // Sigmod includes #include <sigmod/EggGroup.h> +// KDE includes +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + Sigmodr::Widgets::EggGroupUI::EggGroupUI(Sigmod::EggGroup* eggGroup, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(eggGroup, new Sigmod::EggGroup(*eggGroup)); } -Sigmodr::Widgets::EggGroupUI::~EggGroupUI() +void Sigmodr::Widgets::EggGroupUI::initGui() { + QFile file(":/gui/egggroup.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); } void Sigmodr::Widgets::EggGroupUI::setGui() { - varName->setText(qobject_cast<Sigmod::EggGroup*>(modified())->name()); + ui_name->setText(qobject_cast<Sigmod::EggGroup*>(modified())->name()); } void Sigmodr::Widgets::EggGroupUI::apply() @@ -50,9 +62,9 @@ void Sigmodr::Widgets::EggGroupUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::EggGroupUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::EggGroupUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::EggGroup*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } diff --git a/sigmodr/widgets/EggGroupUI.h b/sigmodr/widgets/EggGroupUI.h index deb16d11..b1287470 100644 --- a/sigmodr/widgets/EggGroupUI.h +++ b/sigmodr/widgets/EggGroupUI.h @@ -18,13 +18,11 @@ #ifndef SIGMODRWIDGETS_EGGGROUPUI #define SIGMODRWIDGETS_EGGGROUPUI -// Form include -#include "ui_egggroup.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KLineEdit; namespace Sigmod { class EggGroup; @@ -34,19 +32,21 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT EggGroupUI : public ObjectUI, private Ui::formEggGroup +class SIGMODRWIDGETS_EXPORT EggGroupUI : public ObjectUI { Q_OBJECT public: EggGroupUI(Sigmod::EggGroup* eggGroup, QWidget* parent); - ~EggGroupUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); + void nameChanged(const QString& name); + private: + KLineEdit* ui_name; private slots: + void initGui(); void setGui(); }; } diff --git a/sigmodr/widgets/GlobalScriptUI.cpp b/sigmodr/widgets/GlobalScriptUI.cpp index af06dc0c..891b8013 100644 --- a/sigmodr/widgets/GlobalScriptUI.cpp +++ b/sigmodr/widgets/GlobalScriptUI.cpp @@ -18,24 +18,41 @@ // Header include #include "GlobalScriptUI.h" +// Sigmodr widget includes +#include "ScriptWidget.h" + // Sigmod includes #include <sigmod/GlobalScript.h> +// KDE includes +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + Sigmodr::Widgets::GlobalScriptUI::GlobalScriptUI(Sigmod::GlobalScript* globalScript, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(globalScript, new Sigmod::GlobalScript(*globalScript)); } -Sigmodr::Widgets::GlobalScriptUI::~GlobalScriptUI() +void Sigmodr::Widgets::GlobalScriptUI::initGui() { + QFile file(":/gui/globalscript.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_script = formWidget->findChild<ScriptWidget*>("varScript"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_script, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(scriptChanged(Sigcore::Script))); } void Sigmodr::Widgets::GlobalScriptUI::setGui() { - varName->setText(qobject_cast<Sigmod::GlobalScript*>(modified())->name()); - varScript->setValue(qobject_cast<Sigmod::GlobalScript*>(modified())->script()); + ui_name->setText(qobject_cast<Sigmod::GlobalScript*>(modified())->name()); + ui_script->setValue(qobject_cast<Sigmod::GlobalScript*>(modified())->script()); } void Sigmodr::Widgets::GlobalScriptUI::apply() @@ -51,14 +68,14 @@ void Sigmodr::Widgets::GlobalScriptUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::GlobalScriptUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::GlobalScriptUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::GlobalScript*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void Sigmodr::Widgets::GlobalScriptUI::on_varScript_valueChanged(const Sigcore::Script& script) +void Sigmodr::Widgets::GlobalScriptUI::scriptChanged(const Sigcore::Script& script) { qobject_cast<Sigmod::GlobalScript*>(modified())->setScript(script); } diff --git a/sigmodr/widgets/GlobalScriptUI.h b/sigmodr/widgets/GlobalScriptUI.h index 7d2da83a..a69e6718 100644 --- a/sigmodr/widgets/GlobalScriptUI.h +++ b/sigmodr/widgets/GlobalScriptUI.h @@ -18,13 +18,15 @@ #ifndef SIGMODRWIDGETS_GLOBALSCRIPTUI #define SIGMODRWIDGETS_GLOBALSCRIPTUI -// Form include -#include "ui_globalscript.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KLineEdit; +namespace Sigcore +{ +class Script; +} namespace Sigmod { class GlobalScript; @@ -34,20 +36,25 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT GlobalScriptUI : public ObjectUI, private Ui::formGlobalScript +class ScriptWidget; + +class SIGMODRWIDGETS_EXPORT GlobalScriptUI : public ObjectUI { Q_OBJECT public: GlobalScriptUI(Sigmod::GlobalScript* globalScript, QWidget* parent); - ~GlobalScriptUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varScript_valueChanged(const Sigcore::Script& script); + void nameChanged(const QString& name); + void scriptChanged(const Sigcore::Script& script); + private: + KLineEdit* ui_name; + ScriptWidget* ui_script; private slots: + void initGui(); void setGui(); }; } diff --git a/sigmodr/widgets/TrainerUI.cpp b/sigmodr/widgets/TrainerUI.cpp index 33e70543..a87a84cf 100644 --- a/sigmodr/widgets/TrainerUI.cpp +++ b/sigmodr/widgets/TrainerUI.cpp @@ -73,10 +73,7 @@ void Sigmodr::Widgets::TrainerUI::initGui() void Sigmodr::Widgets::TrainerUI::refreshGui() { for (int i = 0; i < sigmod()->skinCount(); ++i) - { - const Sigmod::Skin* skin = sigmod()->skin(i); - ui_skin->addItem(skin->name(), skin->id()); - } + ui_skin->addItem(sigmod()->skin(i)->name()); ui_itemIntel->setEnabled(sigmod()->rules()->maxHeldItems()); ui_abilityIntel->setEnabled(sigmod()->rules()->maxAbilities()); } @@ -120,7 +117,7 @@ void Sigmodr::Widgets::TrainerUI::moneyFactorChanged(const int moneyFactor) void Sigmodr::Widgets::TrainerUI::skinChanged(const int skin) { - qobject_cast<Sigmod::Trainer*>(modified())->setSkin(ui_skin->itemData(skin).toInt()); + qobject_cast<Sigmod::Trainer*>(modified())->setSkin(sigmod()->skin(skin)->id()); } void Sigmodr::Widgets::TrainerUI::depthChanged(const int depth) |
