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