diff options
Diffstat (limited to 'pokemodr/TilemapModel.cpp')
| -rw-r--r-- | pokemodr/TilemapModel.cpp | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/pokemodr/TilemapModel.cpp b/pokemodr/TilemapModel.cpp deleted file mode 100644 index cddaa035..00000000 --- a/pokemodr/TilemapModel.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright 2008 Ben Boeckel <MathStuf@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -// Header include -#include "TilemapModel.h" - -// PokeModr includes -#include "ObjectUI.h" -#include "MapUI.h" - -// Pokemod includes -#include "../pokemod/Tile.h" - -// KDE includes -#include <KComboBox> - -TilemapModel::TilemapModel(QObject* parent, Matrix<int>* map, const Pokemod* pokemod) : - QAbstractTableModel(parent), - m_map(map), - m_pokemod(pokemod) -{ -} - -int TilemapModel::rowCount(const QModelIndex&) const -{ - return m_map->height(); -} - -int TilemapModel::columnCount(const QModelIndex&) const -{ - return m_map->width(); -} - -QVariant TilemapModel::data(const QModelIndex& index, int role) const -{ - if (!index.isValid()) - return QVariant(); - if (role == Qt::DisplayRole) - { - int idx = m_pokemod->tileIndex(m_map->at(index.row(), index.column())); - if (idx != INT_MAX) - return m_pokemod->tile(idx)->sprite(); - } - if (role == Qt::EditRole) - return m_map->at(index.row(), index.column()); - if (role == Qt::ToolTipRole) - { - int idx = m_pokemod->tileIndex(m_map->at(index.row(), index.column())); - if (idx != INT_MAX) - return m_pokemod->tile(idx)->name(); - } - return QVariant(); -} - -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) -{ - if (role != Qt::EditRole) - return false; -// emit(setDataChanged(index, index)); - m_map->set(index.row(), index.column(), m_pokemod->tile(value.toInt())->id()); - emit(dataChanged(index, index)); - return true; -} - -Qt::ItemFlags TilemapModel::flags(const QModelIndex&) const -{ - return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable; -} - -bool TilemapModel::addRow() -{ - return insertRows(m_map->height(), 1); -} - -bool TilemapModel::addColumn() -{ - return insertColumns(m_map->width(), 1); -} - -bool TilemapModel::insertRows(int row, int count, const QModelIndex&) -{ - emit(beginInsertRows(QModelIndex(), row, row + count)); - if (m_map->width()) - { - for (int i = 0; i < count; ++i) - m_map->insertRow(row); - } - else - { - m_map->addColumn(); - insertColumns(0, 0); - } - emit(endInsertRows()); - return true; -} - -bool TilemapModel::insertColumns(int column, int count, const QModelIndex&) -{ - emit(beginInsertColumns(QModelIndex(), column, column + count)); - if (m_map->height()) - { - for (int i = 0; i < count; ++i) - m_map->insertColumn(column); - } - else - { - m_map->addRow(); - insertRows(0, 0); - } - emit(endInsertColumns()); - return true; -} - -bool TilemapModel::removeRows(int row, int count, const QModelIndex&) -{ - if (m_map->height() == 1) - removeColumns(0, m_map->width()); - emit(beginRemoveRows(QModelIndex(), row, row + count - 1)); - for (int i = 0; i < count; ++i) - m_map->deleteRow(row); - emit(endRemoveRows()); - return true; -} - -bool TilemapModel::removeColumns(int column, int count, const QModelIndex&) -{ - if (m_map->width() == 1) - removeRows(0, m_map->height()); - emit(beginRemoveColumns(QModelIndex(), column, column + count - 1)); - for (int i = 0; i < count; ++i) - m_map->deleteColumn(column); - emit(endRemoveColumns()); - return true; -} |
