From d2c79d37ce4c23f86b6bef82ea794e4e4b606c55 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Wed, 12 Feb 2025 01:42:28 +0100 Subject: [PATCH] Cleanup Signed-off-by: Tomas Slusny --- src/tiled/tilesetmodel.cpp | 30 ++++++++++++------------------ src/tiled/tilesetmodel.h | 2 +- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/tiled/tilesetmodel.cpp b/src/tiled/tilesetmodel.cpp index 9ba47bf676..0beb05e2d0 100644 --- a/src/tiled/tilesetmodel.cpp +++ b/src/tiled/tilesetmodel.cpp @@ -83,7 +83,6 @@ int TilesetModel::columnCount(const QModelIndex &parent) const QModelIndex TilesetModel::index(int row, int column, const QModelIndex &parent) const { if (tileset()->isAtlas()) - // Atlas mode: allow any index return createIndex(row, column); return QAbstractListModel::index(row, column, parent); @@ -205,14 +204,13 @@ bool TilesetModel::dropMimeData(const QMimeData *data, Qt::DropAction action, Tile *TilesetModel::tileAt(const QModelIndex &index) const { - if (tileset()->isAtlas()) { - if (!index.isValid()) - return nullptr; + if (!index.isValid()) + return nullptr; - const int gridSize = tileset()->tileWidth(); - const QPoint gridPos((index.column() - 1) * gridSize, index.row() * gridSize); + if (tileset()->isAtlas()) { + const QPoint gridPos(index.column() - 1, index.row()); for (Tile *tile : tileset()->tiles()) { - const QPoint snappedPos = snapToGrid(tile->imageRect().bottomLeft(), gridSize); + const QPoint snappedPos = snapToGrid(tile->imageRect().bottomLeft()); if (snappedPos == gridPos) return tile; } @@ -220,9 +218,6 @@ Tile *TilesetModel::tileAt(const QModelIndex &index) const return nullptr; } - if (!index.isValid()) - return nullptr; - const int tileIndex = index.column() + index.row() * columnCount(); if (tileIndex < mTileIds.size()) { const int tileId = mTileIds.at(tileIndex); @@ -235,10 +230,8 @@ QModelIndex TilesetModel::tileIndex(const Tile *tile) const { Q_ASSERT(tile->tileset() == tileset()); if (tileset()->isAtlas()) { - const int gridSize = tileset()->tileWidth(); - const QPoint snappedPos = snapToGrid(tile->imageRect().bottomLeft(), gridSize); - return index(snappedPos.y() / gridSize, - (snappedPos.x() / gridSize) + 1); + const QPoint snappedPos = snapToGrid(tile->imageRect().bottomLeft()); + return index(snappedPos.y(), snappedPos.x() + 1); } const int columnCount = TilesetModel::columnCount(); @@ -322,11 +315,12 @@ void TilesetModel::refreshTileIds() mTileIds.append(tile->id()); } -QPoint TilesetModel::snapToGrid(const QPoint &pos, int gridSize) const +QPoint TilesetModel::snapToGrid(const QPoint &pos) const { - // Snap to nearest grid position, avoiding overlaps - const int x = (pos.x() + gridSize / 2) / gridSize * gridSize; - const int y = (pos.y() + gridSize / 2) / gridSize * gridSize; + const int tileWidth = tileset()->tileWidth(); + const int tileHeight = tileset()->tileHeight(); + const int x = (pos.x() + tileWidth / 2) / tileWidth; + const int y = (pos.y() + tileHeight / 2) / tileHeight; return QPoint(x, y); } diff --git a/src/tiled/tilesetmodel.h b/src/tiled/tilesetmodel.h index c3bc776ec8..7f0c93949b 100644 --- a/src/tiled/tilesetmodel.h +++ b/src/tiled/tilesetmodel.h @@ -130,7 +130,7 @@ public slots: void refreshTileIds(); - QPoint snapToGrid(const QPoint &pos, int gridSize) const; + QPoint snapToGrid(const QPoint &pos) const; TilesetDocument *mTilesetDocument; QList mTileIds;