diff options
Diffstat (limited to 'pokemodr/MapUI.cpp')
-rw-r--r-- | pokemodr/MapUI.cpp | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/pokemodr/MapUI.cpp b/pokemodr/MapUI.cpp index de9d87f3..df05db97 100644 --- a/pokemodr/MapUI.cpp +++ b/pokemodr/MapUI.cpp @@ -19,45 +19,36 @@ #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" +#include "../pokemod/Tile.h" // Qt includes #include <QHeaderView> -// KDE includes -#include <KIcon> - MapUI::MapUI(Map* map, QWidget* parent) : - ObjectUI(parent), - m_delegate(new TileDelegate(this)) + ObjectUI(parent) { setupUi(this); setObjects(map, new Map(*map)); - m_model = new TilemapModel(this, static_cast<Map*>(modified())->map(), pokemod()); } MapUI::~MapUI() { - delete m_model; - delete m_delegate; } void MapUI::initGui() { varType->addItems(Map::TypeStr); - // TODO: Map stuff -// varTilemap->horizontalHeader()->setResizeMode(QHeaderView::Fixed); -// varTilemap->verticalHeader()->setResizeMode(QHeaderView::Fixed); -// varTilemap->horizontalHeader()->setDefaultSectionSize(64); -// varTilemap->verticalHeader()->setDefaultSectionSize(64); -// varTilemap->setModel(m_model); -// varTilemap->setItemDelegate(m_delegate); + varTilemap->horizontalHeader()->setResizeMode(QHeaderView::Fixed); + varTilemap->verticalHeader()->setResizeMode(QHeaderView::Fixed); + varTilemap->horizontalHeader()->setDefaultSectionSize(64); + varTilemap->verticalHeader()->setDefaultSectionSize(64); + varTilemap->setModel(new TilemapModel(static_cast<Map*>(modified())->map(), pokemod())); } void MapUI::refreshGui() @@ -68,6 +59,13 @@ void MapUI::refreshGui() const MapWarp* warp = static_cast<Map*>(original())->warp(i); varFlyWarp->addItem(warp->name(), warp->id()); } + varTile->clear(); + for (int i = 0; i < pokemod()->tileCount(); ++i) + { + const Tile* tile = pokemod()->tile(i); + varTile->addItem(tile->sprite(), tile->name(), tile->id()); + } + varTile->setEnabled(false); } void MapUI::setGui() @@ -115,38 +113,52 @@ void MapUI::on_varType_activated(const int type) static_cast<Map*>(modified())->setType(type); } +void MapUI::on_varTilemap_clicked(const QModelIndex& index) +{ + m_index = index; + varTile->setEnabled(true); + varTile->setCurrentIndex(varTile->findData(varTilemap->model()->data(m_index, Qt::EditRole))); +} + void MapUI::on_buttonAddColumn_pressed() { - m_model->addColumn(); + varTilemap->model()->insertColumns(varTilemap->model()->columnCount(), 1); emit(changed(true)); } void MapUI::on_buttonAddRow_pressed() { - m_model->addRow(); + varTilemap->model()->insertRows(varTilemap->model()->rowCount(), 1); emit(changed(true)); } void MapUI::on_buttonDeleteColumn_pressed() { - m_model->removeColumns(varTilemap->currentIndex().column(), 1); + varTilemap->model()->removeColumns(m_index.column(), 1); emit(changed(true)); } void MapUI::on_buttonDeleteRow_pressed() { - m_model->removeRows(varTilemap->currentIndex().row(), 1); + varTilemap->model()->removeRows(m_index.row(), 1); emit(changed(true)); } void MapUI::on_buttonInsertColumn_pressed() { - m_model->insertColumns(varTilemap->currentIndex().column(), 1); + varTilemap->model()->insertColumns(m_index.column(), 1); emit(changed(true)); } void MapUI::on_buttonInsertRow_pressed() { - m_model->insertRows(varTilemap->currentIndex().row(), 1); + varTilemap->model()->insertRows(m_index.row(), 1); emit(changed(true)); } + +void MapUI::on_varTile_activated(const int tile) +{ + varTilemap->model()->setData(m_index, varTile->itemData(tile), Qt::EditRole); + emit(changed(true)); + setGui(); +} |