summaryrefslogtreecommitdiffstats
path: root/pokemodr/MapUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/MapUI.cpp')
-rw-r--r--pokemodr/MapUI.cpp54
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);
}