diff options
Diffstat (limited to 'pokemodr/MapUI.cpp')
-rw-r--r-- | pokemodr/MapUI.cpp | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/pokemodr/MapUI.cpp b/pokemodr/MapUI.cpp index e1c50556..db8ec4d3 100644 --- a/pokemodr/MapUI.cpp +++ b/pokemodr/MapUI.cpp @@ -26,10 +26,9 @@ #include <BugCatcher.h> #include <Exception.h> +#include <MapWarp.h> #include <Pokemod.h> -#include "TileDelegate.h" -#include "TilemapModel.h" #include "MapUI.h" MapUI::MapUI(Map* m, QWidget* parent) : @@ -42,9 +41,13 @@ MapUI::MapUI(Map* m, QWidget* parent) : setupUi(this); QMetaObject::connectSlotsByName(this); setObjects(map, map_mod); - connect(this, SIGNAL(setChanged(bool)), boxButtons, SLOT(setDisabled(bool))); + connect(this, SIGNAL(changed(bool)), boxButtons, SLOT(setDisabled(bool))); for (int i = 0; i < map->getWarpCount(); ++i) - varFlyWarp->addItem(map->getWarp(i)->getName()); + { + const MapWarp* w = map->getWarp(i); + varFlyWarp->addItem(w->getName()); + varFlyWarp->setItemData(i, w->getId()); + } varType->addItems(Map::TypeStr); varTilemap->setModel(model); varTilemap->setItemDelegate(delegate); @@ -60,60 +63,79 @@ void MapUI::setGui() { varName->setText(map_mod->getName()); boxFlyWarp->setChecked((map_mod->getFlyWarp() == -1) ? Qt::Unchecked : Qt::Checked); - varFlyWarp->setCurrentIndex(map_mod->getFlyWarp()); + varFlyWarp->setCurrentIndex(varFlyWarp->findData(map_mod->getFlyWarp())); varType->setCurrentIndex(map_mod->getType()); } void MapUI::on_buttonApply_clicked() { *map = *map_mod; - emit(setChanged(false)); + emit(changed(false)); } void MapUI::on_buttonDiscard_clicked() { *map_mod = *map; - emit(setChanged(false)); + emit(changed(false)); setGui(); } void MapUI::on_varName_textChanged(const QString& n) { map_mod->setName(n); - emit(setChanged(true)); + emit(changed(true)); } -void MapUI::on_boxFlyWarp_toggled(const bool f) +void MapUI::on_boxFlyWarp_toggled() { - + map_mod->setFlyWarp(-1); + emit(changed(true)); } void MapUI::on_varFlyWarp_currentIndexChanged(const int f) { - + try + { + map_mod->setFlyWarp(varFlyWarp->itemData(f).toInt()); + emit(changed(true)); + } + catch (BoundsException& e) + { + BugCatcher::report(e); + setGui(); + } } void MapUI::on_varType_currentIndexChanged(const int t) { - + try + { + map_mod->setType(t); + emit(changed(true)); + } + catch (BoundsException& e) + { + BugCatcher::report(e); + setGui(); + } } void MapUI::on_buttonAddColumn_pressed() { - + model->insertColumns(varTilemap->currentIndex().column(), 1); } void MapUI::on_buttonAddRow_pressed() { - + model->insertRows(varTilemap->currentIndex().row(), 1); } void MapUI::on_buttonDeleteColumn_pressed() { - + model->removeColumns(varTilemap->currentIndex().column(), 1); } void MapUI::on_buttonDeleteRow_pressed() { - + model->removeRows(varTilemap->currentIndex().row(), 1); } |