summaryrefslogtreecommitdiffstats
path: root/pokemodr/MapUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/MapUI.cpp')
-rw-r--r--pokemodr/MapUI.cpp46
1 files changed, 28 insertions, 18 deletions
diff --git a/pokemodr/MapUI.cpp b/pokemodr/MapUI.cpp
index 36a2cc3e..fd23d637 100644
--- a/pokemodr/MapUI.cpp
+++ b/pokemodr/MapUI.cpp
@@ -18,32 +18,42 @@
// Header include
#include "MapUI.h"
+// PokeModr includes
+#include "TileDelegate.h"
+#include "TilemapModel.h"
+
// Pokemod includes
+#include "../pokemod/Map.h"
#include "../pokemod/MapWarp.h"
#include "../pokemod/Pokemod.h"
// General includes
#include "../general/BugCatcher.h"
-#include "../general/Exception.h"
// Qt includes
#include <QHeaderView>
-#include <QIcon>
+
+// KDE includes
+#include <kicon.h>
MapUI::MapUI(Map* map, QWidget* parent) :
ObjectUI(parent),
- m_map(map),
- m_map_mod(new Map(*map)),
- m_model(new TilemapModel(this, m_map_mod->map(), static_cast<const Pokemod*>(m_map->pokemod()))),
m_delegate(new TileDelegate(this))
{
setupUi(this);
QMetaObject::connectSlotsByName(this);
- setObjects(m_map, m_map_mod);
+ setObjects(map, new Map(*map));
+ m_model = new TilemapModel(this, static_cast<Map*>(modified())->map(), static_cast<const Pokemod*>(static_cast<Map*>(original())->pokemod()));
connect(this, SIGNAL(changed(bool)), boxButtons, SLOT(setEnabled(bool)));
init();
}
+MapUI::~MapUI()
+{
+ delete m_model;
+ delete m_delegate;
+}
+
void MapUI::initGui()
{
varType->addItems(Map::TypeStr);
@@ -58,9 +68,9 @@ void MapUI::initGui()
void MapUI::refreshGui()
{
varFlyWarp->clear();
- for (int i = 0; i < m_map->warpCount(); ++i)
+ for (int i = 0; i < static_cast<Map*>(original())->warpCount(); ++i)
{
- const MapWarp* warp = m_map->warp(i);
+ const MapWarp* warp = static_cast<Map*>(original())->warp(i);
varFlyWarp->addItem(warp->name());
varFlyWarp->setItemData(i, warp->id());
}
@@ -68,36 +78,36 @@ void MapUI::refreshGui()
void MapUI::setGui()
{
- varName->setText(m_map_mod->name());
- boxFlyWarp->setChecked((m_map_mod->flyWarp() == INT_MAX) ? Qt::Unchecked : Qt::Checked);
- varFlyWarp->setCurrentIndex(varFlyWarp->findData(m_map_mod->flyWarp()));
- varType->setCurrentIndex(m_map_mod->type());
+ varName->setText(static_cast<Map*>(modified())->name());
+ boxFlyWarp->setChecked((static_cast<Map*>(modified())->flyWarp() == INT_MAX) ? Qt::Unchecked : Qt::Checked);
+ varFlyWarp->setCurrentIndex(varFlyWarp->findData(static_cast<Map*>(modified())->flyWarp()));
+ varType->setCurrentIndex(static_cast<Map*>(modified())->type());
buttonDeleteColumn->setEnabled(0 < m_model->columnCount());
buttonDeleteRow->setEnabled(0 < m_model->rowCount());
}
void MapUI::on_buttonApply_clicked()
{
- *m_map = *m_map_mod;
+ *static_cast<Map*>(original()) = *static_cast<Map*>(modified());
emit(changed(false));
}
void MapUI::on_buttonDiscard_clicked()
{
- *m_map_mod = *m_map;
+ *static_cast<Map*>(modified()) = *static_cast<Map*>(original());
setGui();
emit(changed(false));
}
void MapUI::on_varName_textChanged(const QString& name)
{
- m_map_mod->setName(name);
+ static_cast<Map*>(modified())->setName(name);
emit(changed(true));
}
void MapUI::on_boxFlyWarp_toggled()
{
- m_map_mod->setFlyWarp(-1);
+ static_cast<Map*>(modified())->setFlyWarp(-1);
emit(changed(true));
}
@@ -105,7 +115,7 @@ void MapUI::on_varFlyWarp_currentIndexChanged(const int flyWarp)
{
try
{
- m_map_mod->setFlyWarp(varFlyWarp->itemData(flyWarp).toInt());
+ static_cast<Map*>(modified())->setFlyWarp(varFlyWarp->itemData(flyWarp).toInt());
emit(changed(true));
}
catch (BoundsException& exception)
@@ -119,7 +129,7 @@ void MapUI::on_varType_currentIndexChanged(const int type)
{
try
{
- m_map_mod->setType(type);
+ static_cast<Map*>(modified())->setType(type);
emit(changed(true));
}
catch (BoundsException& exception)