diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 22:46:09 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-02-24 22:46:09 -0500 |
| commit | f8d9605077a6ed100a915c064adab76da5d240a6 (patch) | |
| tree | c9703c97f4093059068fb2eb6ad1afbfa285dd6f | |
| parent | 4acab35a099e9f6834432e7e89dee716c41549ba (diff) | |
Fixed up more widgets to load at runtime
| -rw-r--r-- | sigmodr/widgets/MapEffectUI.cpp | 54 | ||||
| -rw-r--r-- | sigmodr/widgets/MapEffectUI.h | 29 | ||||
| -rw-r--r-- | sigmodr/widgets/MapTrainerTeamMemberUI.cpp | 202 | ||||
| -rw-r--r-- | sigmodr/widgets/MapTrainerTeamMemberUI.h | 44 | ||||
| -rw-r--r-- | sigmodr/widgets/MapTrainerUI.cpp | 94 | ||||
| -rw-r--r-- | sigmodr/widgets/MapTrainerUI.h | 36 | ||||
| -rw-r--r-- | sigmodr/widgets/MapUI.cpp | 45 | ||||
| -rw-r--r-- | sigmodr/widgets/MapUI.h | 15 | ||||
| -rw-r--r-- | sigmodr/widgets/MapWarpUI.cpp | 94 | ||||
| -rw-r--r-- | sigmodr/widgets/MapWarpUI.h | 30 | ||||
| -rw-r--r-- | sigmodr/widgets/gui/map.ui | 2 | ||||
| -rw-r--r-- | sigmodr/widgets/gui/maptrainer.ui | 2 |
12 files changed, 392 insertions, 255 deletions
diff --git a/sigmodr/widgets/MapEffectUI.cpp b/sigmodr/widgets/MapEffectUI.cpp index e73110b4..86ebb563 100644 --- a/sigmodr/widgets/MapEffectUI.cpp +++ b/sigmodr/widgets/MapEffectUI.cpp @@ -18,12 +18,24 @@ // Header include #include "MapEffectUI.h" +// Sigmodr widget includes +#include "ScriptWidget.h" + // Sigmod includes #include <sigmod/Game.h> #include <sigmod/Item.h> #include <sigmod/MapEffect.h> #include <sigmod/Skin.h> +// KDE includes +#include <KComboBox> +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtGui/QCheckBox> +#include <QtUiTools/QUiLoader> + using namespace Sigcore; using namespace Sigmod; using namespace Sigmodr::Widgets; @@ -31,29 +43,37 @@ using namespace Sigmodr::Widgets; MapEffectUI::MapEffectUI(MapEffect* effect, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(effect, new MapEffect(*effect)); } -MapEffectUI::~MapEffectUI() +void Sigmodr::Widgets::MapEffectUI::initGui() { + QFile file(":/gui/mapeffect.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_skin = formWidget->findChild<KComboBox*>("varSkin"); + ui_script = formWidget->findChild<ScriptWidget*>("varScript"); + ui_isGhost = formWidget->findChild<QCheckBox*>("varIsGhost"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_skin, SIGNAL(currentIndexChanged(int)), this, SLOT(skinChanged(int))); + connect(ui_script, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(scriptChanged(Sigcore::Script))); + connect(ui_isGhost, SIGNAL(toggled(bool)), this, SLOT(isGhostChanged(bool))); } void MapEffectUI::refreshGui() { for (int i = 0; i < game()->skinCount(); ++i) - { - const Skin* skin = game()->skin(i); - varSkin->addItem(skin->name(), skin->id()); - } + ui_skin->addItem(game()->skin(i)->name()); } void MapEffectUI::setGui() { - varName->setText(qobject_cast<MapEffect*>(modified())->name()); - varSkin->setCurrentIndex(varSkin->findData(qobject_cast<MapEffect*>(modified())->skin())); - varScript->setValue(qobject_cast<MapEffect*>(modified())->script()); - varIsGhost->setCheckState(qobject_cast<MapEffect*>(modified())->isGhost() ? Qt::Checked : Qt::Unchecked); + ui_name->setText(qobject_cast<MapEffect*>(modified())->name()); + ui_skin->setCurrentIndex(game()->skinIndex(qobject_cast<MapEffect*>(modified())->skin())); + ui_script->setValue(qobject_cast<MapEffect*>(modified())->script()); + ui_isGhost->setCheckState(qobject_cast<MapEffect*>(modified())->isGhost() ? Qt::Checked : Qt::Unchecked); } void MapEffectUI::apply() @@ -69,24 +89,24 @@ void MapEffectUI::discard() emit(changed(false)); } -void MapEffectUI::on_varName_textChanged(const QString& name) +void MapEffectUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<MapEffect*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void MapEffectUI::on_varSkin_currentIndexChanged(const int skin) +void MapEffectUI::skinChanged(const int skin) { - qobject_cast<MapEffect*>(modified())->setSkin(varSkin->itemData(skin).toInt()); + qobject_cast<MapEffect*>(modified())->setSkin(game()->skin(skin)->id()); } -void MapEffectUI::on_varScript_valueChanged(const Script& script) +void MapEffectUI::scriptChanged(const Script& script) { qobject_cast<MapEffect*>(modified())->setScript(script); } -void MapEffectUI::on_varIsGhost_toggled(const bool isGhost) +void MapEffectUI::isGhostChanged(const bool isGhost) { qobject_cast<MapEffect*>(modified())->setIsGhost(isGhost); } diff --git a/sigmodr/widgets/MapEffectUI.h b/sigmodr/widgets/MapEffectUI.h index 26805e77..150b82e9 100644 --- a/sigmodr/widgets/MapEffectUI.h +++ b/sigmodr/widgets/MapEffectUI.h @@ -18,13 +18,17 @@ #ifndef SIGMODRWIDGETS_MAPEFFECTUI #define SIGMODRWIDGETS_MAPEFFECTUI -// Form include -#include "ui_mapeffect.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KComboBox; +class KLineEdit; +class QCheckBox; +namespace Sigcore +{ +class Script; +} namespace Sigmod { class MapEffect; @@ -34,22 +38,29 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT MapEffectUI : public ObjectUI, private Ui::formMapEffect +class ScriptWidget; + +class SIGMODRWIDGETS_EXPORT MapEffectUI : public ObjectUI { Q_OBJECT public: MapEffectUI(Sigmod::MapEffect* effect, QWidget* parent); - ~MapEffectUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varSkin_currentIndexChanged(const int skin); - void on_varScript_valueChanged(const Sigcore::Script& script); - void on_varIsGhost_toggled(const bool isGhost); + void nameChanged(const QString& name); + void skinChanged(const int skin); + void scriptChanged(const Sigcore::Script& script); + void isGhostChanged(const bool isGhost); + private: + KLineEdit* ui_name; + KComboBox* ui_skin; + ScriptWidget* ui_script; + QCheckBox* ui_isGhost; private slots: + void initGui(); void refreshGui(); void setGui(); }; diff --git a/sigmodr/widgets/MapTrainerTeamMemberUI.cpp b/sigmodr/widgets/MapTrainerTeamMemberUI.cpp index c9e57491..0741f42c 100644 --- a/sigmodr/widgets/MapTrainerTeamMemberUI.cpp +++ b/sigmodr/widgets/MapTrainerTeamMemberUI.cpp @@ -28,8 +28,17 @@ #include <sigmod/Rules.h> #include <sigmod/Species.h> +// KDE includes +#include <KActionSelector> +#include <KComboBox> +#include <KIntNumInput> +#include <KLineEdit> + // Qt includes +#include <QtCore/QFile> +#include <QtGui/QGroupBox> #include <QtGui/QListWidgetItem> +#include <QtUiTools/QUiLoader> using namespace Sigmod; using namespace Sigmodr::Widgets; @@ -37,138 +46,153 @@ using namespace Sigmodr::Widgets; MapTrainerTeamMemberUI::MapTrainerTeamMemberUI(MapTrainerTeamMember* teamMember, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(teamMember, new MapTrainerTeamMember(*teamMember)); } -MapTrainerTeamMemberUI::~MapTrainerTeamMemberUI() -{ -} - void MapTrainerTeamMemberUI::initGui() { - connect(varItems->selectedListWidget(), SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(selectedItemChanged(QListWidgetItem*))); + QFile file(":/gui/maptrainerteammember.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_species = formWidget->findChild<KComboBox*>("varSpecies"); + ui_level = formWidget->findChild<KIntNumInput*>("varLevel"); + ui_abilities = formWidget->findChild<KActionSelector*>("varAbilities"); + ui_boxItems = formWidget->findChild<QGroupBox*>("boxItems"); + ui_items = formWidget->findChild<KActionSelector*>("varItems"); + ui_itemCount = formWidget->findChild<KIntNumInput*>("varItemCount"); + ui_moves = formWidget->findChild<KActionSelector*>("varMoves"); + ui_natures = formWidget->findChild<KActionSelector*>("varNatures"); + connect(ui_species, SIGNAL(currentIndexChanged(int)), this, SLOT(speciesChanged(int))); + connect(ui_level, SIGNAL(valueChanged(int)), this, SLOT(levelChanged(int))); + connect(ui_abilities, SIGNAL(added(QListWidgetItem*)), this, SLOT(abilityAdded(QListWidgetItem*))); + connect(ui_abilities, SIGNAL(removed(QListWidgetItem*)), this, SLOT(abilityRemoved(QListWidgetItem*))); + connect(ui_items, SIGNAL(added(QListWidgetItem*)), this, SLOT(itemAdded(QListWidgetItem*))); + connect(ui_items, SIGNAL(removed(QListWidgetItem*)), this, SLOT(itemRemoved(QListWidgetItem*))); + connect(ui_itemCount, SIGNAL(valueChanged(int)), this, SLOT(itemCountChanged(int))); + connect(ui_moves, SIGNAL(added(QListWidgetItem*)), this, SLOT(moveAdded(QListWidgetItem*))); + connect(ui_moves, SIGNAL(removed(QListWidgetItem*)), this, SLOT(moveRemoved(QListWidgetItem*))); + connect(ui_natures, SIGNAL(added(QListWidgetItem*)), this, SLOT(natureAdded(QListWidgetItem*))); + connect(ui_natures, SIGNAL(removed(QListWidgetItem*)), this, SLOT(natureRemoved(QListWidgetItem*))); + connect(ui_items->selectedListWidget(), SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(selectedItemChanged(QListWidgetItem*))); } void MapTrainerTeamMemberUI::refreshGui() { - const bool blockedSpecies = varSpecies->blockSignals(true); - varSpecies->clear(); + const bool blockedSpecies = ui_species->blockSignals(true); + ui_species->clear(); for (int i = 0; i < game()->speciesCount(); ++i) - { - const Species* species = game()->species(i); - varSpecies->addItem(species->name(), species->id()); - } - varSpecies->blockSignals(blockedSpecies); - varLevel->setMaximum(game()->rules()->maxLevel()); - const bool blockedAbilities = varAbilities->blockSignals(true); - varAbilities->availableListWidget()->clear(); - varAbilities->selectedListWidget()->clear(); + ui_species->addItem(game()->species(i)->name()); + ui_species->blockSignals(blockedSpecies); + ui_level->setMaximum(game()->rules()->maxLevel()); + const bool blockedAbilities = ui_abilities->blockSignals(true); + ui_abilities->availableListWidget()->clear(); + ui_abilities->selectedListWidget()->clear(); for (int i = 0; i < game()->abilityCount(); ++i) { const Ability* ability = game()->ability(i); - QListWidgetItem* widgetItem = new QListWidgetItem(ability->name(), varAbilities->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(ability->name(), ui_abilities->availableListWidget()); widgetItem->setData(Qt::UserRole, ability->id()); } - varAbilities->blockSignals(blockedAbilities); - varAbilities->setButtonsEnabled(); - boxAbilities->setEnabled(game()->rules()->maxAbilities()); - const bool blockedItems = varItems->blockSignals(true); - varItems->availableListWidget()->clear(); - varItems->selectedListWidget()->clear(); + ui_abilities->blockSignals(blockedAbilities); + ui_abilities->setButtonsEnabled(); + ui_abilities->setEnabled(game()->rules()->maxAbilities()); + const bool blockedItems = ui_items->blockSignals(true); + ui_items->availableListWidget()->clear(); + ui_items->selectedListWidget()->clear(); for (int i = 0; i < game()->itemCount(); ++i) { const Item* item = game()->item(i); - QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), ui_items->availableListWidget()); widgetItem->setData(Qt::UserRole, item->id()); } - varItems->blockSignals(blockedItems); - varItems->setButtonsEnabled(); - boxItems->setEnabled(game()->rules()->maxHeldItems()); - const bool blockedMoves = varMoves->blockSignals(true); - varMoves->availableListWidget()->clear(); - varMoves->selectedListWidget()->clear(); + ui_items->blockSignals(blockedItems); + ui_items->setButtonsEnabled(); + ui_boxItems->setEnabled(game()->rules()->maxHeldItems()); + const bool blockedMoves = ui_moves->blockSignals(true); + ui_moves->availableListWidget()->clear(); + ui_moves->selectedListWidget()->clear(); for (int i = 0; i < game()->moveCount(); ++i) { const Move* move = game()->move(i); - QListWidgetItem* widgetItem = new QListWidgetItem(move->name(), varMoves->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(move->name(), ui_moves->availableListWidget()); widgetItem->setData(Qt::UserRole, move->id()); } - varMoves->blockSignals(blockedMoves); - varMoves->setButtonsEnabled(); - const bool blockedNatures = varNatures->blockSignals(true); - varNatures->availableListWidget()->clear(); - varNatures->selectedListWidget()->clear(); + ui_moves->blockSignals(blockedMoves); + ui_moves->setButtonsEnabled(); + const bool blockedNatures = ui_natures->blockSignals(true); + ui_natures->availableListWidget()->clear(); + ui_natures->selectedListWidget()->clear(); for (int i = 0; i < game()->natureCount(); ++i) { const Nature* nature = game()->nature(i); - QListWidgetItem* widgetItem = new QListWidgetItem(nature->name(), varNatures->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(nature->name(), ui_natures->availableListWidget()); widgetItem->setData(Qt::UserRole, nature->id()); } - varNatures->blockSignals(blockedNatures); - varNatures->setButtonsEnabled(); - boxNatures->setEnabled(game()->rules()->maxNatures()); + ui_natures->blockSignals(blockedNatures); + ui_natures->setButtonsEnabled(); + ui_natures->setEnabled(game()->rules()->maxNatures()); } void MapTrainerTeamMemberUI::setGui() { - varSpecies->setCurrentIndex(varSpecies->findData(qobject_cast<MapTrainerTeamMember*>(modified())->species())); - varLevel->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->level()); - for (int i = 0; i < varAbilities->availableListWidget()->count(); ++i) + ui_species->setCurrentIndex(game()->speciesIndex(qobject_cast<MapTrainerTeamMember*>(modified())->species())); + ui_level->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->level()); + for (int i = 0; i < ui_abilities->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varAbilities->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_abilities->availableListWidget()->item(i); if (qobject_cast<MapTrainerTeamMember*>(modified())->ability(widgetItem->data(Qt::UserRole).toInt())) - varAbilities->selectedListWidget()->addItem(varAbilities->availableListWidget()->takeItem(i--)); + ui_abilities->selectedListWidget()->addItem(ui_abilities->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varAbilities->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_abilities->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varAbilities->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_abilities->selectedListWidget()->item(i); if (!qobject_cast<MapTrainerTeamMember*>(modified())->ability(widgetItem->data(Qt::UserRole).toInt())) - varAbilities->availableListWidget()->addItem(varAbilities->selectedListWidget()->takeItem(i--)); + ui_abilities->availableListWidget()->addItem(ui_abilities->selectedListWidget()->takeItem(i--)); } - varAbilities->setButtonsEnabled(); - for (int i = 0; i < varItems->availableListWidget()->count(); ++i) + ui_abilities->setButtonsEnabled(); + for (int i = 0; i < ui_items->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varItems->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_items->availableListWidget()->item(i); if (qobject_cast<MapTrainerTeamMember*>(modified())->item(widgetItem->data(Qt::UserRole).toInt())) - varItems->selectedListWidget()->addItem(varItems->availableListWidget()->takeItem(i--)); + ui_items->selectedListWidget()->addItem(ui_items->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varItems->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_items->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varItems->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_items->selectedListWidget()->item(i); if (!qobject_cast<MapTrainerTeamMember*>(modified())->item(widgetItem->data(Qt::UserRole).toInt())) - varItems->availableListWidget()->addItem(varItems->selectedListWidget()->takeItem(i--)); + ui_items->availableListWidget()->addItem(ui_items->selectedListWidget()->takeItem(i--)); } - varItems->setButtonsEnabled(); - QListWidgetItem* selectedItem = varItems->selectedListWidget()->currentItem(); + ui_items->setButtonsEnabled(); + QListWidgetItem* selectedItem = ui_items->selectedListWidget()->currentItem(); if (selectedItem) - varItemCount->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->item(selectedItem->data(Qt::UserRole).toInt())); - for (int i = 0; i < varMoves->availableListWidget()->count(); ++i) + ui_itemCount->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->item(selectedItem->data(Qt::UserRole).toInt())); + for (int i = 0; i < ui_moves->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varMoves->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_moves->availableListWidget()->item(i); if (qobject_cast<MapTrainerTeamMember*>(modified())->move(widgetItem->data(Qt::UserRole).toInt())) - varMoves->selectedListWidget()->addItem(varMoves->availableListWidget()->takeItem(i--)); + ui_moves->selectedListWidget()->addItem(ui_moves->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varMoves->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_moves->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varMoves->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_moves->selectedListWidget()->item(i); if (!qobject_cast<MapTrainerTeamMember*>(modified())->move(widgetItem->data(Qt::UserRole).toInt())) - varMoves->availableListWidget()->addItem(varMoves->selectedListWidget()->takeItem(i--)); + ui_moves->availableListWidget()->addItem(ui_moves->selectedListWidget()->takeItem(i--)); } - varMoves->setButtonsEnabled(); - for (int i = 0; i < varNatures->availableListWidget()->count(); ++i) + ui_moves->setButtonsEnabled(); + for (int i = 0; i < ui_natures->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varNatures->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_natures->availableListWidget()->item(i); if (qobject_cast<MapTrainerTeamMember*>(modified())->nature(widgetItem->data(Qt::UserRole).toInt())) - varNatures->selectedListWidget()->addItem(varNatures->availableListWidget()->takeItem(i--)); + ui_natures->selectedListWidget()->addItem(ui_natures->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varNatures->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_natures->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varNatures->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_natures->selectedListWidget()->item(i); if (!qobject_cast<MapTrainerTeamMember*>(modified())->nature(widgetItem->data(Qt::UserRole).toInt())) - varNatures->availableListWidget()->addItem(varNatures->selectedListWidget()->takeItem(i--)); + ui_natures->availableListWidget()->addItem(ui_natures->selectedListWidget()->takeItem(i--)); } - varNatures->setButtonsEnabled(); + ui_natures->setButtonsEnabled(); } void MapTrainerTeamMemberUI::apply() @@ -184,74 +208,74 @@ void MapTrainerTeamMemberUI::discard() emit(changed(false)); } -void MapTrainerTeamMemberUI::on_varSpecies_activated(const int species) +void MapTrainerTeamMemberUI::speciesChanged(const int species) { - qobject_cast<MapTrainerTeamMember*>(modified())->setSpecies(varSpecies->itemData(species).toInt()); + qobject_cast<MapTrainerTeamMember*>(modified())->setSpecies(game()->species(species)->id()); } -void MapTrainerTeamMemberUI::on_varLevel_valueChanged(const int level) +void MapTrainerTeamMemberUI::levelChanged(const int level) { qobject_cast<MapTrainerTeamMember*>(modified())->setLevel(level); } -void MapTrainerTeamMemberUI::on_varAbilities_added(QListWidgetItem* item) +void MapTrainerTeamMemberUI::abilityAdded(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setAbility(item->data(Qt::UserRole).toInt(), true); setGui(); } -void MapTrainerTeamMemberUI::on_varAbilities_removed(QListWidgetItem* item) +void MapTrainerTeamMemberUI::abilityRemoved(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setAbility(item->data(Qt::UserRole).toInt(), false); setGui(); } -void MapTrainerTeamMemberUI::on_varItems_added(QListWidgetItem* item) +void MapTrainerTeamMemberUI::itemAdded(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setItem(item->data(Qt::UserRole).toInt(), 1); setGui(); } -void MapTrainerTeamMemberUI::on_varItems_removed(QListWidgetItem* item) +void MapTrainerTeamMemberUI::itemRemoved(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setItem(item->data(Qt::UserRole).toInt(), 0); setGui(); } -void MapTrainerTeamMemberUI::selectedItemChanged(QListWidgetItem* item) +void MapTrainerTeamMemberUI::itemChanged(QListWidgetItem* item) { if (item) - varItemCount->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->item(item->data(Qt::UserRole).toInt())); + ui_itemCount->setValue(qobject_cast<MapTrainerTeamMember*>(modified())->item(item->data(Qt::UserRole).toInt())); else - varItemCount->setEnabled(false); + ui_itemCount->setEnabled(false); } -void MapTrainerTeamMemberUI::on_varItemCount_valueChanged(const int itemCount) +void MapTrainerTeamMemberUI::itemCountChanged(const int itemCount) { - QListWidgetItem* item = varItems->selectedListWidget()->currentItem(); + QListWidgetItem* item = ui_items->selectedListWidget()->currentItem(); qobject_cast<MapTrainerTeamMember*>(modified())->setItem(item->data(Qt::UserRole).toInt(), itemCount); setGui(); } -void MapTrainerTeamMemberUI::on_varMoves_added(QListWidgetItem* item) +void MapTrainerTeamMemberUI::moveAdded(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setMove(item->data(Qt::UserRole).toInt(), true); setGui(); } -void MapTrainerTeamMemberUI::on_varMoves_removed(QListWidgetItem* item) +void MapTrainerTeamMemberUI::moveRemoved(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setMove(item->data(Qt::UserRole).toInt(), false); setGui(); } -void MapTrainerTeamMemberUI::on_varNatures_added(QListWidgetItem* item) +void MapTrainerTeamMemberUI::natureAdded(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setNature(item->data(Qt::UserRole).toInt(), true); setGui(); } -void MapTrainerTeamMemberUI::on_varNatures_removed(QListWidgetItem* item) +void MapTrainerTeamMemberUI::natureRemoved(QListWidgetItem* item) { qobject_cast<MapTrainerTeamMember*>(modified())->setNature(item->data(Qt::UserRole).toInt(), false); setGui(); diff --git a/sigmodr/widgets/MapTrainerTeamMemberUI.h b/sigmodr/widgets/MapTrainerTeamMemberUI.h index 36a811fd..86d19e90 100644 --- a/sigmodr/widgets/MapTrainerTeamMemberUI.h +++ b/sigmodr/widgets/MapTrainerTeamMemberUI.h @@ -18,13 +18,15 @@ #ifndef SIGMODRWIDGETS_MAPTRAINERTEAMMEMBERUI #define SIGMODRWIDGETS_MAPTRAINERTEAMMEMBERUI -// Form include -#include "ui_maptrainerteammember.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KActionSelector; +class KComboBox; +class KIntNumInput; +class QGroupBox; +class QListWidgetItem; namespace Sigmod { class MapTrainerTeamMember; @@ -34,29 +36,37 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT MapTrainerTeamMemberUI : public ObjectUI, private Ui::formMapTrainerTeamMember +class SIGMODRWIDGETS_EXPORT MapTrainerTeamMemberUI : public ObjectUI { Q_OBJECT public: MapTrainerTeamMemberUI(Sigmod::MapTrainerTeamMember* teamMember, QWidget* parent); - ~MapTrainerTeamMemberUI(); public slots: void apply(); void discard(); protected slots: - void on_varSpecies_activated(const int species); - void on_varLevel_valueChanged(const int level); - void on_varAbilities_added(QListWidgetItem* item); - void on_varAbilities_removed(QListWidgetItem* item); - void on_varItems_added(QListWidgetItem* item); - void on_varItems_removed(QListWidgetItem* item); - void selectedItemChanged(QListWidgetItem* item); - void on_varItemCount_valueChanged(const int itemCount); - void on_varMoves_added(QListWidgetItem* item); - void on_varMoves_removed(QListWidgetItem* item); - void on_varNatures_added(QListWidgetItem* item); - void on_varNatures_removed(QListWidgetItem* item); + void speciesChanged(const int species); + void levelChanged(const int level); + void abilityAdded(QListWidgetItem* item); + void abilityRemoved(QListWidgetItem* item); + void itemAdded(QListWidgetItem* item); + void itemRemoved(QListWidgetItem* item); + void itemChanged(QListWidgetItem* item); + void itemCountChanged(const int itemCount); + void moveAdded(QListWidgetItem* item); + void moveRemoved(QListWidgetItem* item); + void natureAdded(QListWidgetItem* item); + void natureRemoved(QListWidgetItem* item); + private: + KComboBox* ui_species; + KIntNumInput* ui_level; + KActionSelector* ui_abilities; + QGroupBox* ui_boxItems; + KActionSelector* ui_items; + KIntNumInput* ui_itemCount; + KActionSelector* ui_moves; + KActionSelector* ui_natures; private slots: void initGui(); void refreshGui(); diff --git a/sigmodr/widgets/MapTrainerUI.cpp b/sigmodr/widgets/MapTrainerUI.cpp index 4f3bda2f..58cb7690 100644 --- a/sigmodr/widgets/MapTrainerUI.cpp +++ b/sigmodr/widgets/MapTrainerUI.cpp @@ -18,6 +18,9 @@ // Header include #include "MapTrainerUI.h" +// Sigmodr widget includes +#include "ScriptWidget.h" + // Sigmod includes #include <sigmod/Game.h> #include <sigmod/MapTrainer.h> @@ -26,9 +29,17 @@ #include <sigmod/Species.h> #include <sigmod/Trainer.h> +// KDE includes +#include <KActionSelector> +#include <KComboBox> +#include <KIntNumInput> +#include <KLineEdit> + // Qt includes +#include <QtCore/QFile> #include <QtGui/QListWidget> #include <QtGui/QListWidgetItem> +#include <QtUiTools/QUiLoader> using namespace Sigcore; using namespace Sigmod; @@ -37,60 +48,71 @@ using namespace Sigmodr::Widgets; MapTrainerUI::MapTrainerUI(MapTrainer* trainer, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(trainer, new MapTrainer(*trainer)); } -MapTrainerUI::~MapTrainerUI() +void MapTrainerUI::initGui() { + QFile file(":/gui/maptrainer.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_trainerClass = formWidget->findChild<KComboBox*>("varTrainerClass"); + ui_numberFight = formWidget->findChild<KIntNumInput*>("varNumberFight"); + ui_script = formWidget->findChild<ScriptWidget*>("varScript"); + ui_leadTeamMembers = formWidget->findChild<KActionSelector*>("varLeadTeamMembers"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_trainerClass, SIGNAL(currentIndexChanged(int)), this, SLOT(trainerClassChanged(int))); + connect(ui_numberFight, SIGNAL(valueChanged(int)), this, SLOT(numberFightChanged(int))); + connect(ui_script, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(scriptChanged(Sigcore::Script))); + connect(ui_leadTeamMembers, SIGNAL(added(QListWidgetItem*)), this, SLOT(leadTeamMemberAdded(QListWidgetItem*))); + connect(ui_leadTeamMembers, SIGNAL(removed(QListWidgetItem*)), this, SLOT(leadTeamMemberRemoved(QListWidgetItem*))); } void MapTrainerUI::refreshGui() { - const bool blockedTrainerClass = varTrainerClass->blockSignals(true); - varTrainerClass->clear(); + const bool blockedTrainerClass = ui_trainerClass->blockSignals(true); + ui_trainerClass->clear(); for (int i = 0; i < game()->trainerCount(); ++i) - { - const Trainer* trainer = game()->trainer(i); - varTrainerClass->addItem(trainer->name(), trainer->id()); - } - varTrainerClass->blockSignals(blockedTrainerClass); - varNumberFight->setMaximum(game()->rules()->maxFight()); - const bool blockedLeadTeamMember = varLeadTeamMember->blockSignals(true); - varLeadTeamMember->availableListWidget()->clear(); - varLeadTeamMember->selectedListWidget()->clear(); + ui_trainerClass->addItem(game()->trainer(i)->name()); + ui_trainerClass->blockSignals(blockedTrainerClass); + ui_numberFight->setMaximum(game()->rules()->maxFight()); + const bool blockedLeadTeamMember = ui_leadTeamMembers->blockSignals(true); + ui_leadTeamMembers->availableListWidget()->clear(); + ui_leadTeamMembers->selectedListWidget()->clear(); for (int i = 0; i < qobject_cast<MapTrainer*>(original())->teamMemberCount(); ++i) { QString speciesName; const MapTrainerTeamMember* teamMember = qobject_cast<MapTrainer*>(original())->teamMember(i); const Species* species = game()->species(teamMember->species()); speciesName = species ? species->name() : "(Invalid)"; - QListWidgetItem* widgetItem = new QListWidgetItem(QString("%1 level %2 (%3)").arg(speciesName, teamMember->level(), i), varLeadTeamMember->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(QString("%1 level %2 (%3)").arg(speciesName, teamMember->level(), i), ui_leadTeamMembers->availableListWidget()); widgetItem->setData(Qt::UserRole, teamMember->id()); } - varLeadTeamMember->blockSignals(blockedLeadTeamMember); - varLeadTeamMember->setButtonsEnabled(); + ui_leadTeamMembers->blockSignals(blockedLeadTeamMember); + ui_leadTeamMembers->setButtonsEnabled(); } void MapTrainerUI::setGui() { - varName->setText(qobject_cast<MapTrainer*>(modified())->name()); - varTrainerClass->setCurrentIndex(varTrainerClass->findData(qobject_cast<MapTrainer*>(modified())->trainerClass())); - varNumberFight->setValue(qobject_cast<MapTrainer*>(modified())->numberFight()); - varScript->setValue(qobject_cast<MapTrainer*>(modified())->script()); - for (int i = 0; i < varLeadTeamMember->availableListWidget()->count(); ++i) + ui_name->setText(qobject_cast<MapTrainer*>(modified())->name()); + ui_trainerClass->setCurrentIndex(game()->trainerIndex(qobject_cast<MapTrainer*>(modified())->trainerClass())); + ui_numberFight->setValue(qobject_cast<MapTrainer*>(modified())->numberFight()); + ui_script->setValue(qobject_cast<MapTrainer*>(modified())->script()); + for (int i = 0; i < ui_leadTeamMembers->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varLeadTeamMember->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_leadTeamMembers->availableListWidget()->item(i); if (qobject_cast<MapTrainer*>(modified())->leadTeamMember(widgetItem->data(Qt::UserRole).toInt())) - varLeadTeamMember->selectedListWidget()->addItem(varLeadTeamMember->availableListWidget()->takeItem(i--)); + ui_leadTeamMembers->selectedListWidget()->addItem(ui_leadTeamMembers->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varLeadTeamMember->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_leadTeamMembers->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varLeadTeamMember->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_leadTeamMembers->selectedListWidget()->item(i); if (!qobject_cast<MapTrainer*>(modified())->leadTeamMember(widgetItem->data(Qt::UserRole).toInt())) - varLeadTeamMember->availableListWidget()->addItem(varLeadTeamMember->selectedListWidget()->takeItem(i--)); + ui_leadTeamMembers->availableListWidget()->addItem(ui_leadTeamMembers->selectedListWidget()->takeItem(i--)); } - varLeadTeamMember->setButtonsEnabled(); + ui_leadTeamMembers->setButtonsEnabled(); } void MapTrainerUI::apply() @@ -106,35 +128,35 @@ void MapTrainerUI::discard() emit(changed(false)); } -void MapTrainerUI::on_varName_textChanged(const QString& name) +void MapTrainerUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<MapTrainer*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void MapTrainerUI::on_varTrainerClass_activated(const int trainerClass) +void MapTrainerUI::trainerClassChanged(const int trainerClass) { - qobject_cast<MapTrainer*>(modified())->setTrainerClass(varTrainerClass->itemData(trainerClass).toInt()); + qobject_cast<MapTrainer*>(modified())->setTrainerClass(game()->trainer(trainerClass)->id()); } -void MapTrainerUI::on_varNumberFight_valueChanged(const int numberFight) +void MapTrainerUI::numberFightChanged(const int numberFight) { qobject_cast<MapTrainer*>(modified())->setNumberFight(numberFight); } -void MapTrainerUI::on_varScript_valueChanged(const Script& script) +void MapTrainerUI::scriptChanged(const Script& script) { qobject_cast<MapTrainer*>(modified())->setScript(script); } -void MapTrainerUI::on_varLeadTeamMember_added(QListWidgetItem* item) +void MapTrainerUI::leadTeamMemberAdded(QListWidgetItem* item) { qobject_cast<MapTrainer*>(modified())->setLeadTeamMember(item->data(Qt::UserRole).toInt(), true); setGui(); } -void MapTrainerUI::on_varLeadTeamMember_removed(QListWidgetItem* item) +void MapTrainerUI::leadTeamMemberRemoved(QListWidgetItem* item) { qobject_cast<MapTrainer*>(modified())->setLeadTeamMember(item->data(Qt::UserRole).toInt(), false); setGui(); diff --git a/sigmodr/widgets/MapTrainerUI.h b/sigmodr/widgets/MapTrainerUI.h index 7bab8964..e5e266c3 100644 --- a/sigmodr/widgets/MapTrainerUI.h +++ b/sigmodr/widgets/MapTrainerUI.h @@ -18,13 +18,19 @@ #ifndef SIGMODRWIDGETS_MAPTRAINERUI #define SIGMODRWIDGETS_MAPTRAINERUI -// Form include -#include "ui_maptrainer.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KActionSelector; +class KComboBox; +class KIntNumInput; +class KLineEdit; +class QListWidgetItem; +namespace Sigcore +{ +class Script; +} namespace Sigmod { class MapTrainer; @@ -34,24 +40,32 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT MapTrainerUI : public ObjectUI, private Ui::formMapTrainer +class ScriptWidget; + +class SIGMODRWIDGETS_EXPORT MapTrainerUI : public ObjectUI { Q_OBJECT public: MapTrainerUI(Sigmod::MapTrainer* trainer, QWidget* parent); - ~MapTrainerUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varTrainerClass_activated(const int trainerClass); - void on_varNumberFight_valueChanged(const int numberFight); - void on_varScript_valueChanged(const Sigcore::Script& script); - void on_varLeadTeamMember_added(QListWidgetItem* item); - void on_varLeadTeamMember_removed(QListWidgetItem* item); + void nameChanged(const QString& name); + void trainerClassChanged(const int trainerClass); + void numberFightChanged(const int numberFight); + void scriptChanged(const Sigcore::Script& script); + void leadTeamMemberAdded(QListWidgetItem* item); + void leadTeamMemberRemoved(QListWidgetItem* item); + private: + KLineEdit* ui_name; + KComboBox* ui_trainerClass; + KIntNumInput* ui_numberFight; + ScriptWidget* ui_script; + KActionSelector* ui_leadTeamMembers; private slots: + void initGui(); void refreshGui(); void setGui(); }; diff --git a/sigmodr/widgets/MapUI.cpp b/sigmodr/widgets/MapUI.cpp index 799c4da8..d78bce10 100644 --- a/sigmodr/widgets/MapUI.cpp +++ b/sigmodr/widgets/MapUI.cpp @@ -25,6 +25,14 @@ #include <sigmod/Sprite.h> #include <sigmod/Tile.h> +// KDE includes +#include <KComboBox> +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + // FIXME: Update map editing to new collage map using namespace Sigmod; @@ -33,28 +41,29 @@ using namespace Sigmodr::Widgets; MapUI::MapUI(Map* map, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(map, new Map(*map)); - varMap->setMap(map); - connect(varMap, SIGNAL(changed()), this, SIGNAL(changed())); -} - -MapUI::~MapUI() -{ +// varMap->setMap(map); +// connect(varMap, SIGNAL(changed()), this, SIGNAL(changed())); } void MapUI::initGui() { - varType->addItem(Map::TypeStr[Map::Outdoor], QVariant::fromValue(Map::Outdoor)); - varType->addItem(Map::TypeStr[Map::Dungeon], QVariant::fromValue(Map::Dungeon)); - varType->addItem(Map::TypeStr[Map::Building], QVariant::fromValue(Map::Building)); + QFile file(":/gui/map.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_type = formWidget->findChild<KComboBox*>("varType"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_type, SIGNAL(currentIndexChanged(int)), this, SLOT(typeChanged(int))); + ui_type->addItems(Map::TypeStr); } void MapUI::setGui() { - varName->setText(qobject_cast<Map*>(modified())->name()); - varType->setCurrentIndex(qobject_cast<Map*>(modified())->type()); - varMap->reset(); + ui_name->setText(qobject_cast<Map*>(modified())->name()); + ui_type->setCurrentIndex(qobject_cast<Map*>(modified())->type()); +// varMap->reset(); } void MapUI::apply() @@ -70,14 +79,14 @@ void MapUI::discard() emit(changed(false)); } -void MapUI::on_varName_textChanged(const QString& name) +void MapUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Map*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void MapUI::on_varType_activated(const int type) +void MapUI::typeChanged(const int type) { - qobject_cast<Map*>(modified())->setType(varType->itemData(type).value<Map::Type>()); + qobject_cast<Map*>(modified())->setType(static_cast<Map::Type>(type)); } diff --git a/sigmodr/widgets/MapUI.h b/sigmodr/widgets/MapUI.h index 5d86eb36..868b8bf3 100644 --- a/sigmodr/widgets/MapUI.h +++ b/sigmodr/widgets/MapUI.h @@ -18,13 +18,12 @@ #ifndef SIGMODRWIDGETS_MAPUI #define SIGMODRWIDGETS_MAPUI -// Form include -#include "ui_map.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KComboBox; +class KLineEdit; namespace Sigmod { class Map; @@ -37,19 +36,21 @@ namespace Widgets class TileDelegate; class TilemapModel; -class SIGMODRWIDGETS_EXPORT MapUI : public ObjectUI, private Ui::formMap +class SIGMODRWIDGETS_EXPORT MapUI : public ObjectUI { Q_OBJECT public: MapUI(Sigmod::Map* map, QWidget* parent); - ~MapUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varType_activated(const int type); + void nameChanged(const QString& name); + void typeChanged(const int type); + private: + KLineEdit* ui_name; + KComboBox* ui_type; private slots: void initGui(); void setGui(); diff --git a/sigmodr/widgets/MapWarpUI.cpp b/sigmodr/widgets/MapWarpUI.cpp index 008484af..c354b85e 100644 --- a/sigmodr/widgets/MapWarpUI.cpp +++ b/sigmodr/widgets/MapWarpUI.cpp @@ -18,11 +18,22 @@ // Header include #include "MapWarpUI.h" +// Sigmodr widget includes +#include "ScriptWidget.h" + // Sigmod includes #include <sigmod/Game.h> #include <sigmod/Map.h> #include <sigmod/MapWarp.h> +// KDE includes +#include <KComboBox> +#include <KLineEdit> + +// Qt includes +#include <QtCore/QFile> +#include <QtUiTools/QUiLoader> + using namespace Sigcore; using namespace Sigmod; using namespace Sigmodr::Widgets; @@ -31,58 +42,61 @@ MapWarpUI::MapWarpUI(MapWarp* warp, QWidget* parent) : ObjectUI(parent), m_lastMap(-1) { - setupUi(this); setObjects(warp, new MapWarp(*warp)); } -MapWarpUI::~MapWarpUI() -{ -} - void MapWarpUI::initGui() { - varType->addItem(MapWarp::TypeStr[MapWarp::Door], QVariant::fromValue(MapWarp::Door)); - varType->addItem(MapWarp::TypeStr[MapWarp::Warp], QVariant::fromValue(MapWarp::Warp)); - varType->addItem(MapWarp::TypeStr[MapWarp::Hole], QVariant::fromValue(MapWarp::Hole)); - varType->addItem(MapWarp::TypeStr[MapWarp::Boundary], QVariant::fromValue(MapWarp::Boundary)); + QFile file(":/gui/mapwarp.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_type = formWidget->findChild<KComboBox*>("varType"); + ui_toMap = formWidget->findChild<KComboBox*>("varToMap"); + ui_toWarp = formWidget->findChild<KComboBox*>("varToWarp"); + ui_script = formWidget->findChild<ScriptWidget*>("varScript"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_type, SIGNAL(currentIndexChanged(int)), this, SLOT(typeChanged(int))); + connect(ui_toMap, SIGNAL(currentIndexChanged(int)), this, SLOT(toMapChanged(int))); + connect(ui_toWarp, SIGNAL(currentIndexChanged(int)), this, SLOT(toWarpChanged(int))); + connect(ui_script, SIGNAL(valueChanged(Sigcore::Script)), this, SLOT(scriptChanged(Sigcore::Script))); + ui_type->addItems(MapWarp::TypeStr); } void MapWarpUI::refreshGui() { - const bool blocked = varToMap->blockSignals(true); - varToMap->clear(); + const bool blocked = ui_toMap->blockSignals(true); + ui_toMap->clear(); for (int i = 0; i < game()->mapCount(); ++i) - { - const Map* map = game()->map(i); - varToMap->addItem(map->name(), map->id()); - } - varToMap->blockSignals(blocked); + ui_toMap->addItem(game()->map(i)->name()); + ui_toMap->blockSignals(blocked); } void MapWarpUI::setGui() { const bool resetWarps = (qobject_cast<MapWarp*>(modified())->toMap() != m_lastMap); - varName->setText(qobject_cast<MapWarp*>(modified())->name()); - varType->setCurrentIndex(qobject_cast<MapWarp*>(modified())->type()); - varToMap->setCurrentIndex(varToMap->findData(qobject_cast<MapWarp*>(modified())->toMap())); + ui_name->setText(qobject_cast<MapWarp*>(modified())->name()); + ui_type->setCurrentIndex(qobject_cast<MapWarp*>(modified())->type()); + ui_toMap->setCurrentIndex(game()->mapIndex(qobject_cast<MapWarp*>(modified())->toMap())); m_lastMap = qobject_cast<MapWarp*>(modified())->toMap(); + const Map* map = game()->mapById(qobject_cast<MapWarp*>(modified())->toMap()); if (resetWarps) { - const bool blocked = varToWarp->blockSignals(true); - varToWarp->clear(); - const Map* map = game()->mapById(qobject_cast<MapWarp*>(modified())->toMap()); + const bool blocked = ui_toWarp->blockSignals(true); + ui_toWarp->clear(); if (map) { for (int i = 0; i < map->warpCount(); ++i) - { - const MapWarp* warp = map->warp(i); - varToWarp->addItem(warp->name(), warp->id()); - } + ui_toWarp->addItem(map->warp(i)->name()); } - varToWarp->blockSignals(blocked); + ui_toWarp->blockSignals(blocked); } - varToWarp->setCurrentIndex(varToMap->findData(qobject_cast<MapWarp*>(modified())->toWarp())); - varScript->setValue(qobject_cast<MapWarp*>(modified())->script()); + if (map) + ui_toWarp->setCurrentIndex(map->warpIndex(qobject_cast<MapWarp*>(modified())->toWarp())); + else + ui_toWarp->setCurrentIndex(-1); + ui_script->setValue(qobject_cast<MapWarp*>(modified())->script()); } void MapWarpUI::apply() @@ -98,29 +112,31 @@ void MapWarpUI::discard() emit(changed(false)); } -void MapWarpUI::on_varName_textChanged(const QString& name) +void MapWarpUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<MapWarp*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void MapWarpUI::on_varType_activated(const int type) +void MapWarpUI::typeChanged(const int type) { - qobject_cast<MapWarp*>(modified())->setType(varType->itemData(type).value<MapWarp::Type>()); + qobject_cast<MapWarp*>(modified())->setType(static_cast<MapWarp::Type>(type)); } -void MapWarpUI::on_varToMap_activated(const int toMap) +void MapWarpUI::toMapChanged(const int toMap) { - qobject_cast<MapWarp*>(modified())->setToMap(toMap); + qobject_cast<MapWarp*>(modified())->setToMap(game()->map(toMap)->id()); } -void MapWarpUI::on_varToWarp_activated(const int toWarp) +void MapWarpUI::toWarpChanged(const int toWarp) { - qobject_cast<MapWarp*>(modified())->setToWarp(toWarp); + const Map* map = game()->map(qobject_cast<MapWarp*>(modified())->toMap()); + if (map) + qobject_cast<MapWarp*>(modified())->setToWarp(map->warp(toWarp)->id()); } -void MapWarpUI::on_varScript_valueChanged(const Script& script) +void MapWarpUI::scriptChanged(const Script& script) { qobject_cast<MapWarp*>(modified())->setScript(script); } diff --git a/sigmodr/widgets/MapWarpUI.h b/sigmodr/widgets/MapWarpUI.h index 8f5812b8..db9b1ae7 100644 --- a/sigmodr/widgets/MapWarpUI.h +++ b/sigmodr/widgets/MapWarpUI.h @@ -18,13 +18,16 @@ #ifndef SIGMODRWIDGETS_MAPWARPUI #define SIGMODRWIDGETS_MAPWARPUI -// Form include -#include "ui_mapwarp.h" - // Sigmodr widget includes #include "ObjectUI.h" // Forward declarations +class KComboBox; +class KLineEdit; +namespace Sigcore +{ +class Script; +} namespace Sigmod { class MapWarp; @@ -34,23 +37,30 @@ namespace Sigmodr { namespace Widgets { -class SIGMODRWIDGETS_EXPORT MapWarpUI : public ObjectUI, private Ui::formMapWarp +class ScriptWidget; + +class SIGMODRWIDGETS_EXPORT MapWarpUI : public ObjectUI { Q_OBJECT public: MapWarpUI(Sigmod::MapWarp* warp, QWidget* parent); - ~MapWarpUI(); public slots: void apply(); void discard(); protected slots: - void on_varName_textChanged(const QString& name); - void on_varType_activated(const int type); - void on_varToMap_activated(const int toMap); - void on_varToWarp_activated(const int toWarp); - void on_varScript_valueChanged(const Sigcore::Script& script); + void nameChanged(const QString& name); + void typeChanged(const int type); + void toMapChanged(const int toMap); + void toWarpChanged(const int toWarp); + void scriptChanged(const Sigcore::Script& script); private: + KLineEdit* ui_name; + KComboBox* ui_type; + KComboBox* ui_toMap; + KComboBox* ui_toWarp; + ScriptWidget* ui_script; + int m_lastMap; private slots: void initGui(); diff --git a/sigmodr/widgets/gui/map.ui b/sigmodr/widgets/gui/map.ui index 149ca799..95d8f387 100644 --- a/sigmodr/widgets/gui/map.ui +++ b/sigmodr/widgets/gui/map.ui @@ -64,7 +64,7 @@ </property> <layout class="QGridLayout" > <item row="0" column="0" > - <widget class="Sigmodr::Widgets::MapEditor" name="varMap" /> + <widget class="QWidget" name="varMap" /> </item> </layout> </widget> diff --git a/sigmodr/widgets/gui/maptrainer.ui b/sigmodr/widgets/gui/maptrainer.ui index e128c577..8ae027d8 100644 --- a/sigmodr/widgets/gui/maptrainer.ui +++ b/sigmodr/widgets/gui/maptrainer.ui @@ -93,7 +93,7 @@ </property> <layout class="QGridLayout" > <item row="0" column="0" > - <widget class="KActionSelector" name="varLeadTeamMember" > + <widget class="KActionSelector" name="varLeadTeamMembers" > <property name="toolTip" > <string>The lead team member</string> </property> |
