diff options
author | Michael Brasser <mbrasser@ford.com> | 2019-08-29 17:22:29 -0500 |
---|---|---|
committer | Michael Brasser <mbrasser@ford.com> | 2019-08-30 13:02:07 -0500 |
commit | a802fd74e010a6d8ebfc2243232e0373d67f3df6 (patch) | |
tree | 904fee7e2ab2c9ae8079bd51fdf5191fd17e5d94 | |
parent | 151694c095e05e1c735f96f60c799cc717e93dc1 (diff) |
Minor fixes for QSprite* classes
* Fix off-by-one errors
* Allow non-integer cell sizes
Change-Id: I081cb5050a6805cbc9183fb2a7a1ee07b5594187
Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r-- | src/extras/defaults/qspritegrid.cpp | 6 | ||||
-rw-r--r-- | src/extras/defaults/qspritegrid_p.h | 2 | ||||
-rw-r--r-- | src/extras/defaults/qspritesheet.cpp | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/extras/defaults/qspritegrid.cpp b/src/extras/defaults/qspritegrid.cpp index 31d4dd5c0..15016a891 100644 --- a/src/extras/defaults/qspritegrid.cpp +++ b/src/extras/defaults/qspritegrid.cpp @@ -57,7 +57,7 @@ QSpriteGridPrivate::QSpriteGridPrivate() int QSpriteGridPrivate::maxIndex() const { - return m_numColumns * m_numRows; + return m_numColumns * m_numRows - 1; } void QSpriteGridPrivate::updateSizes() @@ -65,10 +65,10 @@ void QSpriteGridPrivate::updateSizes() Q_Q(QSpriteGrid); if (m_texture && m_numColumns && m_numRows) { m_textureSize = QSize(m_texture->width(), m_texture->height()); - m_cellSize = QSize(m_texture->width() / m_numColumns, m_texture->height() / m_numRows); + m_cellSize = QSizeF((float) m_texture->width() / m_numColumns, (float) m_texture->height() / m_numRows); } else { m_textureSize = QSize(); - m_cellSize = QSize(); + m_cellSize = QSizeF(); } if (m_cellSize.isEmpty() || m_numColumns == 0 || m_numRows == 0) { diff --git a/src/extras/defaults/qspritegrid_p.h b/src/extras/defaults/qspritegrid_p.h index 6135ebf0d..8d05b2bcc 100644 --- a/src/extras/defaults/qspritegrid_p.h +++ b/src/extras/defaults/qspritegrid_p.h @@ -69,7 +69,7 @@ class QSpriteGridPrivate : public QAbstractSpriteSheetPrivate int m_numColumns; int m_numRows; - QSize m_cellSize; + QSizeF m_cellSize; Q_DECLARE_PUBLIC(QSpriteGrid) }; diff --git a/src/extras/defaults/qspritesheet.cpp b/src/extras/defaults/qspritesheet.cpp index 87f664ce4..8eb1e33e6 100644 --- a/src/extras/defaults/qspritesheet.cpp +++ b/src/extras/defaults/qspritesheet.cpp @@ -56,7 +56,7 @@ QSpriteSheetPrivate::QSpriteSheetPrivate() int QSpriteSheetPrivate::maxIndex() const { - return m_sprites.count(); + return m_sprites.count() - 1; } void QSpriteSheetPrivate::updateSizes() @@ -77,7 +77,7 @@ void QSpriteSheetPrivate::updateSizes() return; } - if (m_currentIndex < 0 || m_currentIndex > m_sprites.size()) { + if (m_currentIndex < 0 || m_currentIndex >= m_sprites.size()) { m_currentIndex = 0; emit q->currentIndexChanged(m_currentIndex); } |