summaryrefslogtreecommitdiffstats
path: root/pokemodr/TilemapModel.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-02-07 15:33:44 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-02-07 15:33:44 +0000
commit3c03cc795ce5620eb88e04bef70acc162ba2f339 (patch)
treeec99b36244e6c2a14a74554dd9d6f822b20b1dfd /pokemodr/TilemapModel.cpp
parentb191a68ca2b1ec370fc1faafb078e4e201b2b459 (diff)
downloadsigen-3c03cc795ce5620eb88e04bef70acc162ba2f339.tar.gz
sigen-3c03cc795ce5620eb88e04bef70acc162ba2f339.tar.xz
sigen-3c03cc795ce5620eb88e04bef70acc162ba2f339.zip
[FIX] Tile UI form fixes
[FIX] BadgeUI logic cleaned up [FIX] Tilemap editing Model and Delegate fleshed out [ADD] TileUI.{h, cpp} and TypeUI.{h, cpp} [FIX] Default path for Pokemod added [FIX] Tile HM and Force setting git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@58 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/TilemapModel.cpp')
-rw-r--r--pokemodr/TilemapModel.cpp43
1 files changed, 24 insertions, 19 deletions
diff --git a/pokemodr/TilemapModel.cpp b/pokemodr/TilemapModel.cpp
index 6618f7d8..9d0c6a81 100644
--- a/pokemodr/TilemapModel.cpp
+++ b/pokemodr/TilemapModel.cpp
@@ -32,10 +32,10 @@ TilemapModel::TilemapModel(QObject* parent, Matrix<int>& tilemap, const Pokemod&
map(tilemap),
pokemod(mod)
{
- updateData();
+ setGui();
}
-void TilemapModel::updateData()
+void TilemapModel::setGui()
{
}
@@ -51,26 +51,22 @@ int TilemapModel::columnCount(const QModelIndex&) const
QVariant TilemapModel::data(const QModelIndex& index, int role) const
{
- QVariant ret;
- switch (role)
- {
- case Qt::DisplayRole:
- ret = QVariant(ImageCache::open(pokemod.getTileByID(map.at(index.row(), index.column())).getPic()));
- break;
- case Qt::EditRole:
- ret = QVariant(map.at(index.row(), index.column()));
- break;
- case Qt::ToolTipRole:
- ret = QVariant(pokemod.getTileByID(map.at(index.row(), index.column())).getName());
- break;
- default:
- break;
- }
- return ret;
+ if (!index.isValid())
+ return QVariant();
+ if (role == Qt::DisplayRole)
+ return ImageCache::open(pokemod.getTileByID(map.at(index.row(), index.column())).getPic());
+ if (role == Qt::EditRole)
+ map.at(index.row(), index.column());
+ if (role == Qt::ToolTipRole)
+ return pokemod.getTileByID(map.at(index.row(), index.column())).getName();
+ return QVariant();
}
-QVariant TilemapModel::headerData(int section, Qt::Orientation orientation, int role) const
+QVariant TilemapModel::headerData(int section, Qt::Orientation, int role) const
{
+ if (role != Qt::DisplayRole)
+ return QVariant();
+ return QString::number(section);
}
bool TilemapModel::setData(const QModelIndex& index, const QVariant& value, int role)
@@ -78,6 +74,7 @@ bool TilemapModel::setData(const QModelIndex& index, const QVariant& value, int
if (role != Qt::EditRole)
return false;
map.set(index.row(), index.column(), pokemod.getTile(value.toInt()).getId());
+ emit(dataChanged(index, index));
return true;
}
@@ -88,28 +85,36 @@ Qt::ItemFlags TilemapModel::flags(const QModelIndex&) const
bool TilemapModel::insertRows(int row, int count, const QModelIndex&)
{
+ emit(beginInsertRows(QModelIndex(), row, row + count - 1));
for (int i = 0; i < count; ++i)
map.insertRow(row);
+ emit(endInsertRows());
return true;
}
bool TilemapModel::insertColumns(int column, int count, const QModelIndex&)
{
+ emit(beginInsertColumns(QModelIndex(), column, column + count - 1));
for (int i = 0; i < count; ++i)
map.insertCol(column);
+ emit(endInsertColumns());
return true;
}
bool TilemapModel::removeRows(int row, int count, const QModelIndex&)
{
+ emit(beginRemoveRows(QModelIndex(), row, row + count - 1));
for (int i = 0; i < count; ++i)
map.deleteRow(row);
+ emit(endRemoveRows());
return true;
}
bool TilemapModel::removeColumns(int column, int count, const QModelIndex&)
{
+ emit(beginRemoveColumns(QModelIndex(), column, column + count - 1));
for (int i = 0; i < count; ++i)
map.deleteCol(column);
+ emit(endRemoveColumns());
return true;
}