diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-02-07 15:33:44 +0000 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-02-07 15:33:44 +0000 |
commit | 3c03cc795ce5620eb88e04bef70acc162ba2f339 (patch) | |
tree | ec99b36244e6c2a14a74554dd9d6f822b20b1dfd /pokemodr/TilemapModel.cpp | |
parent | b191a68ca2b1ec370fc1faafb078e4e201b2b459 (diff) | |
download | sigen-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.cpp | 43 |
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; } |