diff options
Diffstat (limited to 'pokemodr/MapUI.cpp')
| -rw-r--r-- | pokemodr/MapUI.cpp | 46 |
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) |
