From f3e081acd87439efadd5ff4181916e06cc07f051 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 1 Jun 2008 16:08:13 +0000 Subject: [FIX] Tilemap model now works git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@187 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemodr/MapUI.cpp | 56 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'pokemodr/MapUI.cpp') 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 -// KDE includes -#include - 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(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(modified())->map(), pokemod())); } void MapUI::refreshGui() @@ -68,6 +59,13 @@ void MapUI::refreshGui() const MapWarp* warp = static_cast(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(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(); +} -- cgit